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

Issue 755115 link

Starred by 1 user

Issue metadata

Status: WontFix
Merged: issue 713889
Owner:
OOO until 2019-01-24
Closed: Aug 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug



Sign in to add a comment

Leaking data between PNG channels when sampling texture in WebGL

Reported by d...@playcanvas.com, Aug 14 2017

Issue description

Chrome Version       : 60.0.3112.90
OS Version: OS X 10.12.6
URLs (if applicable) :
Other browsers tested:
  Add OK or FAIL after other browsers where you have tested this issue:
     Safari 5:
  Firefox 4.x:
     IE 7/8/9:

What steps will reproduce the problem?
1. Visit https://s3-eu-west-1.amazonaws.com/bug-channel-leak.playcanvas.com/leaking.html
2. Notice areas which contain no red color are visible when rendered
3. This page is rendering a texture and sampling only the red channel

What is the expected result?
Rendering should be the same as Chrome on Windows and Safari and Firefox

What happens instead of that?
Data from green channel seems to be visible.

Please provide any additional information below. Attach a screenshot if
possible.

See screenshots for difference between Chrome + Safari

Notes: 
- This is not always reproducible. We had a case where one Macbook displayed the bug and another didn't.
- This link is the same, but uses a different PNG texture. https://s3-eu-west-1.amazonaws.com/bug-channel-leak.playcanvas.com/leaking-2.html it does not display the issue. Leading me to think there is a problem with some types of png.

UserAgentString: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36



 
Chrome - OSX.png
465 KB View Download
Safari - OSX.png
367 KB View Download

Comment 1 by sdy@chromium.org, Aug 14 2017

Mergedinto: 713889
Status: Duplicate (was: Unconfirmed)
It looks like this is fixed by color correct rendering. This is on by default in Chrome 61, which is in beta right now, but you can also turn it on by visiting chrome://flags/#enable-color-correct-rendering.

Comment 2 by kbr@chromium.org, Aug 14 2017

Components: Blink>WebGL
Owner: kbr@chromium.org
Status: Assigned (was: Duplicate)
Let me unduplicate this bug. We would like to understand exactly what's going on with this test case.

Comment 3 by kbr@chromium.org, Aug 14 2017

Status: WontFix (was: Assigned)
Using the excellent Spector.JS tool https://github.com/BabylonJS/Spector.js and in particular the top-of-tree version's ability to capture starting at page reload, it is clear that PlayCanvas is failing to make a needed call to:

gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);

When loading for example PNG files where the color channels are intended to be treated literally, it is absolutely required to set this in the context state in order to get portable behavior among browsers. (Though, as sdy@ points out, many browsers including Chrome are moving toward doing this colorspace conversion later in their compositing pipeline.)

This is a bug in the application. Closing as WontFix.

Sign in to add a comment