[Mesa-dev] [PATCH] spirv: gl_PrimitiveID in the fragment shader is handled as an input
Iago Toral Quiroga
itoral at igalia.com
Mon Jan 9 12:50:28 UTC 2017
Geometry and Tessellation stages do handle this as a system value instead.
Fixes:
dEQP-VK.geometry.basic.primitive_id
---
src/compiler/spirv/vtn_variables.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c
index 9b84c97..cf47e5d 100644
--- a/src/compiler/spirv/vtn_variables.c
+++ b/src/compiler/spirv/vtn_variables.c
@@ -908,7 +908,8 @@ vtn_get_builtin_location(struct vtn_builder *b,
set_mode_system_value(mode);
break;
case SpvBuiltInPrimitiveId:
- if (*mode == nir_var_shader_out) {
+ if (*mode == nir_var_shader_out ||
+ b->shader->stage == MESA_SHADER_FRAGMENT) {
*location = VARYING_SLOT_PRIMITIVE_ID;
} else {
*location = SYSTEM_VALUE_PRIMITIVE_ID;
--
2.7.4
More information about the mesa-dev
mailing list