/[packages]/cauldron/mesa/current/SOURCES/0074-glsl-linker-specify-proper-direction-in-location-ali.patch
ViewVC logotype

Contents of /cauldron/mesa/current/SOURCES/0074-glsl-linker-specify-proper-direction-in-location-ali.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1355920 - (show annotations) (download)
Sun Jan 13 14:22:00 2019 UTC (5 years, 2 months ago) by tmb
File size: 3356 byte(s)
add current fixes from upstream staging/18.3 branch
1 From 37a8e85fa4accae9bba35d2a08f619ae2dc5ca8c Mon Sep 17 00:00:00 2001
2 From: Andres Gomez <agomez@igalia.com>
3 Date: Mon, 7 Jan 2019 16:11:44 +0200
4 Subject: [PATCH 74/78] glsl/linker: specify proper direction in location
5 aliasing error
6
7 The check for location aliasing was always asuming output variables
8 but this validation is also called for input variables.
9
10 Fixes: e2abb75b0e4 ("glsl/linker: validate explicit locations for SSO programs")
11 Cc: Iago Toral Quiroga <itoral@igalia.com>
12 Signed-off-by: Andres Gomez <agomez@igalia.com>
13 Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
14 Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
15 (cherry picked from commit 428164d87f8dc1d378236b4913538803653770c6)
16 ---
17 src/compiler/glsl/link_varyings.cpp | 15 ++++++++++-----
18 1 file changed, 10 insertions(+), 5 deletions(-)
19
20 diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
21 index 52e493cb59..3969c0120b 100644
22 --- a/src/compiler/glsl/link_varyings.cpp
23 +++ b/src/compiler/glsl/link_varyings.cpp
24 @@ -481,9 +481,10 @@ check_location_aliasing(struct explicit_location_info explicit_locations[][4],
25 /* Component aliasing is not alloed */
26 if (comp >= component && comp < last_comp) {
27 linker_error(prog,
28 - "%s shader has multiple outputs explicitly "
29 + "%s shader has multiple %sputs explicitly "
30 "assigned to location %d and component %d\n",
31 _mesa_shader_stage_to_string(stage),
32 + var->data.mode == ir_var_shader_in ? "in" : "out",
33 location, comp);
34 return false;
35 } else {
36 @@ -502,10 +503,12 @@ check_location_aliasing(struct explicit_location_info explicit_locations[][4],
37
38 if (info->interpolation != interpolation) {
39 linker_error(prog,
40 - "%s shader has multiple outputs at explicit "
41 + "%s shader has multiple %sputs at explicit "
42 "location %u with different interpolation "
43 "settings\n",
44 - _mesa_shader_stage_to_string(stage), location);
45 + _mesa_shader_stage_to_string(stage),
46 + var->data.mode == ir_var_shader_in ?
47 + "in" : "out", location);
48 return false;
49 }
50
51 @@ -513,9 +516,11 @@ check_location_aliasing(struct explicit_location_info explicit_locations[][4],
52 info->sample != sample ||
53 info->patch != patch) {
54 linker_error(prog,
55 - "%s shader has multiple outputs at explicit "
56 + "%s shader has multiple %sputs at explicit "
57 "location %u with different aux storage\n",
58 - _mesa_shader_stage_to_string(stage), location);
59 + _mesa_shader_stage_to_string(stage),
60 + var->data.mode == ir_var_shader_in ?
61 + "in" : "out", location);
62 return false;
63 }
64 }
65 --
66 2.20.1
67

  ViewVC Help
Powered by ViewVC 1.1.30