DescriptionRequest context sharing via content::ContextProviderCommandBuffer
Current context sharing is done in 1 of 2 ways:
1) Pass share_resources=true to the constructor of
WebGraphicsContext3DCommandBufferImpl.
2) Pass a WebGraphicsContext3DCommandBufferImpl* to the constructor or
WebGraphicsContext3DCommandBufferImpl.
FBOFW, this patch is conceptually 3 in 1..
a) Delete |share_resources| and make sharing requests always use option
2 from above. This is possible now that checking context loss checks
if any context in the share group has been lost.
b) Make RenderThreadImpl return a ContextProviderCommandBuffer for the
shared main thread context. Since this context is given to blink in
a WebGraphicsContext3DProvider, and blink specifies a provider when
requesting to share contexts, we need a ContextProviderCommandBuffer
in the provider.
c) Move the client-side share group tracking vector to the
ContextProviderCommandBuffer from the
WebGraphicsContext3DCommandBufferImpl class. We simplify the code
a bit, and just make it a simple struct. The lock ends up being held
for a larger number of commands for now, until things in
WebGraphicsContext3DCommandBufferImpl::InitializeOnCurrentThread ends
up moving out to ContextProviderCommandBuffer::BindToCurrentThread.
At this point the WebGraphicsContext3D base class is unused, and the
WebGraphicsContext3DProvider will return null for it, so we can remove
the class from blink.
R=piman@chromium.org, sievers@chromium.org
BUG=584497
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel
Committed: https://crrev.com/615aac2acd5f4aa12f42a8174e4636eb7d894de7
Cr-Commit-Position: refs/heads/master@{#390766}
Patch Set 1 : sharegroup: . #Patch Set 2 : sharegroup: . #Patch Set 3 : sharegroup: . #
Total comments: 10
Patch Set 4 : sharegroup: . #Patch Set 5 : sharegroup: rebase #Patch Set 6 : sharegroup: 1moremove #Patch Set 7 : sharegroup: rebase #Patch Set 8 : sharegroup: . #Dependent Patchsets: Messages
Total messages: 19 (9 generated)
|