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

Issue 878286 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Software-rendered WebGL context outputs transparent blobs when premultiplied alpha is enabled

Reported by t...@zfaas.com, Aug 28

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36

Steps to reproduce the problem:
1. Disable hardware acceleration by starting Chrome with `--disable-gpu` or unchecking 'hardware acceleration' in chrome://settings/
2. Open the attached webpage and wait for one second

What is the expected behavior?
The image below the canvas appears the same as the canvas. See the attached `expected.png`.

What went wrong?
The image appears black, even though the canvas renders correctly. See the attached `actual.png`.

Did this work before? N/A 

Does this work in other browsers? Yes

Chrome version: 68.0.3440.106  Channel: stable
OS Version: Ubuntu 18.04.1
Flash Version: 

The image is displaying a blob captured from the canvas with `toBlob`, generating one second after rendering the image -- the issue also occurs with no delay added (the delay is there to ensure the problem isn't timing-related).

The issue only occurs when hardware acceleration is disabled and premultiplied alpha enabled. The image renders correctly when premultiplied alpha is disabled.

The problem also occurs when using `toDataURL`.
 
index.html
2.4 KB View Download
expected.png
36.8 KB View Download
actual.png
1.2 KB View Download
Components: Internals>GPU>SwiftShader
Labels: Needs-Triage-M68
Components: Blink>Canvas
The associated code paths are WebGLRenderingContextBase::PaintRenderingResultsToCanvas and WebGLRenderingContextBase::CopyRenderingResultsFromDrawingBuffer. Not immediately sure what the difference is when using SwiftShader and when not. Since the destination is a JPEG image, there shouldn't be an alpha channel, but I'm not sure where we should be discarding the alpha data.

Cc: viswa.karala@chromium.org
Labels: Triaged-ET TE-NeedsTriageFromHYD
Unable to reproduce the issue on chrome reported version# 68.0.3440.106 using Ubuntu 14.04 and 17.10 with '.html' file provided in comment# 0. As per comment# 0, issue was reported on Ubuntu 18.04.1, hence routing this issue to Inhouse for further triaging the issue, adding TE-NeedsTriageFromHYD label to it.

Thanks!
Cc: kbr@chromium.org sugoi@chromium.org
Status: Available (was: Unconfirmed)

Sign in to add a comment