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

Issue 710029 link

Starred by 4 users

Issue metadata

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



Sign in to add a comment

WebGL conformance/canvas/canvas-test.html fails on Linux AMD

Project Member Reported by geoffl...@chromium.org, Apr 10 2017

Issue description

The WebGL conformance test conformance/canvas/canvas-test.html has is failing on the Linux AMD R7 240 bot (https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20%28AMD%20R7%20240%29) starting with build 1922 and again in 1926.

Suspecting https://codereview.chromium.org/2799033002
 

Comment 1 by fs...@chromium.org, Apr 10 2017

Cc: fs...@chromium.org junov@chromium.org
Components: Internals>GPU>Canvas2D
Owner: zmo@chromium.org
Status: Assigned (was: Available)
The broken test has a function to read pixels that does something like:


var c = document.createElement('canvas');
c.width = c.height = 40;
var ctx = c.getContext('2d');  // software

ctx.drawImage(webGLCanvas, 0, ); // since webGL is accelerated, the offending CL converts "c" into an accelerated canvas.

var data = ctx.getImageData(0, 0, 40, 40); // a few weeks ago, this would convert back to software, but it doesn't anymore.


somehow this is breaking badly on Linux AMD R7 240 Bot and only there.

It could be that getImageData is completely broken on accelerated canvas, and we are just noticing this now.
It could be because we are doing getImageData on a newly-converted accelerated canvas. 
It could be that the code that upgrades the canvas from software to accelerated is broken and leaves the canvas in a weird state.

I'm friendly assigning this to zmo@, because I have no idea how to move forward with this, since it's very specific to a machine (or a driver?).
The usual course of action would be to disable this optimization (sw -> accel on drawImage) on that architecture. But I'd rather not do that, unless we have at least tried to bubble this up.

zmo@, could you take a look at this? Do you know anyone who could?

Comment 2 by zmo@chromium.org, Apr 10 2017

Cc: kbr@chromium.org kainino@chromium.org
Components: Internals>GPU>VendorSpecific
Owner: ----
Status: Available (was: Assigned)
I won't be able to look into this in the near future

Comment 3 by kbr@chromium.org, Apr 10 2017

fserb@: sorry, but Mo is working on another task right now.

Do you have any Linux machines in your office into which you could install an AMD GPU and test 2D canvas? We actually don't here - but you could also remotely log on to this particular bot and look at how the test is failing.

We should look into this. Otherwise there's a risk that we'll break accelerated 2D canvas on Linux machines with AMD GPUs.

Comment 4 by fs...@chromium.org, Apr 10 2017

kbr@, I have a bunch of linux machines, but no AMD GPU, afaik.

Given that this is only triggered by the new optimization (transforming software canvases into accelerated ones), we could disable only this optimization (on AMD Linux). Maybe do this and leave this bug open until someone has the cycles to check what's going on?

Comment 5 by kbr@chromium.org, Apr 10 2017

Owner: fs...@chromium.org
Status: Assigned (was: Available)
That would be a good idea. Could you add a GPU blacklist entry for this and refer to this bug ID?

The place to do this is src/gpu/config/software_rendering_list.json and then run gpu/config/process_json.py.

Comment 6 by zmo@chromium.org, Apr 11 2017

Cc: qiankun....@intel.com
Is crbug.com/710392 the same issue as this one?
It's not the same as bug 710392. This bug started from build 1922, while bug 710392 started from build 1940.
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 13 2017

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

commit fd8adbccb52a0baed704df75289567067745ec59
Author: fserb <fserb@chromium.org>
Date: Thu Apr 13 21:53:41 2017

Disables software to accelerated canvas update on Linux AMD GPUs

BUG= 710029 
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/2815103003
Cr-Commit-Position: refs/heads/master@{#464560}

[modify] https://crrev.com/fd8adbccb52a0baed704df75289567067745ec59/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/fd8adbccb52a0baed704df75289567067745ec59/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/fd8adbccb52a0baed704df75289567067745ec59/gpu/config/gpu_driver_bug_list.json
[modify] https://crrev.com/fd8adbccb52a0baed704df75289567067745ec59/gpu/config/gpu_driver_bug_workaround_type.h
[modify] https://crrev.com/fd8adbccb52a0baed704df75289567067745ec59/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/fd8adbccb52a0baed704df75289567067745ec59/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp
[modify] https://crrev.com/fd8adbccb52a0baed704df75289567067745ec59/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.cpp
[modify] https://crrev.com/fd8adbccb52a0baed704df75289567067745ec59/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h

Comment 9 by fs...@chromium.org, May 8 2017

Status: Fixed (was: Assigned)

Comment 10 by m...@protonmail.ch, Oct 15 2017

Shouldn't you target, you know, a specific driver (of the three AMD has on linux), rather than brutally all device IDs?

Sign in to add a comment