mesa/src/compiler
Timothy Arceri c64ad299e4 glsl: fix validation of ES vertex attribs
From OpenGL ES 3.0 spec, page 56:

    "Binding more than one attribute name to the same location
     is referred to as aliasing, and is not permitted in OpenGL
     ES Shading Language 3.00 vertex shaders. LinkProgram will
     fail when this condition exists. However, aliasing is
     possible in OpenGL ES Shading Language 1.00 vertex shaders.
     This will only work if only one of the aliased attributes
     is active in the executable program, or if no path through
     the shader consumes more than one attribute of a set of
     attributes aliased to the same location. A link error can
     occur if the linker determines that every path through the
     shader consumes multiple aliased attributes, but implemen-
     tations are not required to generate an error in this case."

So here we make sure to allow the optimisations before validation
for earlier ES shader versions.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>

Fixes: 80c001013c ("glsl: do vs attribute validation in NIR linker")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9342
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24205>
2023-07-19 00:43:26 +00:00
..
clc clc: rework optional subgroup feature 2023-07-07 12:27:35 +00:00
glsl glsl: fix validation of ES vertex attribs 2023-07-19 00:43:26 +00:00
isaspec ir3, isaspec: add raw instruction to assembler/disassembler. 2023-01-26 14:26:11 +00:00
nir nir: Initialize workgroup_size in builder_init_simple_shader 2023-07-17 19:53:49 +00:00
spirv vtn: more CL subgroups 2023-07-07 12:27:35 +00:00
builtin_type_macros.h glsl: add texture subpass variants 2022-11-10 10:21:34 +00:00
glsl_types.cpp compiler: set alignment=1 by default for handling empty struct/interface in glsl_types.cpp 2023-06-28 21:16:05 +00:00
glsl_types.h compiler/types: Be consistent when naming array element/size 2023-06-15 03:43:46 +00:00
meson.build compiler: Move spirv into a module of its own 2023-06-20 16:18:08 +00:00
nir_gl_types.h mesa: #include "util/glheader.h" instead GL/gl.h in shared code 2022-11-03 16:07:31 +00:00
nir_types.cpp compiler/types: Be consistent when naming array element/size 2023-06-15 03:43:46 +00:00
nir_types.h compiler/types: Be consistent when naming array element/size 2023-06-15 03:43:46 +00:00
shader_enums.c compiler: Add mesa_scope_name() function 2023-06-19 23:29:26 +00:00
shader_enums.h compiler: Remove blend enums duplicating util 2023-07-13 21:03:32 +00:00
shader_info.h vtn: more CL subgroups 2023-07-07 12:27:35 +00:00