gpu: Flush worker context every frame.
Adds support for flushing pending ordering barriers on a stream. This is
used to flush the worker context stream when operating in async mode.
R=piman
BUG=514813
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I2d21a9adf5d00f5417016b40dfaebbe0cc013fca
Reviewed-on: https://chromium-review.googlesource.com/505254
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Commit-Position: refs/heads/master@{#472344}
diff --git a/cc/raster/gpu_raster_buffer_provider.cc b/cc/raster/gpu_raster_buffer_provider.cc
index de489ff..1f2e8802 100644
--- a/cc/raster/gpu_raster_buffer_provider.cc
+++ b/cc/raster/gpu_raster_buffer_provider.cc
@@ -175,6 +175,16 @@
pending_raster_buffers_.clear();
}
+void GpuRasterBufferProvider::Flush() {
+ if (async_worker_context_enabled_) {
+ int32_t worker_stream_id =
+ worker_context_provider_->ContextSupport()->GetStreamId();
+
+ compositor_context_provider_->ContextSupport()
+ ->FlushOrderingBarrierOnStream(worker_stream_id);
+ }
+}
+
ResourceFormat GpuRasterBufferProvider::GetResourceFormat(
bool must_support_alpha) const {
if (resource_provider_->IsRenderBufferFormatSupported(