diff options
Diffstat (limited to 'community/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch')
-rw-r--r-- | community/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/community/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch b/community/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch deleted file mode 100644 index 5c517e4a8eb..00000000000 --- a/community/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch +++ /dev/null @@ -1,139 +0,0 @@ -From fbd756ab55f9351165f923b0411c31dd71319c78 Mon Sep 17 00:00:00 2001 -From: Ted Meyer <tmathmeyer@chromium.org> -Date: Wed, 16 Sep 2020 17:42:03 +0000 -Subject: [PATCH] Only fall back to the i965 driver if we're on iHD - -I got my hands on an old AMD laptop, and the gallium driver worked very -well and was saving power even at 720p, so there's no reason to block -that for now. - -Bug: 1116703 -Change-Id: Ib15bc2b93f33e99adad7569dd825e167b503a0ea -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2409967 -Commit-Queue: Ted Meyer <tmathmeyer@chromium.org> -Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org> -Cr-Commit-Position: refs/heads/master@{#807550} ---- - media/gpu/vaapi/vaapi_wrapper.cc | 73 ++++++++++++++++++++------------ - 1 file changed, 47 insertions(+), 26 deletions(-) - -diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc -index 2ad0b997e56..e30d1dfb73b 100644 ---- media/gpu/vaapi/vaapi_wrapper.cc -+++ media/gpu/vaapi/vaapi_wrapper.cc -@@ -409,6 +409,8 @@ class VADisplayState { - - // Implementation of Initialize() called only once. - bool InitializeOnce() EXCLUSIVE_LOCKS_REQUIRED(va_lock_); -+ bool InitializeVaDisplay_Locked() EXCLUSIVE_LOCKS_REQUIRED(va_lock_); -+ bool InitializeVaDriver_Locked() EXCLUSIVE_LOCKS_REQUIRED(va_lock_); - - int refcount_ GUARDED_BY(va_lock_); - -@@ -472,11 +474,7 @@ bool VADisplayState::Initialize() { - return success; - } - --bool VADisplayState::InitializeOnce() { -- static_assert( -- VA_MAJOR_VERSION >= 2 || (VA_MAJOR_VERSION == 1 && VA_MINOR_VERSION >= 1), -- "Requires VA-API >= 1.1.0"); -- -+bool VADisplayState::InitializeVaDisplay_Locked() { - switch (gl::GetGLImplementation()) { - case gl::kGLImplementationEGLGLES2: - va_display_ = vaGetDisplayDRM(drm_fd_.get()); -@@ -519,25 +517,10 @@ bool VADisplayState::InitializeOnce() { - return false; - } - -- // Set VA logging level and driver name, unless already set. -- constexpr char libva_log_level_env[] = "LIBVA_MESSAGING_LEVEL"; -- std::unique_ptr<base::Environment> env(base::Environment::Create()); -- if (!env->HasVar(libva_log_level_env)) -- env->SetVar(libva_log_level_env, "1"); -- --#if defined(USE_X11) -- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE) { -- DCHECK(!features::IsUsingOzonePlatform()); -- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME"; -- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in -- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There -- // is discussion of the issue here: -- // https://github.com/intel/media-driver/issues/818 -- if (!env->HasVar(libva_driver_impl_env)) -- env->SetVar(libva_driver_impl_env, "i965"); -- } --#endif // USE_X11 -+ return true; -+} - -+bool VADisplayState::InitializeVaDriver_Locked() { - // The VAAPI version. - int major_version, minor_version; - VAStatus va_res = vaInitialize(va_display_, &major_version, &minor_version); -@@ -545,9 +528,6 @@ bool VADisplayState::InitializeOnce() { - LOG(ERROR) << "vaInitialize failed: " << vaErrorStr(va_res); - return false; - } -- -- va_initialized_ = true; -- - const std::string va_vendor_string = vaQueryVendorString(va_display_); - DLOG_IF(WARNING, va_vendor_string.empty()) - << "Vendor string empty or error reading."; -@@ -555,6 +535,8 @@ bool VADisplayState::InitializeOnce() { - << va_vendor_string; - implementation_type_ = VendorStringToImplementationType(va_vendor_string); - -+ va_initialized_ = true; -+ - // The VAAPI version is determined from what is loaded on the system by - // calling vaInitialize(). Since the libva is now ABI-compatible, relax the - // version check which helps in upgrading the libva, without breaking any -@@ -571,6 +553,45 @@ bool VADisplayState::InitializeOnce() { - return true; - } - -+bool VADisplayState::InitializeOnce() { -+ static_assert( -+ VA_MAJOR_VERSION >= 2 || (VA_MAJOR_VERSION == 1 && VA_MINOR_VERSION >= 1), -+ "Requires VA-API >= 1.1.0"); -+ -+ // Set VA logging level, unless already set. -+ constexpr char libva_log_level_env[] = "LIBVA_MESSAGING_LEVEL"; -+ std::unique_ptr<base::Environment> env(base::Environment::Create()); -+ if (!env->HasVar(libva_log_level_env)) -+ env->SetVar(libva_log_level_env, "1"); -+ -+ if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked()) -+ return false; -+ -+#if defined(USE_X11) -+ if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE && -+ implementation_type_ == VAImplementation::kIntelIHD) { -+ DCHECK(!features::IsUsingOzonePlatform()); -+ constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME"; -+ // TODO(crbug/1116703) The libva intel-media driver has a known segfault in -+ // vaPutSurface, so until this is fixed, fall back to the i965 driver. There -+ // is discussion of the issue here: -+ // https://github.com/intel/media-driver/issues/818 -+ if (!env->HasVar(libva_driver_impl_env)) -+ env->SetVar(libva_driver_impl_env, "i965"); -+ -+ // Re-initialize with the new driver. -+ va_display_ = nullptr; -+ va_initialized_ = false; -+ implementation_type_ = VAImplementation::kInvalid; -+ -+ if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked()) -+ return false; -+ } -+#endif // USE_X11 -+ -+ return true; -+} -+ - VAStatus VADisplayState::Deinitialize() { - base::AutoLock auto_lock(va_lock_); - VAStatus va_res = VA_STATUS_SUCCESS; |