Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(414)

Issue 1160863007: DCHECK if shader compilation fails that it's due to context loss. (Closed)

Created:
5 years, 6 months ago by danakj
Modified:
5 years, 6 months ago
CC:
cc-bugs_chromium.org, chromium-reviews, danakj+watch_chromium.org, darin-cc_chromium.org, jam, jbauman, jbauman+watch_chromium.org, kalyank, piman+watch_chromium.org, sievers+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

DCHECK if shader compilation fails that it's due to context loss. Add GetGraphicsResetStatusKHR() to GLES2Interface so GLHelper code can verify this. Adds IsGpuChannelLost() to GpuControl to tell if the GpuChannelHost has lost its connection to the GPU process, which is implemented in CommandBufferProxyImpl. Uses this along with the GetLastState() on the CommandBuffer (via CommandBufferHelper::IsContextLost()) to tell if the context is lost from GLES2Implementation. R=piman@chromium.org TBR=sky BUG=492447 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/b7c7364c8783728bf33dc3edbef59cdce4aefb40 Cr-Commit-Position: refs/heads/master@{#333404}

Patch Set 1 #

Patch Set 2 : glhelperlost: test #

Patch Set 3 : glhelperlost: . #

Total comments: 6

Patch Set 4 : glhelperlost: . #

Patch Set 5 : glhelperlost: forreal #

Total comments: 1

Patch Set 6 : glhelperlost: gles2interface? #

Total comments: 2

Patch Set 7 : glhelperlost: better?better! #

Total comments: 5

Patch Set 8 : glhelperlost: nullchannel #

Patch Set 9 : glhelperlost: mojo #

Patch Set 10 : glhelperlost: commentintxt #

Total comments: 2

Patch Set 11 : glhelperlost: . #

Unified diffs Side-by-side diffs Delta from patch set Stats (+93 lines, -9 lines) Patch
M content/common/gpu/client/command_buffer_proxy_impl.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M content/common/gpu/client/command_buffer_proxy_impl.cc View 1 2 3 4 5 6 7 1 chunk +4 lines, -0 lines 0 comments Download
M content/common/gpu/client/gl_helper_scaling.cc View 1 2 3 4 5 6 1 chunk +2 lines, -9 lines 0 comments Download
M gpu/GLES2/gl2chromium_autogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/build_gles2_cmd_buffer.py View 1 2 3 4 5 6 1 chunk +6 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/client_test_helper.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_c_lib_autogen.h View 1 2 3 4 5 6 7 8 9 2 chunks +7 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation.cc View 1 2 3 4 5 6 1 chunk +15 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation_autogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_interface_autogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_interface_stub_autogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_trace_implementation_autogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +5 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gpu_control.h View 1 2 3 4 5 6 1 chunk +4 lines, -0 lines 0 comments Download
M gpu/command_buffer/cmd_buffer_functions.txt View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/in_process_command_buffer.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/service/in_process_command_buffer.cc View 1 2 3 4 5 6 1 chunk +6 lines, -0 lines 0 comments Download
M gpu/command_buffer/tests/gl_manager.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/tests/gl_manager.cc View 1 2 3 4 5 6 1 chunk +5 lines, -0 lines 0 comments Download
M gpu/gles2_conform_support/egl/display.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M gpu/gles2_conform_support/egl/display.cc View 1 2 3 4 5 6 1 chunk +5 lines, -0 lines 0 comments Download
M mojo/gles2/command_buffer_client_impl.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
M mojo/gles2/command_buffer_client_impl.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +5 lines, -0 lines 0 comments Download
M mojo/gpu/mojo_gles2_impl_autogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M mojo/gpu/mojo_gles2_impl_autogen.cc View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -0 lines 0 comments Download
M ppapi/proxy/ppapi_command_buffer_proxy.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M ppapi/proxy/ppapi_command_buffer_proxy.cc View 1 2 3 4 5 6 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 48 (11 generated)
danakj
5 years, 6 months ago (2015-05-28 21:18:27 UTC) #1
jamesr
We already have an entry pot to check for it the context is lost (glQueryContextResetWhateverARB) ...
5 years, 6 months ago (2015-05-28 21:35:29 UTC) #3
danakj
Yes I can use that then. On Thu, May 28, 2015 at 2:35 PM, <jamesr@chromium.org> ...
5 years, 6 months ago (2015-05-28 21:37:08 UTC) #4
danakj
I don't see anything with "Reset" in a name in gles2_interface_autogen.h. Help? On Thu, May ...
5 years, 6 months ago (2015-05-28 21:39:15 UTC) #5
danakj
On 2015/05/28 21:35:29, jamesr wrote: > We already have an entry pot to check for ...
5 years, 6 months ago (2015-05-28 22:00:27 UTC) #6
danakj
On 2015/05/28 22:00:27, danakj wrote: > On 2015/05/28 21:35:29, jamesr wrote: > > We already ...
5 years, 6 months ago (2015-05-28 22:02:42 UTC) #7
piman
On 2015/05/28 22:02:42, danakj wrote: > On 2015/05/28 22:00:27, danakj wrote: > > On 2015/05/28 ...
5 years, 6 months ago (2015-05-28 23:35:36 UTC) #8
Ken Russell (switch to Gerrit)
Thanks for doing this cleanup. LGTM from the standpoint of getting the DCHECK back in. ...
5 years, 6 months ago (2015-05-29 17:47:05 UTC) #10
danakj
I'm way over my head here, but I'm not seeing why this belongs on GLES2Impl. ...
5 years, 6 months ago (2015-05-29 18:30:15 UTC) #11
Ken Russell (switch to Gerrit)
This seems fine to me in its current form. We can refine it later. https://codereview.chromium.org/1160863007/diff/40001/content/common/gpu/client/gl_helper_scaling.cc ...
5 years, 6 months ago (2015-05-29 19:13:09 UTC) #12
danakj
Oops, I thought it did. Now it does.
5 years, 6 months ago (2015-05-29 19:53:04 UTC) #13
Ken Russell (switch to Gerrit)
Still LGTM https://codereview.chromium.org/1160863007/diff/80001/content/common/gpu/client/gl_helper_scaling.cc File content/common/gpu/client/gl_helper_scaling.cc (right): https://codereview.chromium.org/1160863007/diff/80001/content/common/gpu/client/gl_helper_scaling.cc#newcode882 content/common/gpu/client/gl_helper_scaling.cc:882: DCHECK_IMPLIES(!Initialized(), context_support->IsContextLost()); Nice.
5 years, 6 months ago (2015-05-29 22:42:44 UTC) #14
danakj
WDYT piman@ looks like the gpu/ bits need an owners approval still.
5 years, 6 months ago (2015-05-29 23:03:45 UTC) #15
piman
On Fri, May 29, 2015 at 10:47 AM, <kbr@chromium.org> wrote: > Thanks for doing this ...
5 years, 6 months ago (2015-06-01 21:09:07 UTC) #16
piman
LGTM, but can you add a TODO/bug that ContextSupport::IsContextLost only reflects that the current context ...
5 years, 6 months ago (2015-06-01 21:12:16 UTC) #17
danakj
On 2015/05/28 23:35:36, piman (Very slow to review) wrote: > On 2015/05/28 22:02:42, danakj wrote: ...
5 years, 6 months ago (2015-06-08 19:28:08 UTC) #18
danakj
This patch adds a method to GLES2Interface that calls the helper. But it doesn't add ...
5 years, 6 months ago (2015-06-08 19:31:48 UTC) #19
danakj
https://codereview.chromium.org/1160863007/diff/140001/gpu/command_buffer/client/gles2_interface.h File gpu/command_buffer/client/gles2_interface.h (right): https://codereview.chromium.org/1160863007/diff/140001/gpu/command_buffer/client/gles2_interface.h#newcode30 gpu/command_buffer/client/gles2_interface.h:30: virtual GLboolean IsContextLost() = 0; I am pretty sure ...
5 years, 6 months ago (2015-06-08 20:57:11 UTC) #22
piman
On Mon, Jun 8, 2015 at 12:28 PM, <danakj@chromium.org> wrote: > On 2015/05/28 23:35:36, piman ...
5 years, 6 months ago (2015-06-08 20:58:05 UTC) #23
piman
https://codereview.chromium.org/1160863007/diff/140001/gpu/command_buffer/client/gles2_interface.h File gpu/command_buffer/client/gles2_interface.h (right): https://codereview.chromium.org/1160863007/diff/140001/gpu/command_buffer/client/gles2_interface.h#newcode30 gpu/command_buffer/client/gles2_interface.h:30: virtual GLboolean IsContextLost() = 0; On 2015/06/08 20:57:10, danakj ...
5 years, 6 months ago (2015-06-08 21:01:58 UTC) #24
danakj
PTAL
5 years, 6 months ago (2015-06-08 22:02:11 UTC) #25
danakj
https://codereview.chromium.org/1160863007/diff/160001/gpu/command_buffer/build_gles2_cmd_buffer.py File gpu/command_buffer/build_gles2_cmd_buffer.py (right): https://codereview.chromium.org/1160863007/diff/160001/gpu/command_buffer/build_gles2_cmd_buffer.py#newcode2705 gpu/command_buffer/build_gles2_cmd_buffer.py:2705: 'gen_cmd': False, This is the one weird trick to ...
5 years, 6 months ago (2015-06-08 22:02:52 UTC) #26
piman
LGTM but for one thing. https://codereview.chromium.org/1160863007/diff/160001/content/common/gpu/client/command_buffer_proxy_impl.cc File content/common/gpu/client/command_buffer_proxy_impl.cc (right): https://codereview.chromium.org/1160863007/diff/160001/content/common/gpu/client/command_buffer_proxy_impl.cc#newcode450 content/common/gpu/client/command_buffer_proxy_impl.cc:450: return channel_->IsLost(); !channel_ || ...
5 years, 6 months ago (2015-06-08 22:21:16 UTC) #27
danakj
https://codereview.chromium.org/1160863007/diff/160001/content/common/gpu/client/command_buffer_proxy_impl.cc File content/common/gpu/client/command_buffer_proxy_impl.cc (right): https://codereview.chromium.org/1160863007/diff/160001/content/common/gpu/client/command_buffer_proxy_impl.cc#newcode450 content/common/gpu/client/command_buffer_proxy_impl.cc:450: return channel_->IsLost(); On 2015/06/08 22:21:16, piman (Very slow to ...
5 years, 6 months ago (2015-06-08 22:22:37 UTC) #28
piman
lgtm
5 years, 6 months ago (2015-06-08 22:32:24 UTC) #29
danakj
+sky for mojo/
5 years, 6 months ago (2015-06-08 22:43:29 UTC) #33
Ken Russell (switch to Gerrit)
LGTM again. Thanks for cleaning this up.
5 years, 6 months ago (2015-06-08 22:59:09 UTC) #34
Ken Russell (switch to Gerrit)
One small comment. https://codereview.chromium.org/1160863007/diff/260001/gpu/command_buffer/client/gles2_implementation.cc File gpu/command_buffer/client/gles2_implementation.cc (right): https://codereview.chromium.org/1160863007/diff/260001/gpu/command_buffer/client/gles2_implementation.cc#newcode4115 gpu/command_buffer/client/gles2_implementation.cc:4115: // the actual reason here if ...
5 years, 6 months ago (2015-06-08 23:08:22 UTC) #35
danakj
https://codereview.chromium.org/1160863007/diff/260001/gpu/command_buffer/client/gles2_implementation.cc File gpu/command_buffer/client/gles2_implementation.cc (right): https://codereview.chromium.org/1160863007/diff/260001/gpu/command_buffer/client/gles2_implementation.cc#newcode4115 gpu/command_buffer/client/gles2_implementation.cc:4115: // the actual reason here if we cared to. ...
5 years, 6 months ago (2015-06-08 23:09:37 UTC) #36
Ken Russell (switch to Gerrit)
On 2015/06/08 23:09:37, danakj wrote: > https://codereview.chromium.org/1160863007/diff/260001/gpu/command_buffer/client/gles2_implementation.cc > File gpu/command_buffer/client/gles2_implementation.cc (right): > > https://codereview.chromium.org/1160863007/diff/260001/gpu/command_buffer/client/gles2_implementation.cc#newcode4115 > ...
5 years, 6 months ago (2015-06-08 23:22:11 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1160863007/270001
5 years, 6 months ago (2015-06-08 23:40:42 UTC) #40
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/69282)
5 years, 6 months ago (2015-06-08 23:49:40 UTC) #42
danakj
TBR=sky
5 years, 6 months ago (2015-06-09 00:33:57 UTC) #43
danakj
On 2015/06/09 00:33:57, danakj wrote: > TBR=sky (adding a mojo method stub to a common ...
5 years, 6 months ago (2015-06-09 00:34:30 UTC) #45
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1160863007/270001
5 years, 6 months ago (2015-06-09 00:37:22 UTC) #46
commit-bot: I haz the power
Committed patchset #11 (id:270001)
5 years, 6 months ago (2015-06-09 00:45:40 UTC) #47
commit-bot: I haz the power
5 years, 6 months ago (2015-06-09 00:47:25 UTC) #48
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/b7c7364c8783728bf33dc3edbef59cdce4aefb40
Cr-Commit-Position: refs/heads/master@{#333404}

Powered by Google App Engine
This is Rietveld 408576698