Mesa (master): spirv: Builtin Layer is an input for fragment shaders
Iago Toral Quiroga
itoral at kemper.freedesktop.org
Sat Dec 3 20:02:47 UTC 2016
Module: Mesa
Branch: master
Commit: 66e7effc8542aa725eb9c08d826ece009526cd50
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=66e7effc8542aa725eb9c08d826ece009526cd50
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Fri Dec 2 14:16:07 2016 +0100
spirv: Builtin Layer is an input for fragment shaders
This change makes it so we emit a load_input intrinsic when Layer
is read in a fragment shader.
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
---
src/compiler/spirv/vtn_variables.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c
index 917aa9d..a38d359 100644
--- a/src/compiler/spirv/vtn_variables.c
+++ b/src/compiler/spirv/vtn_variables.c
@@ -819,7 +819,12 @@ vtn_get_builtin_location(struct vtn_builder *b,
break;
case SpvBuiltInLayer:
*location = VARYING_SLOT_LAYER;
- *mode = nir_var_shader_out;
+ if (b->shader->stage == MESA_SHADER_FRAGMENT)
+ *mode = nir_var_shader_in;
+ else if (b->shader->stage == MESA_SHADER_GEOMETRY)
+ *mode = nir_var_shader_out;
+ else
+ unreachable("invalid stage for SpvBuiltInLayer");
break;
case SpvBuiltInViewportIndex:
*location = VARYING_SLOT_VIEWPORT;
More information about the mesa-commit
mailing list