New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 630800 link

Starred by 3 users

Issue metadata

Status: ExternalDependency
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocking:
issue 662644


Show other hotlists

Hotlists containing this issue:
webgl-conformance-all


Sign in to add a comment

fbocompleteness.html fails on Mac

Project Member Reported by zmo@chromium.org, Jul 22 2016

Issue description

The failure is caused by https://github.com/KhronosGroup/WebGL/pull/1933

However, since it only fails on Mac, we might have a driver bug or Chrome bug here.
 
Components: Blink>HTML

Comment 2 by kbr@chromium.org, Aug 5 2016

Components: -Blink>HTML Blink>WebGL

Comment 3 by zmo@chromium.org, Aug 25 2016

framebuffer-completeness-unaffected.html is failed due to the same root cause:

if READ_BUFFER or DRAW_BUFFERs point to an attaching point with no image, FRAMEBUFFER_MISSING_ATTACHMENT is returned by checkFramebufferStatus(). However, framebuffer completeness should not be affected by READ_BUFFER or DRAW_BUFFERs settings.

Comment 4 by zmo@chromium.org, Aug 26 2016

Cc: piman@chromium.org bajones@chromium.org
 Issue 604053  has been merged into this issue.

Comment 6 by kbr@chromium.org, Sep 10 2016

Radar 28236629 filed about this.

Comment 7 by zmo@chromium.org, Nov 8 2016

Labels: -Pri-2 Pri-1
For the record, this is fixed in OSX 10.12.2 Beta (16C32f) on AMD, but not on Intel.

We have to decide to work around it or move it to WebGL conformance 2.0.1

Comment 8 by zmo@chromium.org, Nov 8 2016

Qiankun, Yunchao, anyone from Intel can take a shot at this one? Since it's not fixed in the 10.12.2 Beta on Intel.

The idea is to change READ_BUFFER and DRAW_BUFFERs settings if there are no images attached when calling CheckFramebufferStatus (and remember to reset if anything changes that might affect this, I think command buffer already has a dirty bit mechanism for CheckFramebufferStatus).
Owner: yunchao...@intel.com
OK, Zhenyao, I will take a look. 
This is a corner case, when the readbuffer/drawBuffers has been designated attachment point(s), but the attachment point(s) have no image, the GLES spec think it should be FRAMEBUFFER_COMPLETE. But mac doesn't follow the spec. 

I think we can use a workaround to return FRAMEBUFFER_COMPLETE directly for this corner case. Instead of set the READ_BUFFER and DRAW_BUFFERS and restore them before reading/rendering. WDYT? 

Please see the patch at https://codereview.chromium.org/2496813002/. It works fine on Mac Intel. I suppose we can apply it to all MacOSX vendors. 

Comment 11 by zmo@chromium.org, Nov 11 2016

This will not work when you try to render to it at least.

Say, one of the drawBuffers buffer doesn't have an image, but other buffers do.  Now you try to draw to it (or clear), and then you fake the framebuffer completeness, but actual draw/clear will fail because the driver thinks it's incomplete.

You will have to modify the drawBuffers/readbuffer settings so the driver thinks it's fbo complete.
Zhenyao, you are correct. The current WebGL conformance tests don't cover this feature. So the bots are all green. However, My pr at https://github.com/KhronosGroup/WebGL/pull/2137/ can catch the error you pointed out. 
BTW, this error not only appears when we call checkFramebufferStatus on Mac, but also appears for all other reading/drawing related APIs when some designated attachment point(s) have no image(s). It always reports GL_FRAMEBUFFER_INVALID_OPERATION on Mac in this situation, because it thinks that it is FRAMEBUFFER_INCOMPLETE (this is wrong). 

Comment 14 by zmo@chromium.org, Nov 18 2016

Blocking: -429053 662644
https://github.com/KhronosGroup/WebGL/pull/2137/ was merged, does that mean this is fixed or what are the next steps yunchao?

Comment 16 by zmo@chromium.org, Dec 16 2016

Labels: -Pri-1 Pri-2
The next step is to get Intel's (or Apple's) Mac driver team to fix this. Working around it seems very nasty and bug-prone to me.

Comment 17 by zmo@chromium.org, Dec 17 2016

This is fixed on AMD in OSX 10.12.2 (16C67).

As requested by Apple, filed another radar (29715965) for the same issue on Intel GPUs
Project Member

Comment 18 by bugdroid1@chromium.org, Jun 8 2017

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

commit 1733d120eb79e2d8d49b18892e60ee1297f646f7
Author: zmo <zmo@chromium.org>
Date: Thu Jun 08 23:24:48 2017

Update WebGL2 conformance test expectations for Mac bots.

BUG= 598930 , 617290 , 618464 ,630800, 641149 , 643866 , 645298 , 646182 , 654187 , 663188 ,665197, 665656 , 676848 , 679682 , 679684 , 679686 , 679687 , 679689 , 679690 , 679691 , 680278 , 684903 
TEST=mac bots on GPU FYI waterfall
TBR=kbr@chromium.org,kainino@chromium.org
NOTRY=true
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/2931993002
Cr-Commit-Position: refs/heads/master@{#478121}

[modify] https://crrev.com/1733d120eb79e2d8d49b18892e60ee1297f646f7/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py

Project Member

Comment 19 by sheriffbot@chromium.org, Jun 11 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Pri-2 -Hotlist-Recharge-Cold Pri-3
Status: ExternalDependency (was: Untriaged)
Still fails for me on macOS 10.13.4, Intel HD Graphics 6000.

I think we can downgrade to P3. I just updated radar 29715965 with my latest test result, so marking as ExternalDependency.
Labels: webgl-conformance

Sign in to add a comment