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

Issue 731324 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Compilation fails of shader with overloaded method taking differently named structs that have identical members

Project Member Reported by hubbe@chromium.org, Jun 8 2017

Issue description

Chrome Version: 61.0.3122.0 and 59.0.3071.86
OS: Windows 10

What steps will reproduce the problem?
(1) go to http://www.shadertoy.com/view/MdfBR2

What is the expected result?

GLSL code should compile and render.
And if there *is* something wrong with the code, the error messages should specify *where* the problem is!!!

What happens instead?

I get GLSL errors like:
Unknown Error: C:\fakepath(431,51-275) error X3067: '_webgl_514efc373d87407': ambiguous function

As far as I can tell, it seems like the compiler cannot tell the difference between Trace(Ray r, Cylinder o) and Trace(Ray r, CappedCylinder o) for some reason.

This is on a Windows 10 machine, running windows build 15063 with a Nvidia 1050 card using driver version 382.33.
 
Cc: kbr@chromium.org kainino@chromium.org
Components: Internals>GPU>WebGL

Comment 2 by kbr@chromium.org, Jun 16 2017

Cc: oetu...@nvidia.com jmad...@chromium.org
Components: -Internals>GPU>WebGL Blink>WebGL
Labels: -Pri-3 Pri-2
Status: Available (was: Untriaged)
Summary: Compilation fails of shader with overloaded method taking differently named structs that have identical members (was: webgl compilation fails and produces bad error messages)
This is a problem in the HLSL translation of WebGL shaders. It's unfortunate that the error messages are poor but we probably don't get a valid name-to-hashed-name map since the compilation fails. It's expected to be rare that the shader translator generates invalid HLSL for valid GLSL.

Could one of the HLSL experts take a look? A new WebGL conformance test is definitely needed for this.

Thanks.

Just to acknowledge that I did see this and will take a look at it in the future.

Comment 4 by oetu...@nvidia.com, Jul 3 2017

Owner: oetu...@nvidia.com
Status: Started (was: Available)
WebGL test: https://github.com/KhronosGroup/WebGL/pull/2443
ANGLE fix: https://chromium-review.googlesource.com/c/558929/
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/088031e68069e00464b2b9ee2a5ab5152f86fa9e

commit 088031e68069e00464b2b9ee2a5ab5152f86fa9e
Author: Olli Etuaho <oetuaho@nvidia.com>
Date: Wed Jul 05 16:18:58 2017

HLSL: Disambiguate between struct function parameters

Structs with different names but identical members are treated as
ambiguous by the native HLSL compiler when looking up user-defined
functions. Add the struct name to the function name to work around
this limitation.

BUG= chromium:731324 
TEST=angle_end2end_tests

Change-Id: Ie80ac0f1374bc5ac05dfebef3f94e2da7cdfc581
Reviewed-on: https://chromium-review.googlesource.com/558929
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/088031e68069e00464b2b9ee2a5ab5152f86fa9e/src/compiler/translator/UtilsHLSL.cpp
[modify] https://crrev.com/088031e68069e00464b2b9ee2a5ab5152f86fa9e/src/tests/gl_tests/GLSLTest.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 7 2017

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

commit a58703a885159856b5bce37a4c7798a7c481ae39
Author: Kenneth Russell <kbr@chromium.org>
Date: Fri Jul 07 04:31:43 2017

Roll WebGL 9ffa3b5..5e57726

https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/9ffa3b5..5e57726

BUG= 731324 ,  735784 ,  736499 ,  739604 ,  angleproject:2095 
TBR=kainino@chromium.org
TEST=bots

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

Change-Id: Ie2ef09eaf2087059d1c3dd190c4098993cd7ec61
Reviewed-on: https://chromium-review.googlesource.com/562857
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484832}
[modify] https://crrev.com/a58703a885159856b5bce37a4c7798a7c481ae39/DEPS
[modify] https://crrev.com/a58703a885159856b5bce37a4c7798a7c481ae39/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/a58703a885159856b5bce37a4c7798a7c481ae39/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/a58703a885159856b5bce37a4c7798a7c481ae39/content/test/gpu/gpu_tests/webgl_conformance_revision.txt

Comment 7 by kbr@chromium.org, Jul 7 2017

New test is ready to be enabled during the next ANGLE roll.

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 10 2017

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

commit b891953a093ee5ab2f78df398322e6cf59c7c2e6
Author: Geoff Lang <geofflang@chromium.org>
Date: Mon Jul 10 16:25:36 2017

Roll ANGLE 27a6063..70c95fa

https://chromium.googlesource.com/angle/angle.git/+log/27a6063..70c95fa

BUG= chromium:739448 , chromium:731324 ,:angleproject:1644,chromium:682815

TBR=jmadill@chromium.org

TEST=bots

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

Change-Id: I9ed559801bfbb7cada2fef863096047f33437703
Reviewed-on: https://chromium-review.googlesource.com/565051
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485290}
[modify] https://crrev.com/b891953a093ee5ab2f78df398322e6cf59c7c2e6/DEPS

Comment 9 by kbr@chromium.org, Jul 10 2017

Cc: geoffl...@chromium.org
 Issue 740543  has been merged into this issue.
Project Member

Comment 10 by bugdroid1@chromium.org, Jul 10 2017

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

commit 978d5086bfabba09ce475330e5364fadbf84a223
Author: Kenneth Russell <kbr@chromium.org>
Date: Mon Jul 10 20:08:59 2017

Enable ambiguous function call test.

BUG= 731324 
TBR=kainino@chromium.org

Change-Id: I396ba9077c10a55dd966f218c37b0a31c5b9e6d6
Reviewed-on: https://chromium-review.googlesource.com/565065
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485357}
[modify] https://crrev.com/978d5086bfabba09ce475330e5364fadbf84a223/content/test/gpu/gpu_tests/webgl_conformance_expectations.py

Comment 11 by kbr@chromium.org, Jul 10 2017

Status: Fixed (was: Started)
Thanks Olli for fixing this!

Yes, big thanks Olli.

Sign in to add a comment