|
|
Report lost context from GLES2Implementation based on share group state.
When any context in a gles2::ShareGroup becomes lost, all contexts in
the same group should report that they are lost immediately. This avoids
races such as the following:
IPC thread hears of the loss of Context 1 and 2.
IPC thread posts to thread B for Context 1.
Context 1 hears it is lost on thread B. Posts to thread A to recreate.
IPC thread posts to thread A for Context 2.
Context 1 is recreated on thread A. Puts itself in same share group as 2.
Context 2 hears it is lost on thread A, makes a new share group.
This can lead to racey cases where share groups get split apart.
Resolve this by storing a |lost_| state on gles2::ShareGroup. When
GLES2Implementation hears of OnGpuControlLostContext, it will set the
lost state on the ShareGroup. Now glGetGraphicsResetStatusKHR() will
return an error if the gles2::ShareGroup has been lost.
We remove the GpuControl::IsChannelLost() method as this is now unused.
The CmdBufferHelper::IsContextLost() is still needed for the
QueryTracker, so insert a comment and a TODO explaining why and how
it could be removed.
R=piman, sievers
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/b1f17d6f3f988d7b190cab1147b1e20da0647a44
Cr-Commit-Position: refs/heads/master@{#389947}
Committed: https://crrev.com/90fcc5eaa0a57e02c8be5f97eff8c1f29cad8a76
Cr-Commit-Position: refs/heads/master@{#390591}
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+219 lines, -220 lines) |
Patch |
 |
M |
cc/output/gl_renderer_unittest.cc
|
View
|
1
2
3
|
2 chunks |
+0 lines, -84 lines |
0 comments
|
Download
|
 |
M |
cc/output/program_binding.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
components/mus/gles2/command_buffer_local.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
components/mus/gles2/command_buffer_local.cc
|
View
|
|
1 chunk |
+0 lines, -6 lines |
0 comments
|
Download
|
 |
M |
content/renderer/pepper/pepper_video_encoder_host.h
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
content/renderer/pepper/pepper_video_encoder_host.cc
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
 |
M |
content/renderer/pepper/ppb_graphics_3d_impl.h
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
content/renderer/pepper/ppb_graphics_3d_impl.cc
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/client_test_helper.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/gles2_implementation.h
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/gles2_implementation.cc
|
View
|
1
2
3
4
|
4 chunks |
+14 lines, -18 lines |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/gles2_implementation_unittest.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+30 lines, -4 lines |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/gpu_control.h
|
View
|
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/gpu_control_client.h
|
View
|
1
2
3
4
|
1 chunk |
+9 lines, -0 lines |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/query_tracker.cc
|
View
|
|
1 chunk |
+11 lines, -3 lines |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/share_group.h
|
View
|
1
|
3 chunks |
+12 lines, -1 line |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/client/share_group.cc
|
View
|
|
1 chunk |
+11 lines, -1 line |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/common/constants.h
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/service/in_process_command_buffer.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/service/in_process_command_buffer.cc
|
View
|
1
2
3
|
1 chunk |
+0 lines, -6 lines |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/tests/gl_manager.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
gpu/command_buffer/tests/gl_manager.cc
|
View
|
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
 |
M |
gpu/gles2_conform_support/egl/display.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
gpu/gles2_conform_support/egl/display.cc
|
View
|
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
 |
M |
gpu/ipc/client/command_buffer_proxy_impl.h
|
View
|
1
2
3
4
5
6
|
3 chunks |
+25 lines, -11 lines |
0 comments
|
Download
|
 |
M |
gpu/ipc/client/command_buffer_proxy_impl.cc
|
View
|
1
2
3
4
5
6
|
11 chunks |
+94 lines, -50 lines |
0 comments
|
Download
|
 |
M |
mojo/gles2/command_buffer_client_impl.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
mojo/gles2/command_buffer_client_impl.cc
|
View
|
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
 |
M |
ppapi/proxy/ppapi_command_buffer_proxy.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
ppapi/proxy/ppapi_command_buffer_proxy.cc
|
View
|
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
Total messages: 51 (23 generated)
|