Commit 6eb9eee3 authored by Eric Karl's avatar Eric Karl Committed by Commit Bot

Revert "Use GL_COMMANDS_ISSUED_CHROMIUM query for shared memory GpuMemoryBuffers"

This reverts commit 370c8bc2.

Reason for revert: This is breaking desktop sites (SW raster) on Android when OOP-R is enabled. see crbug.com/879823

Original change's description:
> Use GL_COMMANDS_ISSUED_CHROMIUM query for shared memory GpuMemoryBuffers
> 
> GL_COMMANDS_ISSUED_CHROMIUM is sufficient for shared memory
> GpuMemoryBuffers because they're uploaded using glTexImage2D (see
> GLImageMemory::CopyTexImage).
> 
> This should reduce the number of idle wakeups in the GPU process, and
> reduce the CPU time spent on such queries which is quite high on
> Windows.
> 
> Bug: 830084, 622491
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I8111b3d7f12abbf900383d45e2a74394848e83fd
> Reviewed-on: https://chromium-review.googlesource.com/1189126
> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
> Reviewed-by: Eric Karl <ericrk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#587695}

TBR=sunnyps@chromium.org,ericrk@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 830084, 622491, 879823
Change-Id: I7c78d2cc92e9ad274e8f443969d2a72d2410d5db
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1199629Reviewed-by: default avatarEric Karl <ericrk@chromium.org>
Commit-Queue: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588274}
parent ff9325de
...@@ -446,32 +446,17 @@ gpu::SyncToken OneCopyRasterBufferProvider::CopyOnWorkerThread( ...@@ -446,32 +446,17 @@ gpu::SyncToken OneCopyRasterBufferProvider::CopyOnWorkerThread(
// TODO(vmiura): Need a way to ensure we don't hold onto bindings? // TODO(vmiura): Need a way to ensure we don't hold onto bindings?
// ri->BindTexture(image_target, 0); // ri->BindTexture(image_target, 0);
GLenum query_target = GL_NONE;
if (worker_context_provider_->ContextCapabilities().sync_query) { if (worker_context_provider_->ContextCapabilities().sync_query) {
if (!staging_buffer->query_id) if (!staging_buffer->query_id)
ri->GenQueriesEXT(1, &staging_buffer->query_id); ri->GenQueriesEXT(1, &staging_buffer->query_id);
// GL_COMMANDS_COMPLETED_CHROMIUM is used by default because native
// GpuMemoryBuffers can be accessed by the GPU after commands are issued
// until GPU reads are done.
query_target = GL_COMMANDS_COMPLETED_CHROMIUM;
#if defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) #if defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY)
// TODO(reveman): This avoids a performance problem on ARM ChromeOS // TODO(reveman): This avoids a performance problem on ARM ChromeOS
// devices. crbug.com/580166 // devices. crbug.com/580166
query_target = GL_COMMANDS_ISSUED_CHROMIUM; ri->BeginQueryEXT(GL_COMMANDS_ISSUED_CHROMIUM, staging_buffer->query_id);
#else
ri->BeginQueryEXT(GL_COMMANDS_COMPLETED_CHROMIUM, staging_buffer->query_id);
#endif #endif
// GL_COMMANDS_ISSUED_CHROMIUM is sufficient for shared memory
// GpuMemoryBuffers because they're uploaded using glTexImage2D (see
// gl::GLImageMemory::CopyTexImage).
const auto* buffer = staging_buffer->gpu_memory_buffer.get();
if (buffer &&
buffer->GetType() == gfx::GpuMemoryBufferType::SHARED_MEMORY_BUFFER) {
query_target = GL_COMMANDS_ISSUED_CHROMIUM;
}
ri->BeginQueryEXT(query_target, staging_buffer->query_id);
} }
// Since compressed texture's cannot be pre-allocated we might have an // Since compressed texture's cannot be pre-allocated we might have an
...@@ -508,8 +493,13 @@ gpu::SyncToken OneCopyRasterBufferProvider::CopyOnWorkerThread( ...@@ -508,8 +493,13 @@ gpu::SyncToken OneCopyRasterBufferProvider::CopyOnWorkerThread(
} }
} }
if (query_target != GL_NONE) if (worker_context_provider_->ContextCapabilities().sync_query) {
ri->EndQueryEXT(query_target); #if defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY)
ri->EndQueryEXT(GL_COMMANDS_ISSUED_CHROMIUM);
#else
ri->EndQueryEXT(GL_COMMANDS_COMPLETED_CHROMIUM);
#endif
}
ri->DeleteTextures(1, &mailbox_texture_id); ri->DeleteTextures(1, &mailbox_texture_id);
......
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