mirror of https://gitlab.freedesktop.org/mesa/mesa
vc4: use IO semantics for location
Use IO semantics to find the locations instead of more complex ways. Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29133>
This commit is contained in:
parent
aefe237e47
commit
28eb1b1eaf
|
@ -574,18 +574,10 @@ vc4_nir_lower_blend_block(nir_block *block, struct vc4_compile *c)
|
|||
if (intr->intrinsic != nir_intrinsic_store_output)
|
||||
continue;
|
||||
|
||||
nir_variable *output_var = NULL;
|
||||
nir_foreach_shader_out_variable(var, c->s) {
|
||||
if (var->data.driver_location ==
|
||||
nir_intrinsic_base(intr)) {
|
||||
output_var = var;
|
||||
break;
|
||||
}
|
||||
}
|
||||
assert(output_var);
|
||||
unsigned loc = nir_intrinsic_io_semantics(intr).location;
|
||||
|
||||
if (output_var->data.location != FRAG_RESULT_COLOR &&
|
||||
output_var->data.location != FRAG_RESULT_DATA0) {
|
||||
if (loc != FRAG_RESULT_COLOR &&
|
||||
loc != FRAG_RESULT_DATA0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -220,15 +220,11 @@ vc4_nir_lower_fs_input(struct vc4_compile *c, nir_builder *b,
|
|||
{
|
||||
b->cursor = nir_after_instr(&intr->instr);
|
||||
|
||||
nir_variable *input_var =
|
||||
nir_find_variable_with_driver_location(c->s, nir_var_shader_in,
|
||||
nir_intrinsic_base(intr));
|
||||
assert(input_var);
|
||||
|
||||
unsigned int location = nir_intrinsic_io_semantics(intr).location;
|
||||
int comp = nir_intrinsic_component(intr);
|
||||
|
||||
/* Lower away point coordinates, and fix up PNTC. */
|
||||
if (util_varying_is_point_coord(input_var->data.location,
|
||||
if (util_varying_is_point_coord(location,
|
||||
c->fs_key->point_sprite_mask)) {
|
||||
assert(intr->num_components == 1);
|
||||
|
||||
|
@ -267,14 +263,11 @@ static void
|
|||
vc4_nir_lower_output(struct vc4_compile *c, nir_builder *b,
|
||||
nir_intrinsic_instr *intr)
|
||||
{
|
||||
nir_variable *output_var =
|
||||
nir_find_variable_with_driver_location(c->s, nir_var_shader_out,
|
||||
nir_intrinsic_base(intr));
|
||||
assert(output_var);
|
||||
unsigned int location = nir_intrinsic_io_semantics(intr).location;
|
||||
|
||||
if (c->stage == QSTAGE_COORD &&
|
||||
output_var->data.location != VARYING_SLOT_POS &&
|
||||
output_var->data.location != VARYING_SLOT_PSIZ) {
|
||||
location != VARYING_SLOT_POS &&
|
||||
location != VARYING_SLOT_PSIZ) {
|
||||
nir_instr_remove(&intr->instr);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue