summaryrefslogtreecommitdiff
path: root/src/mesa/main
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2021-05-01 17:49:57 -0400
committerIlia Mirkin <imirkin@alum.mit.edu>2021-06-06 15:43:02 -0400
commit584799d6a3c2595aa8191d0fcd7b57bc545c7011 (patch)
tree1c9efb8047abba4963d4604720ae678f3bee60b4 /src/mesa/main
parent00c46fec4328c9e759cb75a45c7aa993b643bc66 (diff)
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@alum.mit.edu> Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569>
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/version.c17
1 files 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 &&