Compilation fails of shader with overloaded method taking differently named structs that have identical members |
||||
Issue descriptionChrome 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.
,
Jun 16 2017
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.
,
Jun 29 2017
Just to acknowledge that I did see this and will take a look at it in the future.
,
Jul 3 2017
WebGL test: https://github.com/KhronosGroup/WebGL/pull/2443 ANGLE fix: https://chromium-review.googlesource.com/c/558929/
,
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
,
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
,
Jul 7 2017
New test is ready to be enabled during the next ANGLE roll.
,
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
,
Jul 10 2017
,
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
,
Jul 10 2017
Thanks Olli for fixing this!
,
Jul 10 2017
Yes, big thanks Olli. |
||||
►
Sign in to add a comment |
||||
Comment 1 by weiliangc@chromium.org
, Jun 16 2017Components: Internals>GPU>WebGL