Open Bug 1526498 (webgl1-es3) Opened 6 years ago Updated 8 months ago

ANGLE can't translate ESSL1 exts to ESSL3

Categories

(Core :: Graphics: CanvasWebGL, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: jgilbert, Unassigned)

References

Details

(Whiteboard: gfx-noted)

This means that even though the functionality of, say, EXT_frag_depth is core in ES3, we can't implement EXT_frag_depth in WebGL1 on an ES3 context.

Alias: webgl1-es3
See Also: → 1491221
Summary: ANGLE can't translate ESSL1+exts to ESSL3 → ANGLE can't translate ESSL1 exts to ESSL3
Severity: normal → S3

I get the following output when opening https://registry.khronos.org/webgl/sdk/tests/conformance/extensions/ext-shader-texture-lod.html?webglVersion=1&quiet=0 on Mozilla Firefox 137.0 on Linux chernabog 6.14.2-401.asahi.fc42.aarch64+16k #1 SMP PREEMPT_DYNAMIC Wed Apr 16 12:06:15 UTC 2025 aarch64 GNU/Linux:

This test verifies the functionality of the EXT_shader_texture_lod extension, if it is available.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

TEST COMPLETE: 13 PASS, 0 FAIL

PASS WebGL context exists

Testing various shader compiles with extension disabled
PASS GL_EXT_shader_texture_lod not defined in shaders when extension disabled
PASS Shader built-ins disallowed without #extension pragma
PASS Shader built-ins failed to compile when extension disabled
PASS No EXT_shader_texture_lod support -- this is legal
PASS EXT_shader_texture_lod not listed as supported and getExtension failed -- this is legal

Testing new context to catch cache errors
PASS WebGL context exists

Testing various shader compiles with extension disabled
PASS GL_EXT_shader_texture_lod not defined in shaders when extension disabled
PASS Shader built-ins disallowed without #extension pragma
PASS Shader built-ins failed to compile when extension disabled
PASS No EXT_shader_texture_lod support -- this is legal
PASS EXT_shader_texture_lod not listed as supported and getExtension failed -- this is legal

PASS successfullyParsed is true

TEST COMPLETE

as well as the following lines in my syslog:

Apr 22 16:18:15 chernabog firefox.desktop[2183]: GetShaderInfoLog() ->
Apr 22 16:18:15 chernabog firefox.desktop[2183]: 0:2(12): error: extension `GL_EXT_shader_texture_lod' unsupported in fragment shader
Apr 22 16:18:15 chernabog firefox.desktop[2183]: GetShaderSource() ->
Apr 22 16:18:15 chernabog firefox.desktop[2183]: #extension GL_EXT_shader_texture_lod: require
Apr 22 16:18:15 chernabog firefox.desktop[2183]: void main() {}
Apr 22 16:18:15 chernabog firefox.desktop[2183]: GetShaderInfoLog() ->
Apr 22 16:18:15 chernabog firefox.desktop[2183]: 0:2(12): error: extension `GL_EXT_shader_texture_lod' unsupported in fragment shader
Apr 22 16:18:15 chernabog firefox.desktop[2183]: GetShaderSource() ->
Apr 22 16:18:15 chernabog firefox.desktop[2183]: #extension GL_EXT_shader_texture_lod: require
Apr 22 16:18:15 chernabog firefox.desktop[2183]: void main() {}

I asked Alyssa Rosenzweig, the GPU Asahi driver wizard, and they said:

no mesa drivers implement that EXT
and it's an ancient gles2 ext and been replaced by core gles3 functionality with slightly different syntax
the bug here being, Firefox's job is to translate the WebGL EXT of the same name to the core gles3 functionality instead of relying on the gles2 ext

You need to log in before you can comment on or make changes to this bug.