New issue
Advanced search Search tips

Issue 828135 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature


Sign in to add a comment

WebGL asynchronous readback implementation

Project Member Reported by kainino@chromium.org, Apr 2 2018

Issue description

The WEBGL_get_buffer_sub_data_async proposal has been rejected in favor of implementation changes to allow asynchronous readback using the synchronous primitives + fences.

https://www.khronos.org/webgl/public-mailing-list/public_webgl/1712/msg00009.php
https://github.com/jdashg/misc/blob/master/remoted-readback.md

I'm working on that implementation now.

* Remove old prototype code
* Reject WebGL extension spec
* Make fences asynchronous (no round trip) similar to the way queries work
* Maintain a shadow copy of buffers allocated with GL_*_READ usage, update it according to Jeff's proposal, use it for readbacks
* WebGL CTS tests if possible (gl_tests if not)
* Spec addition (may have to be non-normative)
 
Description: Show this description
Wrote this doc to explain (to myself) the implementation, since it turns out to be quite complicated. Still actively working on the implementation.
https://docs.google.com/document/d/1amPj0JnN3_QowpkxMsT-goYIMTCNeSh-H57V-RYbfDU/edit?usp=sharing

Comment 3 by kbr@chromium.org, May 10 2018

Looking good Kai. I haven't thought through all the scenarios but am not 100% clear on why nothing is updated during writes. I think the following situation is broken:

1. copyBufferSubData
2. insert fence
3. copyBufferSubData again
4. poll fence
5. readback

During the readback, will the buffer still think that the shadow serial is up to date? It seems to me that some sort of invalidation or incrementing of some counter has to happen during writes.

Thanks for reviewing. The implementation is getting close to testable - so far so good.

That's one of the subtle bits that I've been struggling to make sure is correct. However I think that case is handled correctly (or at least it is in my mental model):

1. B.serialOfLastWrite = bufferShadowSerial // now 1
2. bufferShadowSerial++ // now 2 ; 1 is captured in the closure
3. B.serialOfLastWrite = bufferShadowSerial // now 2
4. B.shadowSerial = 1 // inside the closure, which is called now
5. B.shadowSerial != B.serialOfLastWrite // 1 != 2

Comment 5 by kbr@chromium.org, May 11 2018

You've given this a lot more thought than I have so I'm sure you're correct. Let's make sure to write comprehensive tests for this.

Project Member

Comment 6 by bugdroid1@chromium.org, May 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/762cc0f33077c0a91c20849a89497bbc6934c00e

commit 762cc0f33077c0a91c20849a89497bbc6934c00e
Author: Kai Ninomiya <kainino@chromium.org>
Date: Thu May 17 21:47:38 2018

Remove WEBGL_get_buffer_sub_data_async

This is essentially a revert of:
https://crrev.com/884e8e8ad9cf667829d80f4bd222a0369baa088b

This will be followed up by an implementation of the new semantics (see bug).

Bug:  828135 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I26c295224613276f04db2fde2b9d23acdc70f369
Reviewed-on: https://chromium-review.googlesource.com/1023126
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559690}
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/content/renderer/webgraphicscontext3d_provider_impl.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/content/renderer/webgraphicscontext3d_provider_impl.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/GLES2/gl2chromium_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_implementation_unittest.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/gles2_cmd_buffer_functions.txt
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_unittest_commands.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/gpu/command_buffer/tests/gl_set_aggressively_free_resources_unittest.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/public/platform/web_graphics_context_3d_provider.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/renderer/modules/modules_idl_files.gni
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/renderer/modules/webgl/BUILD.gn
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.h
[delete] https://crrev.com/105591352c1a54bb65cff2fc73689c8496331da1/third_party/blink/renderer/modules/webgl/webgl_get_buffer_sub_data_async.cc
[delete] https://crrev.com/105591352c1a54bb65cff2fc73689c8496331da1/third_party/blink/renderer/modules/webgl/webgl_get_buffer_sub_data_async.h
[delete] https://crrev.com/105591352c1a54bb65cff2fc73689c8496331da1/third_party/blink/renderer/modules/webgl/webgl_get_buffer_sub_data_async.idl
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test_helpers.h
[modify] https://crrev.com/762cc0f33077c0a91c20849a89497bbc6934c00e/third_party/blink/renderer/platform/graphics/test/fake_web_graphics_context_3d_provider.h

Project Member

Comment 7 by bugdroid1@chromium.org, May 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff828877e7dd93fb123bc4d6539d93a2187334dd

commit ff828877e7dd93fb123bc4d6539d93a2187334dd
Author: Kai Ninomiya <kainino@chromium.org>
Date: Mon May 21 22:16:27 2018

gles2_implementation: un-autogen CopyBufferSubData

The implementation of CopyBufferSubData will be modified in a subsequent change.

Bug:  828135 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ic6da246f41267040f6bf8dcdec59c3bb36a88d1b
Reviewed-on: https://chromium-review.googlesource.com/1066744
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560374}
[modify] https://crrev.com/ff828877e7dd93fb123bc4d6539d93a2187334dd/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/ff828877e7dd93fb123bc4d6539d93a2187334dd/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/ff828877e7dd93fb123bc4d6539d93a2187334dd/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/ff828877e7dd93fb123bc4d6539d93a2187334dd/gpu/command_buffer/client/gles2_implementation_impl_autogen.h

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d1d26e188546b5e4cb3be755d1a6ef65e06730a6

commit d1d26e188546b5e4cb3be755d1a6ef65e06730a6
Author: Kai Ninomiya <kainino@chromium.org>
Date: Thu Jun 07 16:54:46 2018

Roll WebGL 198d637..25a501c

https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/198d637..25a501c

Bug:  828135 , 849572
Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_angle_rel_ng;luci.chromium.try:win_angle_rel_ng
Change-Id: If7749e453107880d235109758aebf452ff5a80ab
Reviewed-on: https://chromium-review.googlesource.com/1086507
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565297}
[modify] https://crrev.com/d1d26e188546b5e4cb3be755d1a6ef65e06730a6/DEPS
[modify] https://crrev.com/d1d26e188546b5e4cb3be755d1a6ef65e06730a6/content/test/data/gpu/webgl2_conformance_tests_output.json
[modify] https://crrev.com/d1d26e188546b5e4cb3be755d1a6ef65e06730a6/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/d1d26e188546b5e4cb3be755d1a6ef65e06730a6/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/d1d26e188546b5e4cb3be755d1a6ef65e06730a6/content/test/gpu/gpu_tests/webgl_conformance_revision.txt

Blocking: 851159
Project Member

Comment 10 by bugdroid1@chromium.org, Jun 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2ca03f3fc6fde691b46cba5744b31dff33c7725c

commit 2ca03f3fc6fde691b46cba5744b31dff33c7725c
Author: Kai Ninomiya <kainino@chromium.org>
Date: Tue Jun 12 20:50:48 2018

GL_CHROMIUM_nonblocking_readback

See gpu/GLES2/extensions/CHROMIUM/CHROMIUM_nonblocking_readback.txt
for documentation.

Bug:  828135 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I16d8aeb2b902629c12684317bd8cea321f2a71e4
Reviewed-on: https://chromium-review.googlesource.com/1043024
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566562}
[add] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_nonblocking_readback.txt
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/GLES2/gl2chromium_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/GLES2/gl2extchromium.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/BUILD.gn
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_implementation.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[add] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/readback_buffer_shadow_tracker.cc
[add] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/client/readback_buffer_shadow_tracker.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/gles2_cmd_buffer_functions.txt
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/buffer_manager.cc
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/buffer_manager.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/command_buffer/service/query_manager.cc
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/2ca03f3fc6fde691b46cba5744b31dff33c7725c/ui/gl/gl_bindings.h

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ce6089c54a1673de6c96047d7f26247c38e8c77

commit 8ce6089c54a1673de6c96047d7f26247c38e8c77
Author: Kai Ninomiya <kainino@chromium.org>
Date: Wed Jun 13 02:44:26 2018

Reimplement WebGLSync using GL_CHROMIUM_nonblocking_readback

This replaces the GLsync object in WebGLSync with the
GL_READBACK_SHADOW_COPIES_UPDATED_CHROMIUM query from the
GL_CHROMIUM_nonblocking_readback extension.

In order to prevent invalid readback results when using transform
feedback, this calls InvalidateReadbackBufferShadowDataCHROMIUM on
buffers when they are written by transform feedback.

Bug:  828135 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ia5662e01fb2485595a1cd46e5c66d4db04efaf92
Reviewed-on: https://chromium-review.googlesource.com/1036403
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566698}
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.h
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl_fence_sync.cc
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl_fence_sync.h
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl_sync.cc
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl_sync.h
[modify] https://crrev.com/8ce6089c54a1673de6c96047d7f26247c38e8c77/third_party/blink/renderer/modules/webgl/webgl_transform_feedback.h

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc

commit 20307cb3d462a74f097e9c7f2bfc05e3fe0963dc
Author: Kai Ninomiya <kainino@chromium.org>
Date: Mon Jun 18 19:32:28 2018

implement CHROMIUM_nonblocking_readback on passthrough cmd decoder

Bug:  828135 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I9ac4b3d671bee44c574f1a75ca357296a34f1cba
Reviewed-on: https://chromium-review.googlesource.com/1098558
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568109}
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_nonblocking_readback.txt
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/client/readback_buffer_shadow_tracker.cc
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/client/readback_buffer_shadow_tracker.h
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/gles2_cmd_buffer_functions.txt
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/20307cb3d462a74f097e9c7f2bfc05e3fe0963dc/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c9829db74f398da0631ebaa2100c48c86a16c097

commit c9829db74f398da0631ebaa2100c48c86a16c097
Author: Kai Ninomiya <kainino@chromium.org>
Date: Tue Jun 19 00:08:56 2018

Revert "implement CHROMIUM_nonblocking_readback on passthrough cmd decoder"

This reverts commit 20307cb3d462a74f097e9c7f2bfc05e3fe0963dc.

Reason for revert: WebglConformance_deqp_functional_gles3_sync failing on passthrough cmd decoder

Original change's description:
> implement CHROMIUM_nonblocking_readback on passthrough cmd decoder
> 
> Bug:  828135 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I9ac4b3d671bee44c574f1a75ca357296a34f1cba
> Reviewed-on: https://chromium-review.googlesource.com/1098558
> Commit-Queue: Kai Ninomiya <kainino@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#568109}

TBR=geofflang@chromium.org,piman@chromium.org,kainino@chromium.org

Change-Id: I354221933ecfe1a8610fec6e1250893e8307ce7c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  828135 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1105362
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568245}
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_nonblocking_readback.txt
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/client/readback_buffer_shadow_tracker.cc
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/client/readback_buffer_shadow_tracker.h
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/gles2_cmd_buffer_functions.txt
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/c9829db74f398da0631ebaa2100c48c86a16c097/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc

Blockedon: 854657
Project Member

Comment 15 by bugdroid1@chromium.org, Jun 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/89f67fa03efd788b29bb39199a3f4b025bd1d41e

commit 89f67fa03efd788b29bb39199a3f4b025bd1d41e
Author: Kai Ninomiya <kainino@chromium.org>
Date: Thu Jun 21 14:38:20 2018

implement CHROMIUM_nonblocking_readback on passthrough cmd decoder

Reland of https://chromium-review.googlesource.com/c/chromium/src/+/1098558
but with the bug fixed.

TBR=piman@chromium.org, geofflang@chromium.org

Bug:  828135 
Change-Id: I8c2b899e911277f9ad0d86363a54d187aad64843
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1105564
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569255}
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_nonblocking_readback.txt
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/client/readback_buffer_shadow_tracker.cc
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/client/readback_buffer_shadow_tracker.h
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/gles2_cmd_buffer_functions.txt
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/89f67fa03efd788b29bb39199a3f4b025bd1d41e/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/18952334c961e8ea269a6e1c07ad53543678f0e8

commit 18952334c961e8ea269a6e1c07ad53543678f0e8
Author: Geoff Lang <geofflang@chromium.org>
Date: Sat Jun 23 01:40:14 2018

Use the default command decoder for webgl[2]_conformance tests.

This will change the optional GPU testers to always test what we're shipping.

Change webgl2_conformance_d3d11_passthrough_tests to
webgl2_conformance_d3d11_validating_tests now that the passthrough command
decoder is used in webgl2_conformance_tests on Windows.

BUG= 828135 
BUG=602688

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I600b53722d797693fd205166afcc4cefc2a4f242
Reviewed-on: https://chromium-review.googlesource.com/1107846
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569873}
[modify] https://crrev.com/18952334c961e8ea269a6e1c07ad53543678f0e8/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/18952334c961e8ea269a6e1c07ad53543678f0e8/testing/buildbot/chromium.gpu.fyi.json
[modify] https://crrev.com/18952334c961e8ea269a6e1c07ad53543678f0e8/testing/buildbot/chromium.gpu.json
[modify] https://crrev.com/18952334c961e8ea269a6e1c07ad53543678f0e8/testing/buildbot/client.v8.fyi.json
[modify] https://crrev.com/18952334c961e8ea269a6e1c07ad53543678f0e8/testing/buildbot/test_suites.pyl

Status: Fixed (was: Started)
Blocking: 857112

Comment 19 by kbr@chromium.org, Jun 28 2018

Great work Kai getting this in!

Blocking: 873424
Blocking: 910814

Sign in to add a comment