Remove disable_chromium_framebuffer_multisample/disable_depth_texture on newer Qualcomm |
||||||||||||||||||
Issue description
disable_chromium_framebuffer_multisample: This old workaround is probably causing crashes in the WebGL 2 conformance suite.
These tests are likely victims:
conformance2/extensions/ext-color-buffer-float.html
deqp/functional/gles3/fboinvalidate/{whole,sub}.html
conformance2/rendering/blitframebuffer-filter-outofbounds.html
We should see what happens on a new device (Pixel) without this workaround in place.
zmo, assigning this to you. Let me know if there is anything I can help with.
,
Feb 23 2017
,
Feb 23 2017
,
Feb 24 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5fa975c1785e2a47c96471691447846d1be8b51d commit 5fa975c1785e2a47c96471691447846d1be8b51d Author: kainino <kainino@chromium.org> Date: Fri Feb 24 04:08:32 2017 Disable some old Qualcomm workarounds on new Android Workarounds disable_depth_texture and disable_chromium_framebuffer_multisample were added for old Qualcomm devices but work correctly on newer devices and are needed for WebGL 2. This also un-disables GL_OES_depth_texture on these platforms. Test note: The change in availability of MSAA causes the tests to access a different (currently non-existent) set of reference images on Qualcomm bots (_msaa.png to _non_msaa.png). This CL effectively creates a new configuration - which is why the tests do not need revisions incremented. BUG= 682075 , 682753 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/2707623002 Cr-Commit-Position: refs/heads/master@{#452748} [modify] https://crrev.com/5fa975c1785e2a47c96471691447846d1be8b51d/content/test/gpu/gpu_tests/pixel_expectations.py [modify] https://crrev.com/5fa975c1785e2a47c96471691447846d1be8b51d/gpu/config/gpu_driver_bug_list_json.cc [modify] https://crrev.com/5fa975c1785e2a47c96471691447846d1be8b51d/gpu/config/software_rendering_list_json.cc
,
Feb 25 2017
FYI, https://codereview.chromium.org/2707623002 breaks WebGL rendering on some three.js examples. I verified after bisecting since we noticed it today. For instance https://threejs.org/examples/webgl_lines_sphere.html only renders in the lower left corner. Some are fine though, such as: https://threejs.org/examples/webgl_lines_cubes.html Other examples seem to vary on if they work or not. This also breaks WebVR samples pages at https://webvr.info/samples/03-vr-presentation.html Let me know if you want a new bug for this. I added it here because comment #1 refers to trying it out to see what happens. :)
,
Feb 25 2017
Forgot to mention that we only checked this on Pixel and Pixel XL. We haven't checked on older devices.
,
Feb 25 2017
Thanks for the report! I'll try to repro and may revert.
,
Feb 25 2017
Kai and I have investigated this failure and found that something appears wrong with the explicit framebuffer resolve code path in WebGL's DrawingBuffer.cpp on Qualcomm GPUs. When the EXT_multisampled_render_to_texture extension is disabled (it is being re-enabled in Issue 696059 ), DrawingBuffer uses multisampled renderbuffers and an explicit BlitFramebuffer call to implement its antialiasing. Something's broken in this code path on Qualcomm GPUs. The associated WebGL 2.0 conformance tests don't seem to be broken, so it's possible that there's a bug in how Chrome resolves its multisampled back buffer, or a bug in the driver that's being triggered only by Three.js's shaders or API calls. The same bug doesn't happen on an NVIDIA SHIELD tablet, which uses the explicit resolve path (it doesn't support EXT_multisampled_render_to_texture). As it happens, this bug will be hidden again by https://crrev.com/5dcf3589e69f5511ded5a0180da2ddb00db23234 , but we need to get to the bottom of it. Kai will file a follow-on bug to this one with one of the broken Three.js examples attached (in case threejs.org changes) and explanation of how to trigger it (disabling the EXT_multisampled_render_to_texture extension on Qualcomm). It'll take some time to reduce the test case and produce a WebGL conformance test for it.
,
Feb 25 2017
Also: it's reproducible on both a Pixel (Adreno 500 series) and Nexus 6P (Adreno 400 series), both running Android 7.1.1, so whatever the bug is, it affects multiple chipsets.
,
Feb 25 2017
,
Feb 25 2017
,
Feb 27 2017
,
Mar 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4ea0b4441fd5f3a083fe3d93716721e80603356e commit 4ea0b4441fd5f3a083fe3d93716721e80603356e Author: kainino <kainino@chromium.org> Date: Thu Mar 23 21:36:20 2017 Clean up pixel test failure expectations from http://crrev.com/2707623002 BUG= 682075 , 682753 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/2706243005 Cr-Commit-Position: refs/heads/master@{#459232} [modify] https://crrev.com/4ea0b4441fd5f3a083fe3d93716721e80603356e/content/test/gpu/gpu_tests/pixel_expectations.py
,
Apr 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/430d8884a1783783c709bd01e544f682f5134915 commit 430d8884a1783783c709bd01e544f682f5134915 Author: aelias <aelias@chromium.org> Date: Thu Apr 06 01:57:34 2017 Scope scissor bug/MSAA/WebGL2 disabling to Adreno series. - The scissor bug originally observed on Nexus 7 turns out to affect a swath of Adreno 3xx tablets. Expand it and the associated MSAA disabling to all Adreno 3xx (MSAA is already not trusted on 3xx anyway). - Retarget the Android < 6.0 MSAA+WebGL disabling to Adreno 4xx to clarify this entry is for is a specific remaining problem suspected to exist on certain older 4xx drivers (not very well understood/confirmed, but kainino@ requested this entry remain pending further investigation). - The depth texture blacklist is ancient enough that Adreno 4xx did not exist in those days, so target it to 2xx and 3xx series (even 3xx series may be too new for this bug to affect it, but keeping it there for safety). BUG= 707839 , 682075 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2797393002 Cr-Commit-Position: refs/heads/master@{#462321} [modify] https://crrev.com/430d8884a1783783c709bd01e544f682f5134915/gpu/config/gpu_driver_bug_list.json [modify] https://crrev.com/430d8884a1783783c709bd01e544f682f5134915/gpu/config/gpu_driver_bug_list_arrays_and_structs_autogen.h [modify] https://crrev.com/430d8884a1783783c709bd01e544f682f5134915/gpu/config/gpu_driver_bug_list_autogen.cc [modify] https://crrev.com/430d8884a1783783c709bd01e544f682f5134915/gpu/config/software_rendering_list.json [modify] https://crrev.com/430d8884a1783783c709bd01e544f682f5134915/gpu/config/software_rendering_list_arrays_and_structs_autogen.h [modify] https://crrev.com/430d8884a1783783c709bd01e544f682f5134915/gpu/config/software_rendering_list_autogen.cc
,
Apr 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a80032606fb22ed36a6bd599d98bd0c13323cdd9 commit a80032606fb22ed36a6bd599d98bd0c13323cdd9 Author: Alexandre Elias <aelias@chromium.org> Date: Thu Apr 06 19:11:55 2017 Scope scissor bug/MSAA/WebGL2 disabling to Adreno series. [Unclean merge due to http://crrev.com/2756793003] - The scissor bug originally observed on Nexus 7 turns out to affect a swath of Adreno 3xx tablets. Expand it and the associated MSAA disabling to all Adreno 3xx (MSAA is already not trusted on 3xx anyway). - Retarget the Android < 6.0 MSAA+WebGL disabling to Adreno 4xx to clarify this entry is for is a specific remaining problem suspected to exist on certain older 4xx drivers (not very well understood/confirmed, but kainino@ requested this entry remain pending further investigation). - The depth texture blacklist is ancient enough that Adreno 4xx did not exist in those days, so target it to 2xx and 3xx series (even 3xx series may be too new for this bug to affect it, but keeping it there for safety). BUG= 707839 , 682075 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/2797393002 Cr-Commit-Position: refs/heads/master@{#462321} (cherry picked from commit 430d8884a1783783c709bd01e544f682f5134915) Review-Url: https://codereview.chromium.org/2801043004 . Cr-Commit-Position: refs/branch-heads/3029@{#610} Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471} [modify] https://crrev.com/a80032606fb22ed36a6bd599d98bd0c13323cdd9/gpu/config/gpu_driver_bug_list_json.cc [modify] https://crrev.com/a80032606fb22ed36a6bd599d98bd0c13323cdd9/gpu/config/software_rendering_list_json.cc
,
Apr 6 2017
,
Apr 6 2017
After looking at http://crbug.com/471200#c9 and some statistics, we decided that disable_chromium_framebuffer_multisample shouldn't be needed except on Adreno 3xx. Via http://opengles.gpuinfo.org/ , it doesn't seem that there were very many phones with Adreno 4xx on Android <6.0 (although the Nexus 6 shipped with 5.0 but isn't represented there). AFAICT, the original driver bug workaround predates Adreno 4xx [1], so it seems very unlikely that this was a driver fix circa 6.0 [2]; rather, probably only 3xx was broken. [1] When the workaround was added, it had no cr_bugs, but it's id #52. Workaround #54 seems to have been added in 2012, so #52 should be older than that. Adreno 400 series was announced in 2014. [2] Originally I had picked "android<6.0" as a target simply because we had no idea what the original workaround was intended for, and there was no documentation surrounding it, and we needed to ship WebGL 2.0 for M58 very quickly. Now that we've dug through the history a bit more (big thanks to aelias@), it's great to be able to expand the WebGL 2.0 support (hopefully in M59).
,
Apr 6 2017
Reopening while I narrow the workarounds.
,
Apr 6 2017
,
Apr 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f53c772224985607c8398d5b751eda4b9bccec82 commit f53c772224985607c8398d5b751eda4b9bccec82 Author: kainino <kainino@chromium.org> Date: Fri Apr 07 05:04:59 2017 Enable WebGL 2.0 + ES3 MSAA unconditionally on Adreno 4xx https://crbug.com/682075#c17 for details. BUG= 682075 , 707839 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/2806623002 Cr-Commit-Position: refs/heads/master@{#462758} [modify] https://crrev.com/f53c772224985607c8398d5b751eda4b9bccec82/gpu/config/gpu_driver_bug_list.json [modify] https://crrev.com/f53c772224985607c8398d5b751eda4b9bccec82/gpu/config/gpu_driver_bug_list_arrays_and_structs_autogen.h [modify] https://crrev.com/f53c772224985607c8398d5b751eda4b9bccec82/gpu/config/gpu_driver_bug_list_autogen.cc [modify] https://crrev.com/f53c772224985607c8398d5b751eda4b9bccec82/gpu/config/software_rendering_list.json [modify] https://crrev.com/f53c772224985607c8398d5b751eda4b9bccec82/gpu/config/software_rendering_list_arrays_and_structs_autogen.h [modify] https://crrev.com/f53c772224985607c8398d5b751eda4b9bccec82/gpu/config/software_rendering_list_autogen.cc
,
Apr 7 2017
,
May 3 2017
,
Jun 20 2017
,
Aug 16 2017
,
Nov 28
|
||||||||||||||||||
►
Sign in to add a comment |
||||||||||||||||||
Comment 1 by kainino@chromium.org
, Feb 23 2017Owner: kainino@chromium.org