static nir_ssa_def *
load_frag_coord(nir_builder *b)
{
- nir_foreach_variable(var, &b->shader->inputs) {
- if (var->data.location == VARYING_SLOT_POS)
- return nir_load_var(b, var);
+ nir_variable *pos =
+ nir_find_variable_with_location(b->shader, nir_var_shader_in,
+ VARYING_SLOT_POS);
+ if (pos == NULL) {
+ pos = nir_variable_create(b->shader, nir_var_shader_in,
+ glsl_vec4_type(), NULL);
+ pos->data.location = VARYING_SLOT_POS;
}
-
- nir_variable *pos = nir_variable_create(b->shader, nir_var_shader_in,
- glsl_vec4_type(), NULL);
- pos->data.location = VARYING_SLOT_POS;
/**
* From Vulkan spec:
* "The OriginLowerLeft execution mode must not be used; fragment entry