Mesa (main): mesa: relax ES 3.1 compute shader requirements

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sun Jun 6 21:34:15 UTC 2021


Module: Mesa
Branch: main
Commit: 584799d6a3c2595aa8191d0fcd7b57bc545c7011
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=584799d6a3c2595aa8191d0fcd7b57bc545c7011

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sat May  1 17:49:57 2021 -0400

mesa: relax ES 3.1 compute shader requirements

The desktop extensions require more than what's needed for ES 3.1.
Reduce this to allow implementations to expose ES 3.1 without supporting
desktop functionality.

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Eric Anholt <eric at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569>

---

 src/mesa/main/version.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index 4822cb9b772..3b37b135184 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -541,7 +541,10 @@ compute_version_es2(const struct gl_extensions *extensions,
                          extensions->OES_depth_texture_cube_map &&
                          extensions->EXT_texture_type_2_10_10_10_REV);
    const bool es31_compute_shader =
-      consts->MaxComputeWorkGroupInvocations >= 128;
+      consts->MaxComputeWorkGroupInvocations >= 128 &&
+      consts->Program[MESA_SHADER_COMPUTE].MaxShaderStorageBlocks &&
+      consts->Program[MESA_SHADER_COMPUTE].MaxAtomicBuffers &&
+      consts->Program[MESA_SHADER_COMPUTE].MaxImageUniforms;
    const bool ver_3_1 = (ver_3_0 &&
                          consts->MaxVertexAttribStride >= 2048 &&
                          extensions->ARB_arrays_of_arrays &&
@@ -549,10 +552,6 @@ compute_version_es2(const struct gl_extensions *extensions,
                          extensions->ARB_draw_indirect &&
                          extensions->ARB_explicit_uniform_location &&
                          extensions->ARB_framebuffer_no_attachments &&
-                         extensions->ARB_shader_atomic_counters &&
-                         extensions->ARB_shader_image_load_store &&
-                         extensions->ARB_shader_image_size &&
-                         extensions->ARB_shader_storage_buffer_object &&
                          extensions->ARB_shading_language_packing &&
                          extensions->ARB_stencil_texturing &&
                          extensions->ARB_texture_multisample &&
@@ -560,6 +559,14 @@ compute_version_es2(const struct gl_extensions *extensions,
                          extensions->MESA_shader_integer_functions &&
                          extensions->EXT_shader_integer_mix);
    const bool ver_3_2 = (ver_3_1 &&
+                         /* ES 3.2 requires that images/buffers be accessible
+                          * from fragment shaders as well
+                          */
+                         extensions->ARB_shader_atomic_counters &&
+                         extensions->ARB_shader_image_load_store &&
+                         extensions->ARB_shader_image_size &&
+                         extensions->ARB_shader_storage_buffer_object &&
+
                          extensions->EXT_draw_buffers2 &&
                          extensions->KHR_blend_equation_advanced &&
                          extensions->KHR_robustness &&



More information about the mesa-commit mailing list