diff options
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | enable_vaapi_on_linux.diff | 292 |
3 files changed, 16 insertions, 307 deletions
@@ -1,6 +1,6 @@ pkgbase = chromium-dev pkgdesc = The open-source project behind Google Chrome (Dev Channel) - pkgver = 47.0.2503.0 + pkgver = 47.0.2522.1 pkgrel = 1 url = http://www.chromium.org install = chromium-dev.install @@ -16,6 +16,7 @@ pkgbase = chromium-dev makedepends = python2-html5lib makedepends = python2-simplejson makedepends = python2-jinja + makedepends = python2-ply makedepends = subversion makedepends = yasm makedepends = git @@ -25,7 +26,7 @@ pkgbase = chromium-dev makedepends = libffi makedepends = chrpath depends = desktop-file-utils - depends = gtk2 + depends = icu depends = jsoncpp depends = libwebp depends = libxslt @@ -39,30 +40,31 @@ pkgbase = chromium-dev depends = speech-dispatcher depends = speex depends = xdg-utils + depends = gtk3 depends = libpulse optdepends = chromium-pepper-flash-dev: PPAPI Flash Player (Dev Channel) optdepends = kdebase-kdialog: Needed for file dialogs in KDE4 - optdepends = kdeutils-kwalletmanager: For storing passwords in KWallet in KDE4 + optdepends = kwalletmanager4: Needed for storing passwords in KWallet in KDE4 optdepends = kdialog-frameworks-git: Needed for file dialogs in KF5 - optdepends = kwalletmanager-git: Needed for storing passwords in KWallet in KF5 - optdepends = libappindicator-gtk2: Needed for show systray icon in the panel in plasma-next (KF5) + optdepends = kwalletmanager: Needed for storing passwords in KWallet in KF5 optdepends = libexif: Need for read EXIF metadata optdepends = ttf-font: For some typography + optdepends = libappindicator-gtk3: Needed for show systray icon in the panel in plasma-next (KF5) options = !strip - source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-47.0.2503.0.tar.xz - source = chromium-launcher-2.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v2.tar.gz + source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-47.0.2522.1.tar.xz + source = chromium-launcher-3.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v3.tar.gz source = chromium-dev.desktop source = chromium-dev.xml source = chromium-dev.svg - source = chromium-system-jinja-r8.patch - source = enable_vaapi_on_linux.diff - sha1sums = 18b63f2943050d99096741d88f513e876ac15cd3 - sha1sums = 55f9646683bc8b92587f8e0a36aff242cb436a24 + source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-system-jinja-r7.patch + source = enable_vaapi_on_linux-r1.diff + sha1sums = 58096d886cd442c4e769061ba2ee4365e994b022 + sha1sums = d18f8d96e80be9c31d994cc6362d7d8041c53319 sha1sums = 0acc45b901418f270d0b2068502e39c407c74ea4 sha1sums = 2b98c549332e7337307ce287e150930cfc1dfa5f sha1sums = 336976cb66bf8df71fc7f2e92aa723891b6efb53 - sha1sums = 51ee08f9500a9006673787b0f29ffa089b09c286 - sha1sums = 4e223ea3df5be9374f202f7c3f0679ae55eed495 + sha1sums = c24d14029714d2295f3220a7173a5a7362f578a2 + sha1sums = 255d71cd9b9e55265e1bfeaa4612bcf60d293204 makedepends_x86_64 = lib32-gcc-libs makedepends_x86_64 = lib32-zlib diff --git a/.gitignore b/.gitignore index 8d80a9b638fa..9f0208e5031d 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,4 @@ !chromium-dev.install !chromium-dev.xml !chromium-dev.svg -!chromium-system-jinja-r8.patch -!enable_vaapi_on_linux.diff +!enable_vaapi_on_linux-r1.diff diff --git a/enable_vaapi_on_linux.diff b/enable_vaapi_on_linux.diff deleted file mode 100644 index 99b84a7b173e..000000000000 --- a/enable_vaapi_on_linux.diff +++ /dev/null @@ -1,292 +0,0 @@ -Description: Enables using VA-API hardware acceleration in Linux. The patch for bpf_gpu_policy_linux.cc initially came from https://codereview.chromium.org/15955009/diff/92001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc. - -Index: beta.vivid/content/common/gpu/media/gpu_video_decode_accelerator.cc -=================================================================== ---- beta.vivid.orig/content/common/gpu/media/gpu_video_decode_accelerator.cc 2015-06-02 14:57:28.961592702 -0400 -+++ beta.vivid/content/common/gpu/media/gpu_video_decode_accelerator.cc 2015-06-02 14:57:28.954592798 -0400 -@@ -33,7 +33,7 @@ - #include "content/common/gpu/media/dxva_video_decode_accelerator.h" - #elif defined(OS_MACOSX) - #include "content/common/gpu/media/vt_video_decode_accelerator.h" --#elif defined(OS_CHROMEOS) -+#elif defined(OS_CHROMEOS) || defined(OS_LINUX) - #if defined(USE_V4L2_CODEC) - #include "content/common/gpu/media/v4l2_device.h" - #include "content/common/gpu/media/v4l2_slice_video_decode_accelerator.h" -@@ -346,7 +346,7 @@ - scoped_ptr<media::VideoDecodeAccelerator> - GpuVideoDecodeAccelerator::CreateVaapiVDA() { - scoped_ptr<media::VideoDecodeAccelerator> decoder; --#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) -+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) - decoder.reset(new VaapiVideoDecodeAccelerator( - make_context_current_, base::Bind(&GpuVideoDecodeAccelerator::BindImage, - base::Unretained(this)))); -Index: dev.vivid/content/content_common.gypi -=================================================================== ---- dev.vivid.orig/content/content_common.gypi 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/content/content_common.gypi 2015-06-02 15:12:59.289303797 -0400 -@@ -826,7 +826,7 @@ - }, - ], - }], -- ['chromeos==1', { -+ ['chromeos==1 or desktop_linux==1', { - 'sources': [ - 'common/gpu/media/accelerated_video_decoder.h', - 'common/gpu/media/h264_decoder.cc', -@@ -875,7 +875,7 @@ - 'common/gpu/media/tegra_v4l2_device.h', - ], - }], -- ['target_arch != "arm" and chromeos == 1', { -+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', { - 'dependencies': [ - '../media/media.gyp:media', - '../third_party/libyuv/libyuv.gyp:libyuv', -Index: dev.vivid/content/content_gpu.gypi -=================================================================== ---- dev.vivid.orig/content/content_gpu.gypi 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/content/content_gpu.gypi 2015-06-02 15:12:59.289303797 -0400 -@@ -36,7 +36,7 @@ - ], - }, - }], -- ['target_arch!="arm" and chromeos == 1', { -+ ['target_arch!="arm" and (chromeos == 1 or desktop_linux == 1)', { - 'include_dirs': [ - '<(DEPTH)/third_party/libva', - ], -Index: dev.vivid/content/content_tests.gypi -=================================================================== ---- dev.vivid.orig/content/content_tests.gypi 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/content/content_tests.gypi 2015-06-02 15:12:59.289303797 -0400 -@@ -1651,7 +1651,7 @@ - }, - ] - }], -- ['chromeos==1 and target_arch != "arm"', { -+ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', { - 'targets': [ - { - 'target_name': 'vaapi_jpeg_decoder_unittest', -Index: dev.vivid/content/public/common/content_switches.cc -=================================================================== ---- dev.vivid.orig/content/public/common/content_switches.cc 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/content/public/common/content_switches.cc 2015-06-02 15:12:59.290303784 -0400 -@@ -962,7 +962,7 @@ - // Disable web audio API. - const char kDisableWebAudio[] = "disable-webaudio"; - --#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || defined(OS_LINUX) - // Disables panel fitting (used for mirror mode). - const char kDisablePanelFitting[] = "disable-panel-fitting"; - -Index: dev.vivid/content/public/common/content_switches.h -=================================================================== ---- dev.vivid.orig/content/public/common/content_switches.h 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/content/public/common/content_switches.h 2015-06-02 15:12:59.290303784 -0400 -@@ -273,7 +273,7 @@ - - CONTENT_EXPORT extern const char kDisableWebAudio[]; - --#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || defined(OS_LINUX) - CONTENT_EXPORT extern const char kDisablePanelFitting[]; - CONTENT_EXPORT extern const char kDisableVaapiAcceleratedVideoEncode[]; - #endif -Index: dev.vivid/media/media.gyp -=================================================================== ---- dev.vivid.orig/media/media.gyp 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/media/media.gyp 2015-06-02 15:12:59.290303784 -0400 -@@ -708,7 +708,7 @@ - ], - }], - # For VaapiVideoEncodeAccelerator. -- ['target_arch != "arm" and chromeos == 1', { -+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', { - 'sources': [ - 'filters/h264_bitstream_buffer.cc', - 'filters/h264_bitstream_buffer.h', -Index: dev.vivid/gpu/config/software_rendering_list_json.cc -=================================================================== ---- dev.vivid.orig/gpu/config/software_rendering_list_json.cc 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/gpu/config/software_rendering_list_json.cc 2015-06-02 15:12:59.290303784 -0400 -@@ -475,17 +475,6 @@ - ] - }, - { -- "id": 48, -- "description": "Accelerated video decode is unavailable on Linux", -- "cr_bugs": [137247], -- "os": { -- "type": "linux" -- }, -- "features": [ -- "accelerated_video_decode" -- ] -- }, -- { - "id": 49, - "description": "NVidia GeForce GT 650M can cause the system to hang with flash 3D", - "cr_bugs": [140175], -@@ -1034,6 +1023,11 @@ - "op": ">=", - "value": "3.0" - } -+ }, -+ { -+ "os": { -+ "type": "linux" -+ } - } - ], - "features": [ -Index: dev.vivid/content/common/sandbox_linux/bpf_gpu_policy_linux.cc -=================================================================== ---- dev.vivid.orig/content/common/sandbox_linux/bpf_gpu_policy_linux.cc 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/content/common/sandbox_linux/bpf_gpu_policy_linux.cc 2015-06-02 15:12:59.291303771 -0400 -@@ -21,6 +21,8 @@ - #include "base/logging.h" - #include "base/memory/scoped_ptr.h" - #include "build/build_config.h" -+// Auto-generated for dlopen libva libraries -+#include "content/common/gpu/media/va_stubs.h" - #include "content/common/sandbox_linux/sandbox_bpf_base_policy_linux.h" - #include "content/common/sandbox_linux/sandbox_seccomp_bpf_linux.h" - #include "content/common/set_process_title.h" -@@ -31,6 +33,8 @@ - #include "sandbox/linux/syscall_broker/broker_file_permission.h" - #include "sandbox/linux/syscall_broker/broker_process.h" - #include "sandbox/linux/system_headers/linux_syscalls.h" -+#include "third_party/libva/va/va.h" -+#include "third_party/libva/va/va_x11.h" - - using sandbox::arch_seccomp_data; - using sandbox::bpf_dsl::Allow; -@@ -40,6 +44,11 @@ - using sandbox::syscall_broker::BrokerProcess; - using sandbox::SyscallSets; - -+using content_common_gpu_media::kModuleVa; -+using content_common_gpu_media::kModuleVa_x11; -+using content_common_gpu_media::InitializeStubs; -+using content_common_gpu_media::StubPathMap; -+ - namespace content { - - namespace { -@@ -94,7 +103,7 @@ - - bool IsAcceleratedVaapiVideoEncodeEnabled() { - bool accelerated_encode_enabled = false; --#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || defined(OS_LINUX) - const base::CommandLine& command_line = - *base::CommandLine::ForCurrentProcess(); - accelerated_encode_enabled = -@@ -295,23 +304,41 @@ - // inside the sandbox, so preload them now. - if (IsAcceleratedVaapiVideoEncodeEnabled() || - IsAcceleratedVideoDecodeEnabled()) { -- const char* I965DrvVideoPath = NULL; -- const char* I965HybridDrvVideoPath = NULL; -+ VLOG(1) << "Attempting to enable hardware video acceleration."; -+ StubPathMap paths; -+ paths[kModuleVa].push_back("libva.so.1"); -+ paths[kModuleVa_x11].push_back("libva-x11.so.1"); -+ if (!InitializeStubs(paths)) { -+ VLOG(1) << "Failed to initialize stubs"; -+ return false; -+ } - -- if (IsArchitectureX86_64()) { -- I965DrvVideoPath = "/usr/lib64/va/drivers/i965_drv_video.so"; -- I965HybridDrvVideoPath = "/usr/lib64/va/drivers/hybrid_drv_video.so"; -- } else if (IsArchitectureI386()) { -- I965DrvVideoPath = "/usr/lib/va/drivers/i965_drv_video.so"; -+ // libva drivers won't get loaded even above two libraries get dlopened. -+ // Thus, libva calls will fail after post sandbox stage. -+ // -+ // To get the va driver loaded before sandboxing, upstream simply dlopen -+ // the hard-coded va driver path because ChromeOS is the only platform -+ // that Google want to support libva. -+ // -+ // While generic linux distros ship va driver as anywhere they want. -+ // Fortunately, the va driver will be loadded when vaInitialize() get -+ // called. -+ // So the following code is to call vaInitialize() before sandboxing. -+ Display* x_display = XOpenDisplay(NULL); -+ VADisplay va_display = vaGetDisplay(x_display); -+ if (!vaDisplayIsValid(va_display)) { -+ VLOG(1) << "Failed to call vaGetDisplay()"; -+ return false; - } - -- dlopen(I965DrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); -- dlopen("libva.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); --#if defined(USE_OZONE) -- dlopen("libva-drm.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); --#elif defined(USE_X11) -- dlopen("libva-x11.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); --#endif -- } -- } -+ int major_version, minor_version; -+ if (vaInitialize(va_display, &major_version, &minor_version) -+ != VA_STATUS_SUCCESS) { -+ VLOG(1) << "Failed to call vaInitialize()"; -+ return false; -+ } -+ } // end of IsAcceleratedVaapiVideoEncodeEnabled() || IsAcceleratedVideoDecodeEnabled() -+ } // end of IsArchitectureX86_64() || IsArchitectureI386() - - return true; - } -Index: dev.vivid/chrome/browser/about_flags.cc -=================================================================== ---- dev.vivid.orig/chrome/browser/about_flags.cc 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/chrome/browser/about_flags.cc 2015-06-02 15:12:59.292303758 -0400 -@@ -1072,7 +1072,7 @@ - "disable-accelerated-video-decode", - IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_NAME, - IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_DESCRIPTION, -- kOsMac | kOsWin | kOsCrOS, -+ kOsAll, - SINGLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), - }, - #if defined(USE_ASH) -Index: dev.vivid/content/common/gpu/media/vaapi_wrapper.cc -=================================================================== ---- dev.vivid.orig/content/common/gpu/media/vaapi_wrapper.cc 2015-06-02 15:12:59.295303719 -0400 -+++ dev.vivid/content/common/gpu/media/vaapi_wrapper.cc 2015-06-02 15:12:59.293303745 -0400 -@@ -146,7 +146,7 @@ - VAProfile va_profile, - const base::Closure& report_error_to_uma_cb) { - if (!profile_infos_.Get().IsProfileSupported(mode, va_profile)) { -- DVLOG(1) << "Unsupported va_profile: " << va_profile; -+ VLOG(1) << "Unsupported va_profile: " << va_profile; - return nullptr; - } - -@@ -378,7 +378,7 @@ - if (std::find(supported_entrypoints.begin(), - supported_entrypoints.end(), - entrypoint) == supported_entrypoints.end()) { -- DVLOG(1) << "Unsupported entrypoint"; -+ VLOG(1) << "Unsupported entrypoint"; - return false; - } - return true; -@@ -402,8 +402,8 @@ - if (attribs[i].type != required_attribs[i].type || - (attribs[i].value & required_attribs[i].value) != - required_attribs[i].value) { -- DVLOG(1) << "Unsupported value " << required_attribs[i].value -- << " for attribute type " << required_attribs[i].type; -+ VLOG(1) << "Unsupported value " << required_attribs[i].value -+ << " for attribute type " << required_attribs[i].type; - return false; - } - } |