gpu: Always enable OOP-C on CrOS with Vulkan
On some ChromeOS devices, using Vulkan without OOP-C results in artifacts during video encode. To remedy this, we unconditionally enable OOP-C on CrOS when Vulkan is enabled. Bug: b:318721705 Change-Id: I1196c83ccd973373aa176e49e58d4431ac31e7fe Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5254556 Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> Commit-Queue: Brian Ho <hob@chromium.org> Cr-Commit-Position: refs/heads/main@{#1255851}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
2502aae007
commit
fe80878471
@ -249,12 +249,24 @@ GpuFeatureStatus GetCanvasOopRasterizationFeatureStatus(
|
||||
}
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
// Disable OOP-C if explicitly turned off from the command line.
|
||||
base::FeatureList* feature_list = base::FeatureList::GetInstance();
|
||||
if (feature_list && feature_list->IsFeatureOverriddenFromCommandLine(
|
||||
features::kCanvasOopRasterization.name,
|
||||
base::FeatureList::OVERRIDE_DISABLE_FEATURE))
|
||||
return kGpuFeatureStatusDisabled;
|
||||
|
||||
// VDA video decoder on ChromeOS uses legacy mailboxes which is not compatible
|
||||
// with OOP-C
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
if (!gpu_preferences.enable_chromeos_direct_video_decoder)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
#endif
|
||||
|
||||
// On certain ChromeOS devices, using Vulkan without OOP-C results in video
|
||||
// encode artifacts (b/318721705).
|
||||
if (gpu_preferences.use_vulkan != VulkanImplementationName::kNone)
|
||||
return kGpuFeatureStatusEnabled;
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
// Canvas OOP Rasterization on platforms that are not fully enabled is
|
||||
// controlled by a finch experiment.
|
||||
|
Reference in New Issue
Block a user