nir: Only do gl_FrontFacing workaround in glsl_to_nir for the FS.
Vertex shaders can have shader inputs where location happens to be VARYING_SLOT_FACE. Without predicating this on the shader stage, we suddenly end up with load_front_face intrinsics in vertex shaders, which is nonsensical. Fixes spec/arb_vertex_buffer_object/pos-array when using NIR for VS. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
c6f2abe67e
commit
8dcc1f2c10
|
@ -251,7 +251,8 @@ nir_visitor::visit(ir_variable *ir)
|
|||
break;
|
||||
|
||||
case ir_var_shader_in:
|
||||
if (ir->data.location == VARYING_SLOT_FACE) {
|
||||
if (stage == MESA_SHADER_FRAGMENT &&
|
||||
ir->data.location == VARYING_SLOT_FACE) {
|
||||
/* For whatever reason, GLSL IR makes gl_FrontFacing an input */
|
||||
var->data.location = SYSTEM_VALUE_FRONT_FACE;
|
||||
var->data.mode = nir_var_system_value;
|
||||
|
|
Loading…
Reference in New Issue