New issue
Advanced search Search tips

Issue 784817 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , Mac
Pri: 3
Type: Bug

Blocked on:
issue 786717



Sign in to add a comment

Certain types of loops in WebGL shaders cause GLSL compiler crashes on Adreno

Reported by oetu...@nvidia.com, Nov 14 2017

Issue description

Chrome Version: (copy from chrome://version)
OS: (e.g. Win7, OSX 10.9.5, etc...)

What steps will reproduce the problem?
(1) Enable ANGLE patch https://chromium-review.googlesource.com/c/angle/angle/+/707195 that uses for loops to initialize variables. Run WebGL conformance on Android on Qualcomm Adreno 418 GPU.

What is the expected result?
WebGL conformance passes

What happens instead?
WebGL conformance test gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_deqp_data_gles2_shaders_functions fails.

The failure could still be isolated better to a specific kind of a shader - the problem likely exists in some form without the ANGLE patch as well.
 
Status: Assigned (was: Untriaged)
Setting to assigned since this has an owner.

I can take it if you want to reassign, Olli.
Project Member

Comment 2 by bugdroid1@chromium.org, Nov 18 2017

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

commit f9d1bf632952f7c909121b63b3b61183de7a8d53
Author: Kenneth Russell <kbr@chromium.org>
Date: Sat Nov 18 02:00:55 2017

Roll WebGL 12192b9..e4919fa

https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/12192b9..e4919fa

BUG= 775202 ,  778770 , 784817

TEST=bots

TBR=zmo@chromium.org, kainino@chromium.org

NOTRY=true

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

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
Change-Id: I296437377a0d5084f2ede5f50d6b6519436bc62f
Reviewed-on: https://chromium-review.googlesource.com/773625
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517678}
[modify] https://crrev.com/f9d1bf632952f7c909121b63b3b61183de7a8d53/DEPS
[modify] https://crrev.com/f9d1bf632952f7c909121b63b3b61183de7a8d53/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/f9d1bf632952f7c909121b63b3b61183de7a8d53/content/test/gpu/gpu_tests/webgl_conformance_revision.txt

Comment 3 by kbr@chromium.org, Nov 21 2017

The reduced conformance test glsl/bugs/init-array-with-loop.html fails on NVIDIA's macOS driver, too, per  Issue 786717 :

https://ci.chromium.org/buildbot/chromium.gpu.fyi/Mac%20Retina%20Release%20%28NVIDIA%29/6169

https://chromium-swarm.appspot.com/task?id=39e6113fa275c510&refresh=10&show_raw=1

[59/136] gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_conformance_glsl_bugs_init_array_with_loop failed unexpectedly 3.6268s:
  
  Traceback (most recent call last):
    _RunGpuTest at content/test/gpu/gpu_tests/gpu_integration_test.py:132
      self.RunActualGpuTest(url, *args)
    RunActualGpuTest at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:203
      getattr(self, test_name)(test_path, *args[1:])
    _RunConformanceTest at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:217
      self._CheckTestCompletion()
    _CheckTestCompletion at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:213
      self.fail(self._WebGLTestMessages(self.tab))
    fail at /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py:412
      raise self.failureException(msg)
  AssertionError: should be green
  at (0, 0) expected: 0,255,0,255 was 255,0,0,255
  FAIL should be green
  at (0, 0) expected: 0,255,0,255 was 255,0,0,255

Updating the suppression.

Comment 4 by kbr@chromium.org, Nov 21 2017

Labels: GPU-NVidia OS-Mac

Comment 5 by kbr@chromium.org, Nov 21 2017

Blockedon: 786717
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 21 2017

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

commit 3b7911b65b0d70164ed9b88ec22a9a455fa649b7
Author: Kenneth Russell <kbr@chromium.org>
Date: Tue Nov 21 20:04:16 2017

Add workaround for reallocating depth-stencil renderbuffers.

When needed, during reallocation of a depth-stencil renderbuffer,
create a new object and point all existing framebuffer objects to it.
Apply this workaround on NVIDIA GPUs on macOS 10.13 and later. This
works around an apparent bug in the graphics driver introduced in this
release.

This is a slight expansion of the earlier
multisample_renderbuffer_resize_emulation workaround.

Remove associated failure expectations. Also update the bug ID in the
conformance expectations for a workaround applying to the same
platform.

BUG= 775202 ,  786717 , 784817

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
Change-Id: I051009b17df1cb5dabe1b00fbdcc35008042eee9
Reviewed-on: https://chromium-review.googlesource.com/780211
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518348}
[modify] https://crrev.com/3b7911b65b0d70164ed9b88ec22a9a455fa649b7/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/3b7911b65b0d70164ed9b88ec22a9a455fa649b7/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/3b7911b65b0d70164ed9b88ec22a9a455fa649b7/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/3b7911b65b0d70164ed9b88ec22a9a455fa649b7/gpu/command_buffer/service/renderbuffer_manager.cc
[modify] https://crrev.com/3b7911b65b0d70164ed9b88ec22a9a455fa649b7/gpu/command_buffer/service/renderbuffer_manager.h
[modify] https://crrev.com/3b7911b65b0d70164ed9b88ec22a9a455fa649b7/gpu/config/gpu_driver_bug_list.json
[modify] https://crrev.com/3b7911b65b0d70164ed9b88ec22a9a455fa649b7/gpu/config/gpu_driver_bug_workaround_type.h

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 28 2017

Labels: merge-merged-3239
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/23a5326c8ae2d90654faeda8cbd7225b08ed3412

commit 23a5326c8ae2d90654faeda8cbd7225b08ed3412
Author: Kenneth Russell <kbr@chromium.org>
Date: Tue Nov 28 19:03:46 2017

Add workaround for reallocating depth-stencil renderbuffers.

When needed, during reallocation of a depth-stencil renderbuffer,
create a new object and point all existing framebuffer objects to it.
Apply this workaround on NVIDIA GPUs on macOS 10.13 and later. This
works around an apparent bug in the graphics driver introduced in this
release.

This is a slight expansion of the earlier
multisample_renderbuffer_resize_emulation workaround.

Remove associated failure expectations. Also update the bug ID in the
conformance expectations for a workaround applying to the same
platform.

BUG= 775202 ,  786717 , 784817
TBR=kbr@chromium.org

(cherry picked from commit 3b7911b65b0d70164ed9b88ec22a9a455fa649b7)

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
Change-Id: I051009b17df1cb5dabe1b00fbdcc35008042eee9
Reviewed-on: https://chromium-review.googlesource.com/780211
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#518348}
Reviewed-on: https://chromium-review.googlesource.com/794024
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/branch-heads/3239@{#584}
Cr-Branched-From: adb61db19020ed8ecee5e91b1a0ea4c924ae2988-refs/heads/master@{#508578}
[modify] https://crrev.com/23a5326c8ae2d90654faeda8cbd7225b08ed3412/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/23a5326c8ae2d90654faeda8cbd7225b08ed3412/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/23a5326c8ae2d90654faeda8cbd7225b08ed3412/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/23a5326c8ae2d90654faeda8cbd7225b08ed3412/gpu/command_buffer/service/renderbuffer_manager.cc
[modify] https://crrev.com/23a5326c8ae2d90654faeda8cbd7225b08ed3412/gpu/command_buffer/service/renderbuffer_manager.h
[modify] https://crrev.com/23a5326c8ae2d90654faeda8cbd7225b08ed3412/gpu/config/gpu_driver_bug_list.json
[modify] https://crrev.com/23a5326c8ae2d90654faeda8cbd7225b08ed3412/gpu/config/gpu_driver_bug_workaround_type.h

Owner: ----
Status: Available (was: Assigned)
Not going to be working on this anymore.


Sign in to add a comment