mesa/src/compiler
Kenneth Graunke 47daf17da0 glsl: Make add_interface_variables only consider the appropriate stage.
add_interface_variables() is supposed to add variables for the inputs of
the first shader stage linked into a program, and the outputs of the
last shader stage linked into a program.

From the ARB_program_interface_query specification:

"* PROGRAM_INPUT corresponds to the set of active input variables used by
   the first shader stage of <program>.  If <program> includes multiple
   shader stages, input variables from any shader stage other than the
   first will not be enumerated.

 * PROGRAM_OUTPUT corresponds to the set of active output variables
   (section 2.14.11) used by the last shader stage of <program>.  If
   <program> includes multiple shader stages, output variables from any
   shader stage other than the last will not be enumerated."

Previously, we used build_stageref here, which walks over all linked
shaders in the program.  This meant that internal varyings would be
visible.  We don't actually need any of build_stageref's code: we
already explicitly skip packed varyings, handle modes, and the name
comparisons just do a fuzzy string comparison of name with itself.

Fixes two tests: dEQP-GLES31.functional.program_interface_query.
program_{input,output}.referenced_by.referenced_by_vertex_fragment.

These tests have a VS and FS linked together into a single program.
Both stages have an input called "shaderInput".  But the FS input
should not be visible because it isn't the first stage.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
2016-04-01 21:58:25 -07:00
..
glsl glsl: Make add_interface_variables only consider the appropriate stage. 2016-04-01 21:58:25 -07:00
nir nir: Add an opcode for stomping a 32-bit value to 16-bit precision 2016-04-01 13:52:28 -07:00
.gitignore compiler: fix .gitignore for glsl_compiler 2016-02-03 13:32:46 -05:00
Android.gen.mk Android: fix build break from nir/glsl move to compiler/ 2016-02-29 10:51:44 +00:00
Android.mk nir: move to compiler/ 2016-01-26 16:08:30 +00:00
builtin_type_macros.h glsl/types: Add a bare "sampler" type 2016-02-13 17:22:36 -08:00
glsl_types.cpp glsl: add helper for counting varyings 2016-03-31 12:51:06 +11:00
glsl_types.h glsl: add helper for counting varyings 2016-03-31 12:51:06 +11:00
Makefile.am glsl: Ensure glsl/ exists before making the lexer/parser. 2016-02-04 09:31:17 -08:00
Makefile.sources nir/Makefile: Fix alphabetization 2016-03-28 18:32:48 -07:00
nir_types.cpp nir/types: Add more type constructor functions 2016-02-13 17:22:36 -08:00
nir_types.h nir/types: add a function to get the bitsize of a base type 2016-03-17 11:16:33 +01:00
SConscript glsl: move to compiler/ 2016-01-26 16:08:33 +00:00
shader_enums.c nir: move shader_enums.[ch] to compiler 2016-01-26 16:08:20 +00:00
shader_enums.h compiler: random comment fixup 2016-04-01 12:34:40 -04:00