diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index e9cc0da6472..a48b76bac10 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -706,7 +706,7 @@ intrinsic("load_size_ir3", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER]) # float result = iid.x + iid.y * bary.y + iid.z * bary.x intrinsic("load_fs_input_interp_deltas", src_comp=[1], dest_comp=3, - indices=[BASE, COMPONENT], flags=[CAN_ELIMINATE, CAN_REORDER]) + indices=[BASE, COMPONENT, IO_SEMANTICS], flags=[CAN_ELIMINATE, CAN_REORDER]) # Load operations pull data from some piece of GPU memory. All load # operations operate in terms of offsets into some piece of theoretical diff --git a/src/compiler/nir/nir_lower_interpolation.c b/src/compiler/nir/nir_lower_interpolation.c index b4edfb9b0cc..d43cc7344fc 100644 --- a/src/compiler/nir/nir_lower_interpolation.c +++ b/src/compiler/nir/nir_lower_interpolation.c @@ -111,6 +111,8 @@ nir_lower_interpolation_block(nir_block *block, nir_builder *b, nir_intrinsic_set_base(load_iid, nir_intrinsic_base(intr)); nir_intrinsic_set_component(load_iid, nir_intrinsic_component(intr) + i); + nir_intrinsic_set_io_semantics(load_iid, + nir_intrinsic_io_semantics(intr)); nir_builder_instr_insert(b, &load_iid->instr); nir_ssa_def *iid = &load_iid->dest.ssa;