New issue
Advanced search Search tips

Issue 665521 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 602688



Sign in to add a comment

Support offscreen rendering in the passthrough command decoder

Project Member Reported by geoffl...@chromium.org, Nov 15 2016

Issue description

Chrome 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.

 
Cc: cwallez@chromium.org jmad...@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, 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

Cc: geoffl...@chromium.org
Owner: zmo@chromium.org
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.

Comment 5 by zmo@chromium.org, 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.
Project Member

Comment 6 by bugdroid1@chromium.org, 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

Project Member

Comment 7 by bugdroid1@chromium.org, 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

Project Member

Comment 8 by bugdroid1@chromium.org, 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

Project Member

Comment 9 by bugdroid1@chromium.org, 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

Owner: geoffl...@chromium.org
Status: Fixed (was: Assigned)

Sign in to add a comment