Bug 201784

Summary: Layout Test webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html is failing since ANGLE roll
Product: WebKit Reporter: Russell Epstein <repstein>
Component: Tools / TestsAssignee: Dean Jackson <dino>
Status: RESOLVED FIXED    
Severity: Normal CC: dino, graouts, kbr, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch graouts: review+

Russell Epstein
Reported 2019-09-13 17:07:22 PDT
The following layout test is failing on iOS: webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html Probable cause: Test started failing with r249823 From James Darpinian in associated bug 201156: "Looks like the shaders-with-invariance.html test is broken. It was updated upstream. WebKit's copy of the WebGL conformance tests should be updated." Flakiness Dashboard: https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=webgl%2F2.0.0%2Fconformance%2Fglsl%2Fmisc%2Fshaders-with-invariance.html
Attachments
Patch (4.35 KB, patch)
2019-10-08 17:48 PDT, Dean Jackson
no flags
Patch (5.95 KB, patch)
2019-10-09 09:51 PDT, Dean Jackson
graouts: review+
Radar WebKit Bug Importer
Comment 1 2019-09-13 17:08:23 PDT
Russell Epstein
Comment 2 2019-09-13 17:13:10 PDT
Marked test as failing in r249860.
Dean Jackson
Comment 3 2019-10-08 14:46:27 PDT
It was the ANGLE update in r249823 that caused this. The actual change in ANGLE is: https://chromium.googlesource.com/angle/angle/+/b7418a177f70ab736c5d4b1c3b42f9d387244718 although that seems to be an attempt to fix the same failure in Chrome. Note that our version of this test is out of date. I'm looking through https://bugs.chromium.org/p/chromium/issues/detail?id=980675 to see how Chrome addressed this.
Dean Jackson
Comment 4 2019-10-08 15:46:33 PDT
The difference is in the translated fragment shader source. Before: invariant varying mediump vec4 webgl_a78e73e400000001; void main(){ (gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0)); (gl_FragColor = webgl_a78e73e400000001); } After: varying mediump vec4 webgl_a78e73e400000001; void main(){ (gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0)); (gl_FragColor = webgl_a78e73e400000001); } However, my reading of the GLSL specifications says this is ok. "Only variables output from a shader can be candidates for invariance. This includes user-defined output variables and the built-in output variables. As only outputs can be declared as invariant, an output from one shader stage will still match an input of a subsequent stage without the input being declared as invariant."
Dean Jackson
Comment 5 2019-10-08 17:40:00 PDT
False alarm. I was looking at the wrong file :(
Dean Jackson
Comment 6 2019-10-08 17:48:00 PDT
Kenneth Russell
Comment 7 2019-10-08 18:30:46 PDT
Ah, relieved to know that the test was out of date and that there wasn't a bug in the version of ANGLE that WebKit rolled forward!
Dean Jackson
Comment 8 2019-10-09 09:51:39 PDT
Dean Jackson
Comment 9 2019-10-09 10:32:19 PDT
Note You need to log in before you can comment on or make changes to this bug.