Commit 3f5813b4 authored by Miguel Casas's avatar Miguel Casas Committed by Commit Bot

gpu::FeatureInfo CrOs: detect if |chromium_image_ycbcr_420v| is supported

This CL addresses a TODO() [1] to only fill |chromium_image_ycbcr_420v|
on ChromeOS if minigbm supports it. A few recent CLs made this info
available on GpuFeatureInfo so it can be queried upon construction.

[1] https://cs.chromium.org/chromium/src/gpu/command_buffer/service/feature_info.cc?type=cs&q=ycbcr_420v&sq=package:chromium&g=0&l=1099

Bug: 646148, 911754
Change-Id: Ie22ffc3e4ce6dc996fcab6e16a7c88f0a2508b73
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1636465Reviewed-by: default avatarAntoine Labour <piman@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#664887}
parent ea23184d
......@@ -221,6 +221,14 @@ FeatureInfo::FeatureInfo(
gpu_feature_info
.status_values[GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL] ==
gpu::kGpuFeatureStatusEnabled;
#if defined(OS_CHROMEOS)
feature_flags_.chromium_image_ycbcr_420v = base::ContainsValue(
gpu_feature_info.supported_buffer_formats_for_allocation_and_texturing,
gfx::BufferFormat::YUV_420_BIPLANAR);
#elif defined(OS_MACOSX)
feature_flags_.chromium_image_ycbcr_420v = true;
#endif
}
void FeatureInfo::InitializeBasicState(const base::CommandLine* command_line) {
......@@ -1095,13 +1103,8 @@ void FeatureInfo::InitializeFeatures() {
validators_.g_l_state.AddValue(GL_TEXTURE_BINDING_RECTANGLE_ARB);
}
#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
// TODO(dcastagna): Determine ycbcr_420v_image on CrOS at runtime
// querying minigbm. https://crbug.com/646148
AddExtensionString("GL_CHROMIUM_ycbcr_420v_image");
feature_flags_.chromium_image_ycbcr_420v = true;
#endif
if (feature_flags_.chromium_image_ycbcr_420v) {
AddExtensionString("GL_CHROMIUM_ycbcr_420v_image");
feature_flags_.gpu_memory_buffer_formats.Add(
gfx::BufferFormat::YUV_420_BIPLANAR);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment