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@jlekstrand.net>
This commit is contained in:
@@ -819,7 +819,12 @@ vtn_get_builtin_location(struct vtn_builder *b,
|
|||||||
break;
|
break;
|
||||||
case SpvBuiltInLayer:
|
case SpvBuiltInLayer:
|
||||||
*location = VARYING_SLOT_LAYER;
|
*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;
|
break;
|
||||||
case SpvBuiltInViewportIndex:
|
case SpvBuiltInViewportIndex:
|
||||||
*location = VARYING_SLOT_VIEWPORT;
|
*location = VARYING_SLOT_VIEWPORT;
|
||||||
|
Reference in New Issue
Block a user