Chromium Code Reviews
[email protected] (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(105)

Issue 1958253005: Program/transformfeedback restore order in virtual context switch. (Closed)

Created:
4 years, 7 months ago by Zhenyao Mo
Modified:
4 years, 7 months ago
CC:
chromium-reviews, piman+watch_chromium.org, Ken Russell (switch to Gerrit)
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Program/transformfeedback restore order in virtual context switch. The original order is wrong. We have to pause active transformfeedback from previous context, restore the program for this context, and then restore the active transformfeedback (possibly resume it) for this context. Also, add transformfeedback validation for UseProgram. Also, clean up some outdated bindings (auto-generated by running ui/gl/generate_bindings.py). With this CL, a few random crashes on Linux in WebGL2 conformance tests are gone. BUG=429053 TEST=gpu_unittests,webgl2_conformance [email protected] 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/744d40e0fc0133373c70406068ddb3bb5e3e462c Cr-Commit-Position: refs/heads/master@{#392712}

Patch Set 1 #

Patch Set 2 : #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+29 lines, -29 lines) Patch
M gpu/command_buffer/service/context_state.h View 1 chunk +2 lines, -2 lines 0 comments Download
M gpu/command_buffer/service/context_state.cc View 2 chunks +14 lines, -15 lines 3 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 1 3 chunks +13 lines, -6 lines 0 comments Download
M ui/gl/gl_enums_implementation_autogen.h View 1 chunk +0 lines, -6 lines 1 comment Download

Messages

Total messages: 16 (6 generated)
Zhenyao Mo
piman: PTAL kbr: FYI (feel free to review) https://codereview.chromium.org/1958253005/diff/20001/ui/gl/gl_enums_implementation_autogen.h File ui/gl/gl_enums_implementation_autogen.h (left): https://codereview.chromium.org/1958253005/diff/20001/ui/gl/gl_enums_implementation_autogen.h#oldcode3008 ui/gl/gl_enums_implementation_autogen.h:3008: }, ...
4 years, 7 months ago (2016-05-10 17:45:49 UTC) #3
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1958253005/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1958253005/20001
4 years, 7 months ago (2016-05-10 17:46:14 UTC) #4
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-10 19:02:02 UTC) #6
piman
lgtm
4 years, 7 months ago (2016-05-10 19:47:45 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1958253005/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1958253005/20001
4 years, 7 months ago (2016-05-10 20:52:06 UTC) #9
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 7 months ago (2016-05-10 20:56:32 UTC) #10
commit-bot: I haz the power
Patchset 2 (id:??) landed as https://crrev.com/744d40e0fc0133373c70406068ddb3bb5e3e462c Cr-Commit-Position: refs/heads/master@{#392712}
4 years, 7 months ago (2016-05-10 20:58:54 UTC) #12
Ken Russell (switch to Gerrit)
LGTM after the fact if this has been tested. One question. https://codereview.chromium.org/1958253005/diff/20001/gpu/command_buffer/service/context_state.cc File gpu/command_buffer/service/context_state.cc (right): ...
4 years, 7 months ago (2016-05-10 21:15:51 UTC) #14
Zhenyao Mo
https://codereview.chromium.org/1958253005/diff/20001/gpu/command_buffer/service/context_state.cc File gpu/command_buffer/service/context_state.cc (right): https://codereview.chromium.org/1958253005/diff/20001/gpu/command_buffer/service/context_state.cc#newcode300 gpu/command_buffer/service/context_state.cc:300: feature_info_->IsES3Capable()); On 2016/05/10 21:15:51, Ken Russell wrote: > Could ...
4 years, 7 months ago (2016-05-10 21:19:19 UTC) #15
Ken Russell (switch to Gerrit)
4 years, 7 months ago (2016-05-10 22:39:37 UTC) #16
Message was sent while issue was closed.
https://codereview.chromium.org/1958253005/diff/20001/gpu/command_buffer/serv...
File gpu/command_buffer/service/context_state.cc (right):

https://codereview.chromium.org/1958253005/diff/20001/gpu/command_buffer/serv...
gpu/command_buffer/service/context_state.cc:300: feature_info_->IsES3Capable());
On 2016/05/10 21:19:19, Zhenyao Mo wrote:
> On 2016/05/10 21:15:51, Ken Russell wrote:
> > Could you explain under what conditions restore_transform_feedback_bindings
> > might be false? I don't understand why it would be OK to skip it in any
> > situation where feature_info_->IsES3Capable() returns true.
> 
> Good question.  This function is also called to simply restore the current
> program. Say in a chromium extension function, we switch to a private program
to
> do some work, and after that, we want to restore the current program.  In that
> use case, we don't really care about transformfeedbacks because we didn't
touch
> them at all.  So providing this option is for that use case.

OK, as you see fit. I have a hard time understanding whether skipping the
restoration would be correct in any situation. It seems to me that it would
always be required to pause / resume any transform feedback before switching
programs, even in the same context.

Powered by Google App Engine
This is Rietveld 408576698