mesa/src/compiler
Juan A. Suarez Romero 4195eed961 glsl/linker: check same name is not used in block and outside
According with OpenGL GLSL 3.20 spec, section 4.3.9:

  "It is a link-time error if any particular shader interface
   contains:
     - two different blocks, each having no instance name, and each
       having a member of the same name, or
     - a variable outside a block, and a block with no instance name,
       where the variable has the same name as a member in the block."

This fixes a previous commit 9b894c8 ("glsl/linker: link-error using the
same name in unnamed block and outside") that covered this case, but
did not take in account that precision qualifiers are ignored when
comparing blocks with no instance name.

With this commit, the original tests
KHR-GL*.shaders.uniform_block.common.name_matching keep fixed, and also
dEQP-GLES31.functional.shaders.linkage.uniform.block.differing_precision
regression is fixed, which was broken by previous commit.

v2: use helper varibles (Matteo Bruni)

Fixes: 9b894c8 ("glsl/linker: link-error using the same name in unnamed block and outside")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104668
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104777
CC: Mark Janes <mark.a.janes@intel.com>
CC: "18.0" <mesa-stable@lists.freedesktop.org>
Tested-by: Matteo Bruni <matteo.mystral@gmail.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
2018-02-05 18:10:43 +01:00
..
glsl glsl/linker: check same name is not used in block and outside 2018-02-05 18:10:43 +01:00
nir nir: Distribute binary operations with constants into bcsel 2018-01-30 15:40:15 -08:00
spirv .gitignore: Ignore new generated files 2018-01-08 21:11:11 -08:00
.gitignore nir/spirv: Remove a duplicate spirv2nir from .gitignore 2016-10-04 07:43:15 -07:00
Android.glsl.gen.mk Android: clean-up trailing '\' in make variables 2017-03-22 17:52:06 +00:00
Android.glsl.mk android: glsl: build shader cache sources 2017-02-20 16:30:37 +00:00
Android.mk Android: glsl: add rules to generate ir_expression*.h header files 2016-09-06 15:58:55 +01:00
Android.nir.gen.mk Android: fix missing generation of vtn_gather_types.c 2017-12-13 16:20:15 -06:00
Android.nir.mk android: fix libmesa_nir build 2017-07-21 08:47:56 +03:00
blob.c blob: Don't set overrun if reading 0 bytes at end of data 2017-10-31 23:36:54 -07:00
blob.h blob: Use intptr_t instead of ssize_t 2017-10-13 15:02:34 -07:00
builtin_type_macros.h glsl: Add 16-bit types 2017-12-06 08:57:18 +01:00
glsl_types.cpp glsl: Add 16-bit types 2017-12-06 08:57:18 +01:00
glsl_types.h glsl: Add 16-bit types 2017-12-06 08:57:18 +01:00
Makefile.am automake: small cleanup after the meson.build inclusion 2018-01-25 17:06:29 +00:00
Makefile.glsl.am glsl: automake: export abs_builddir for the tests 2017-03-28 15:31:22 +01:00
Makefile.nir.am spirv: Makefile.nir.am: include vtn_gather_types_c.py script in tarball dist 2017-12-20 17:44:35 +01:00
Makefile.sources spirv: Add a prepass to set types on vtn_values 2017-12-11 22:28:34 -08:00
meson.build meson: Use dependencies for nir 2018-01-11 15:40:02 -08:00
nir_types.cpp nir: Add a helper to get the uvec4 type. 2018-01-03 14:25:23 -08:00
nir_types.h nir: add image and sampler type to glsl_get_bit_size() 2018-01-23 09:44:37 +11:00
SConscript glsl: Generate ir_expression_operation.h from Python 2016-08-30 16:28:00 -07:00
SConscript.glsl mesa: Remove prog_hash_table.c 2016-09-12 10:48:35 +10:00
SConscript.nir glsl: Generate ir_expression_operation.h from Python 2016-08-30 16:28:00 -07:00
shader_enums.c mesa: remove unused vertex attrib WEIGHT 2017-11-25 17:17:52 +01:00
shader_enums.h mesa: Put materials at the end of the generic block. 2018-02-01 22:39:06 +01:00
shader_info.h compiler: tidy up double_inputs_read uses 2018-01-30 09:08:47 +11:00