Define that sync objects do not become signaled until control returns to the event loop. - #2598
Conversation
|
@jdashg please review. |
kainino0x
left a comment
There was a problem hiding this comment.
The spec text LGTM. We may want to announce on public_webgl once we update implementations, too.
|
Tests LGTM as well. |
| // Verify as best as possible that the implementation doesn't allow a sync | ||
| // object to become signaled in the same frame, by spin-looping for some time. | ||
| var startTime = Date.now(); | ||
| while (Date.now() - startTime < 2000) { |
There was a problem hiding this comment.
300ms-1000ms is fine. 2000 seems unnecessarily high.
| if (startTimeOfFinish == 0) { | ||
| startTimeOfFinish = Date.now(); | ||
| } | ||
| if (Date.now() - startTimeOfFinish > 2000) { |
There was a problem hiding this comment.
2000 used without being a named constant again. Please name and define one.
There was a problem hiding this comment.
Thanks for your feedback. Named and defined one.
|
Ok, this works for me. The title here is inaccurate though, since this matches the query behavior that the app must return to the event loop, not necessarily the next frame. It's worth correcting so the changelog shows what we actually did. |
to the event loop. Follow the same semantics for sync objects as were previously used for queries. Add a test for the new behavior.
3719480 to
126cbdc
Compare
|
Thanks @jdashg for your review. I rebased, squashed and edited the commit message to be accurate. Will update the pull request title here too. Merging. |
Follows similar restrictions for query objects and implements KhronosGroup/WebGL#2598 . Disable EXT_disjoint_timer_query at the WebGL level. TBR=kbr@chromium.org (cherry picked from commit d4ff25f) Bug: 808744 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I178f08fd30bf252865abf2744636b4e9b3a0e677 Reviewed-on: https://chromium-review.googlesource.com/906402 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#535327} Reviewed-on: https://chromium-review.googlesource.com/917009 Reviewed-by: Kenneth Russell <kbr@chromium.org> Cr-Commit-Position: refs/branch-heads/3325@{#452} Cr-Branched-From: bc084a8-refs/heads/master@{#530369}
(Manual M65 merge-back) Follows similar restrictions for query objects and implements KhronosGroup/WebGL#2598 . Disable EXT_disjoint_timer_query at the WebGL level. TBR=dcheng@chromium.org, kainino@chromium.org, piman@chromium.org, zmo@chromium.org Bug: 808744 Change-Id: Ibf27298392cabb87fa0222e18145682a55392997 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Reviewed-on: https://chromium-review.googlesource.com/919154 Reviewed-by: Kenneth Russell <kbr@chromium.org> Cr-Commit-Position: refs/branch-heads/3325@{#464} Cr-Branched-From: bc084a8-refs/heads/master@{#530369}
Follow the same semantics for sync objects as were previously used for
queries. Add a test for the new behavior.