[go: nahoru, domu]

Enable DMSAA for tiles only for vulkan.

Currently DMSAA shows regressions with GL. So enabled it only for
vulkan.

Bug: 1366068
Change-Id: I65526bde5f6d9df387a657aee348919e09c12314
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4567092
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Auto-Submit: vikas soni <vikassoni@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1149439}
diff --git a/cc/raster/gpu_raster_buffer_provider.cc b/cc/raster/gpu_raster_buffer_provider.cc
index 753bd0b..0318d8b 100644
--- a/cc/raster/gpu_raster_buffer_provider.cc
+++ b/cc/raster/gpu_raster_buffer_provider.cc
@@ -156,7 +156,18 @@
           base::FeatureList::IsEnabled(features::kUseDMSAAForTiles)) {
   DCHECK(pending_raster_queries);
   DCHECK(compositor_context_provider);
-  DCHECK(worker_context_provider);
+  CHECK(worker_context_provider);
+
+#if BUILDFLAG(IS_ANDROID)
+  // On Android, DMSAA is currently only enabled for vulkan until GL
+  // regressions are fixed.
+  {
+    absl::optional<viz::RasterContextProvider::ScopedRasterContextLock> lock;
+    lock.emplace(worker_context_provider);
+    is_using_dmsaa_ &=
+        worker_context_provider->ContextCapabilities().using_vulkan_context;
+  }
+#endif
 }
 
 GpuRasterBufferProvider::~GpuRasterBufferProvider() = default;