The test abs_vec3_vert_xvary.test.html fails due to the reference vertex shader being miscompiled. The test can be reproduced by visiting this page with Firefox (preferably Nightly). https://www.khronos.org/registry/webgl/conformance-suites/1.0.2/conformance/ogles/GL/abs/abs_001_to_006.html The test passes on Chromium, but the vertex shader submitted is the same, checked with apitrace. It's unclear what is causing the behavior difference. The error happens between the SSA and final NIR stages. Note that ssa_16 is dropped and never used, leading to the blue channel never having the absolute value applied: https://pastebin.mozilla.org/8859127 Trivial modifications to the shader make it compile correctly. For example, replacing if((c[2] < 0.0)) c[2] *= -1.0; with float x = c.b; if (x < 0.0) x *= -1.0; c.b = x; This is one of a series of similar failures on the Khronos test. The entire test can be accessed here: https://www.khronos.org/registry/webgl/conformance-suites/1.0.2/webgl-conformance-tests.html
Created attachment 121637 [details] NIR before and after out-of-SSA Please attach files in bugzilla and never link to a pastebin, as pastebins come and go and files expire.
Gut feeling is that this is actually a bug in lower_vev_to_movs not out_of_ssa. I'll look into it.
Turns out it's a use-after-free in lower_vec_to_movs. I've got a patch that I'll be sending out as soon as Jenkins gives me the green light.
I pushed the fix with a review from Matt.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.