Support offscreen rendering in the passthrough command decoder |
||||
Issue descriptionChrome sometimes creates offscreen surfaces. These are currently implemented by creating a 1x1 pbuffer and a full-sized framebuffer to emulate the default framebuffer. This causes issues for the passthrough command decoder because some queries return different results if the framebuffer is default or not. It would be ideal to use a pbuffer with the correct size and format to back these offscreen sufraces. In order to support the TakeFrontBuffer and ReturnFrontBuffer entry points, the pbuffer may need to be bound to a texture. The functionality can be tested with gl_tests, particularly the mailbox tests about the front buffer.
,
Nov 28 2016
,
Feb 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ec9b0ca3bf54e11d3e9d206f24845c32e77c5385 commit ec9b0ca3bf54e11d3e9d206f24845c32e77c5385 Author: geofflang <geofflang@chromium.org> Date: Sat Feb 11 17:06:32 2017 Mark SwapBuffers for an offscreen surface as unimplemented BUG= 602737 BUG= 665521 CQ_INCLUDE_TRYBOTS=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 Review-Url: https://codereview.chromium.org/2686233004 Cr-Commit-Position: refs/heads/master@{#449866} [modify] https://crrev.com/ec9b0ca3bf54e11d3e9d206f24845c32e77c5385/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc [modify] https://crrev.com/ec9b0ca3bf54e11d3e9d206f24845c32e77c5385/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h [modify] https://crrev.com/ec9b0ca3bf54e11d3e9d206f24845c32e77c5385/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
,
Feb 15 2017
Mo, want to look into this? There are a bunch of tests in gl_tests that fail when using --use-passthrough-cmd-decoder because it doesn't emulate the default framebuffer for offscreen surfaces. Ideally we would use a real EGL pbuffer surface for each offscreen command buffer and have the option to create it with a depth stencil as well. This makes sure all special validation code related to the default framebuffer just works.
,
Feb 15 2017
Sure. I am putting this into my queue. I might have questions for you on this when I am getting to it.
,
Mar 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0923c3f3b69d593eebb2b87c1270664879ca4e17 commit 0923c3f3b69d593eebb2b87c1270664879ca4e17 Author: geofflang <geofflang@chromium.org> Date: Tue Mar 07 18:44:51 2017 Update passthrough command decoder WebGL expectations for Linux. TBR=zmo@chromium.org NOTRY=true BUG= 665521 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 Review-Url: https://codereview.chromium.org/2739493003 Cr-Commit-Position: refs/heads/master@{#455155} [modify] https://crrev.com/0923c3f3b69d593eebb2b87c1270664879ca4e17/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
,
Aug 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/adbdda233f871068c0666a47a20bea37c0b08c2a commit adbdda233f871068c0666a47a20bea37c0b08c2a Author: Geoff Lang <geofflang@chromium.org> Date: Thu Aug 10 21:10:00 2017 Use a framebuffer with a depth stencil in gl_tests that require it. Some gl_tests need a depth and/or stencil buffer to pass but the options do not guarentee that one will be present. Always create one to ensure the test has consistant behaviour. BUG= 665521 BUG= 754008 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: I008eed043517b017545e9dc18be0c22063300a5a Reviewed-on: https://chromium-review.googlesource.com/608809 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Cr-Commit-Position: refs/heads/master@{#493545} [modify] https://crrev.com/adbdda233f871068c0666a47a20bea37c0b08c2a/gpu/command_buffer/tests/gl_clear_framebuffer_unittest.cc [modify] https://crrev.com/adbdda233f871068c0666a47a20bea37c0b08c2a/gpu/command_buffer/tests/occlusion_query_unittest.cc
,
Sep 12 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bb607f63e67703f32881fa11e9d20d53878b00e8 commit bb607f63e67703f32881fa11e9d20d53878b00e8 Author: Geoff Lang <geofflang@chromium.org> Date: Tue Sep 12 21:39:23 2017 Emulate the default framebuffer for offscreen contexts. Revert changes to gl_tests that worked around the missing default framebuffer. BUG= 665521 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: I8d7f69790eba8a8a13c240708e3143b726c7e05c Reviewed-on: https://chromium-review.googlesource.com/639193 Reviewed-by: Antoine Labour <piman@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Cr-Commit-Position: refs/heads/master@{#501406} [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/service/client_service_map.h [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/service/feature_info.cc [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/service/feature_info.h [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/service/gles2_cmd_decoder.cc [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/tests/gl_clear_framebuffer_unittest.cc [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/tests/gl_manager.cc [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/tests/gl_texture_mailbox_unittest.cc [modify] https://crrev.com/bb607f63e67703f32881fa11e9d20d53878b00e8/gpu/command_buffer/tests/occlusion_query_unittest.cc
,
Sep 15 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c290db2ea2b3e4cdb745946d693e10a033585ffa commit c290db2ea2b3e4cdb745946d693e10a033585ffa Author: Geoff Lang <geofflang@chromium.org> Date: Fri Sep 15 17:05:38 2017 Set non-mipmapped sampler parameters for emulated backbuffer textures. When chrome samples these textures to composite them, the sampler parameters are unchanged and the texture becomes incomplete. BUG= 665521 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: I170d329cbebb44a2b01d8567e97410cd4a250fb5 Reviewed-on: https://chromium-review.googlesource.com/667996 Reviewed-by: Antoine Labour <piman@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Cr-Commit-Position: refs/heads/master@{#502289} [modify] https://crrev.com/c290db2ea2b3e4cdb745946d693e10a033585ffa/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc [modify] https://crrev.com/c290db2ea2b3e4cdb745946d693e10a033585ffa/gpu/command_buffer/tests/gl_texture_mailbox_unittest.cc
,
Sep 15 2017
|
||||
►
Sign in to add a comment |
||||
Comment 1 by geoffl...@chromium.org
, Nov 18 2016