diff options
author | Maxim Baz | 2019-01-31 20:53:03 +0100 |
---|---|---|
committer | Maxim Baz | 2019-01-31 21:02:45 +0100 |
commit | 5327b2124c5611b9ac5f585765acab763c4a5c5a (patch) | |
tree | 5da94e91c349be66325d8d9b5b845095b2bb167c /enable-vaapi.patch | |
parent | 7169f605876da29cfe009f0c65576a6e40e644a2 (diff) | |
download | aur-5327b2124c5611b9ac5f585765acab763c4a5c5a.tar.gz |
Switch to Mojo decoder patch from Fedora
Diffstat (limited to 'enable-vaapi.patch')
-rw-r--r-- | enable-vaapi.patch | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/enable-vaapi.patch b/enable-vaapi.patch new file mode 100644 index 000000000000..3ee3a0d78073 --- /dev/null +++ b/enable-vaapi.patch @@ -0,0 +1,172 @@ +From abc7295ca1653c85472916909f0eb76e28e79a58 Mon Sep 17 00:00:00 2001 +From: Akarshan Biswas <akarshan.biswas@gmail.com> +Date: Thu, 24 Jan 2019 12:45:29 +0530 +Subject: [PATCH] Enable mojo with VDA2 on Linux + +--- + chrome/browser/about_flags.cc | 8 ++++---- + chrome/browser/flag_descriptions.cc | 9 +++++++-- + chrome/browser/flag_descriptions.h | 10 ++++++++-- + gpu/config/software_rendering_list.json | 3 ++- + media/media_options.gni | 9 ++++++--- + media/mojo/services/gpu_mojo_media_client.cc | 4 ++-- + 6 files changed, 29 insertions(+), 14 deletions(-) + +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 0a84c6ac1..be2aa1d8b 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1714,7 +1714,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + #if defined(OS_WIN) +@@ -2345,12 +2345,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // ENABLE_ISOLATED_XR_SERVICE + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS // OS_LINUX + {"v8-cache-options", flag_descriptions::kV8CacheOptionsName, + flag_descriptions::kV8CacheOptionsDescription, kOsAll, + MULTI_VALUE_TYPE(kV8CacheOptionsChoices)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 62637e092..86f89fc6e 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -3085,15 +3085,20 @@ const char kTextSuggestionsTouchBarDescription[] = + + #endif + +-// Chrome OS ------------------------------------------------------------------- ++// Chrome OS Linux------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; + const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; ++#endif ++ ++// Chrome OS -------------------------------------------------- ++ ++#if defined(OS_CHROMEOS) + + const char kAllowTouchpadThreeFingerClickName[] = "Touchpad three-finger-click"; + const char kAllowTouchpadThreeFingerClickDescription[] = +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 5dac660bb..6cc4115da 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1846,13 +1846,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + #endif // defined(OS_MACOSX) + +-// Chrome OS ------------------------------------------------------------------ ++// Chrome OS and Linux ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++#endif // defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) ++ ++// Chrome OS ------------------------------------------------------------------------ ++ ++#if defined(OS_CHROMEOS) ++ + extern const char kAllowTouchpadThreeFingerClickName[]; + extern const char kAllowTouchpadThreeFingerClickDescription[]; + +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 65f37b3f1..ae8a1718f 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -371,11 +371,12 @@ + }, + { + "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", ++ "description": "Accelerated VA-API video decode is not supported on NVIDIA platforms", + "cr_bugs": [137247], + "os": { + "type": "linux" + }, ++ "vendor_id": "0x10de", + "features": [ + "accelerated_video_decode" + ] +diff --git a/media/media_options.gni b/media/media_options.gni +index 46eaa5818..6e338f651 100644 +--- a/media/media_options.gni ++++ b/media/media_options.gni +@@ -5,6 +5,7 @@ + import("//build/config/chrome_build.gni") + import("//build/config/chromecast_build.gni") + import("//build/config/features.gni") ++import("//media/gpu/args.gni") + import("//testing/libfuzzer/fuzzer_test.gni") + + # Do not expand this list without double-checking with OWNERS, this is a list of +@@ -129,8 +130,9 @@ declare_args() { + # |mojo_media_services|). When enabled, selected mojo paths will be enabled in + # the media pipeline and corresponding services will hosted in the selected + # remote process (e.g. "utility" process, see |mojo_media_host|). +- enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac || +- is_win || enable_library_cdms ++ enable_mojo_media = ++ is_android || is_chromecast || is_chromeos || is_mac || is_win || ++ enable_library_cdms || (is_desktop_linux && use_vaapi) + + # Enable the TestMojoMediaClient to be used in mojo MediaService. This is for + # testing only and will override the default platform MojoMediaClient, if any. +@@ -200,7 +202,8 @@ if (enable_mojo_media) { + ] + _default_mojo_media_host = "gpu" + } +- } else if (is_chromeos || is_mac || is_win) { ++ } else if (is_chromeos || is_mac || is_win || ++ (is_desktop_linux && use_vaapi)) { + _default_mojo_media_services = [ "video_decoder" ] + _default_mojo_media_host = "gpu" + } +diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc +index 75f5e611c..09a8fef92 100644 +--- a/media/mojo/services/gpu_mojo_media_client.cc ++++ b/media/mojo/services/gpu_mojo_media_client.cc +@@ -54,7 +54,7 @@ namespace media { + namespace { + + #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \ +- defined(OS_WIN) ++ defined(OS_WIN) || defined(OS_LINUX) + gpu::CommandBufferStub* GetCommandBufferStub( + base::WeakPtr<MediaGpuChannelManager> media_gpu_channel_manager, + base::UnguessableToken channel_token, +@@ -148,7 +148,7 @@ std::unique_ptr<VideoDecoder> GpuMojoMediaClient::CreateVideoDecoder( + android_overlay_factory_cb_, std::move(request_overlay_info_cb), + std::make_unique<VideoFrameFactoryImpl>(gpu_task_runner_, + std::move(get_stub_cb))); +-#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) ++#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) + std::unique_ptr<VideoDecoder> vda_video_decoder = VdaVideoDecoder::Create( + task_runner, gpu_task_runner_, media_log->Clone(), target_color_space, + gpu_preferences_, gpu_workarounds_, +-- +2.20.1 |