Chromium Code Reviews
Descriptioncontent: Fix lost context handling when using native GpuMemoryBuffers.
This is a redesign of browser side management of GpuMemoryBuffers
to be able to handle GPU process crashes correctly. The following
changes have been made to handle these situations correctly.
1. The BrowserGpuMemoryBufferManager class talks to GpuProcessHost
instances directly and will launch a new GPU process if needed. This
is needed to keep track of what GPU host each buffer belongs to.
Buffers can only be destroyed by the same host that created them and
this change prevents us from making attempts to destroy a buffer
using a different GPU host then it was created by.
2. Improved code reuse between in-process buffers and buffers
allocated for child processes. The result is that we track the
memory usage of not just child process buffers but all buffers
allocated by the manager.
3. Shared memory backed buffers can be used to test GPU process
side allocation of buffers and lost context handling on all
platforms.
BUG=486922
TEST=content_browsertests --gtest_also_run_disabled_tests --gtest_filter=ChildThreadImplGpuMemoryBufferBrowserTests/ChildThreadImplGpuMemoryBufferBrowserTest.*, content/test/gpu/run_gpu_test.py context_lost --extra-browser-args=--enable-native-gpu-memory-buffers --story-filter=GpuCrash.GPUProcessCrashesExactlyOnce
Committed: https://crrev.com/42574bd38067c90223cc496f7aad80ebaf454d13
Cr-Commit-Position: refs/heads/master@{#335540}
Patch Set 1 #Patch Set 2 : fix tests #
Total comments: 5
Patch Set 3 : retry logic and remove singleton #Messages
Total messages: 16 (5 generated)
|