WebGL conformance/canvas/canvas-test.html fails on Linux AMD |
||||
Issue descriptionThe 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
,
Apr 10 2017
I won't be able to look into this in the near future
,
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.
,
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?
,
Apr 10 2017
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.
,
Apr 11 2017
,
Apr 12 2017
It's not the same as bug 710392. This bug started from build 1922, while bug 710392 started from build 1940.
,
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
,
May 8 2017
,
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 |
||||
Comment 1 by fs...@chromium.org
, Apr 10 2017Components: 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?