/[packages]/cauldron/mesa/current/SOURCES/0022-Revert-glsl-relax-input-output-validation-for-SSO-pr.patch
ViewVC logotype

Annotation of /cauldron/mesa/current/SOURCES/0022-Revert-glsl-relax-input-output-validation-for-SSO-pr.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1379265 - (hide annotations) (download)
Wed Mar 20 17:08:42 2019 UTC (5 years, 1 month ago) by tmb
File size: 2642 byte(s)
more fixes from staging/19.0 branch
1 tmb 1379153 From 062d464c4c194d874c5ce19a5eac997a2f340bde Mon Sep 17 00:00:00 2001
2     From: Andres Gomez <agomez@igalia.com>
3     Date: Fri, 8 Feb 2019 19:06:08 +0200
4 tmb 1379265 Subject: [PATCH 22/24] Revert "glsl: relax input->output validation for SSO
5 tmb 1379153 programs"
6     MIME-Version: 1.0
7     Content-Type: text/plain; charset=UTF-8
8     Content-Transfer-Encoding: 8bit
9    
10     This reverts commit 1aa5738e666a9534c7e5b46f077327e6d647c64f.
11    
12     This patch incorrectly asumed that for SSOs no inner interface
13     matching check was needed.
14    
15     From the ARB_separate_shader_objects spec v.25:
16    
17     " With separable program objects, interfaces between shader stages
18     may involve the outputs from one program object and the inputs
19     from a second program object. For such interfaces, it is not
20     possible to detect mismatches at link time, because the programs
21     are linked separately. When each such program is linked, all
22     inputs or outputs interfacing with another program stage are
23     treated as active. The linker will generate an executable that
24     assumes the presence of a compatible program on the other side of
25     the interface. If a mismatch between programs occurs, no GL error
26     will be generated, but some or all of the inputs on the interface
27     will be undefined."
28    
29     This completes the fix from commit:
30     3be05dd2679 ("glsl/linker: don't fail non static used inputs without matching outputs")
31    
32     Fixes: 1aa5738e666 ("glsl: relax input->output validation for SSO programs")
33     Cc: Tapani Pälli <tapani.palli@intel.com>
34     Cc: Timothy Arceri <tarceri@itsqueeze.com>
35     Cc: Ilia Mirkin <imirkin@alum.mit.edu>
36     Cc: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
37     Cc: Ian Romanick <ian.d.romanick@intel.com>
38     Signed-off-by: Andres Gomez <agomez@igalia.com>
39     Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
40     (cherry picked from commit ab28dca0334746d1d6cb3f1b18550e3cbfb41d77)
41     ---
42     src/compiler/glsl/link_varyings.cpp | 2 +-
43     1 file changed, 1 insertion(+), 1 deletion(-)
44    
45     diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
46     index 56fff60e07a..da0c8abc236 100644
47     --- a/src/compiler/glsl/link_varyings.cpp
48     +++ b/src/compiler/glsl/link_varyings.cpp
49     @@ -816,7 +816,7 @@ cross_validate_outputs_to_inputs(struct gl_context *ctx,
50     */
51     assert(!input->data.assigned);
52     if (input->data.used && !input->get_interface_type() &&
53     - !input->data.explicit_location && !prog->SeparateShader)
54     + !input->data.explicit_location)
55     linker_error(prog,
56     "%s shader input `%s' "
57     "has no matching output in the previous stage\n",
58     --
59     2.21.0
60    

  ViewVC Help
Powered by ViewVC 1.1.30