From 388f9ccd979c447036e3693ff07361103940bb2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Pi=C3=B1eiro?= Date: Mon, 1 Sep 2025 01:36:04 +0200 Subject: [PATCH] docs: GL_ARB_compute_shader is not a ES extension Without this commit, GL_ARB_compute_shader appears as both an OpenGL and an OpenGL ES extension. But this is not an OpenGL ES extension. One of the main differences is that the minimum value for WORK_GROUP_INVOCATIONS on GL_ARB_compute_shader is 1024, while the minimum value required for the OpenGL ES 3.1 spec is 128. So for example, both v3d and panfrost doesn't expose ARB_compute_shader, while it supports compute shader on OpenGL 3.1, so the docs are wrong. I guess that the reason of re-using ARB_compute_shader is because there isn't an OES compute shader extension. There was an EXT extension though, so this is similar to geometry shader, where there you had ARB_geometry_shader4, but it was superseded by OpenGL 3.2. This commit follows geometry shader approach, and just adds a "Compute shader" feature on OpenGL ES 3.1 Reviewed-by: Juan A. Suarez Reviewed-by: Erik Faye-Lund Part-of: --- docs/features.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index 4a7deb83ece..cf27517dc8d 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -171,7 +171,7 @@ GL 4.3, GLSL 4.30 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30) GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30) GL_ARB_clear_buffer_object DONE (all drivers) - GL_ARB_compute_shader DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+) + GL_ARB_compute_shader DONE (freedreno/a5xx+, softpipe, crocus/gen7+) GL_ARB_copy_image DONE (freedreno/a6xx, nv50, softpipe, v3d, panfrost, crocus) GL_KHR_debug DONE (all drivers) GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL) @@ -244,7 +244,6 @@ These are the extensions cherry-picked to make GLES 3.1 GLES3.1, GLSL ES 3.1 -- all DONE: freedreno/a5xx+, nvc0, r600, radeonsi, virgl, v3d, softpipe, llvmpipe, zink, panfrost, d3d12, iris, crocus/gen7.5+, asahi GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30) - GL_ARB_compute_shader DONE (freedreno/a5xx+, crocus/gen7+) GL_ARB_draw_indirect DONE (freedreno, crocus/gen7+) GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL) GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, crocus/gen7+, etnaviv) @@ -264,10 +263,11 @@ GLES3.1, GLSL ES 3.1 -- all DONE: freedreno/a5xx+, nvc0, r600, radeonsi, virgl, GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) Additional functionality not covered above: + Compute shader DONE (crocus/gen7+, v3d) glMemoryBarrierByRegion DONE glGetTexLevelParameter[fi]v - needs updates DONE glGetBooleani_v - restrict to GLES enums - gl_HelperInvocation support DONE (r600, panfrost, crocus) + gl_HelperInvocation support DONE (r600, crocus) GLES3.2, GLSL ES 3.2 -- all DONE: freedreno/a6xx, radeonsi, virgl, llvmpipe, zink, iris, crocus/gen7.5+, asahi