iris, crocus: Disable new IO slot validation for FB fetch load_output
This is a framebuffer fetch for blend equation advanced lowering. We're using a binding table index as the offset, which is not a slot. Also, validate the shader after setup_binding_table so that we catch errors here at the right place, rather than deeper in the compiler. Acked-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38231>
This commit is contained in:
committed by
Marge Bot
parent
b2172467d1
commit
10e2631e79
@@ -1022,6 +1022,13 @@ crocus_setup_binding_table(const struct intel_device_info *devinfo,
|
||||
|
||||
case nir_intrinsic_load_output:
|
||||
if (devinfo->ver >= 6) {
|
||||
/* We're using a BTI as the load_output offset here which
|
||||
* breaks newer NIR assumptions.
|
||||
*/
|
||||
nir_io_semantics io_sem = nir_intrinsic_io_semantics(intrin);
|
||||
io_sem.no_validate = true;
|
||||
nir_intrinsic_set_io_semantics(intrin, io_sem);
|
||||
|
||||
rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
|
||||
CROCUS_SURFACE_GROUP_RENDER_TARGET_READ);
|
||||
}
|
||||
@@ -1040,6 +1047,8 @@ crocus_setup_binding_table(const struct intel_device_info *devinfo,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nir_validate_shader(nir, "after crocus_setup_binding_table");
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -1566,6 +1566,13 @@ iris_setup_binding_table(const struct intel_device_info *devinfo,
|
||||
|
||||
case nir_intrinsic_load_output:
|
||||
if (devinfo->ver == 8) {
|
||||
/* We're using a BTI as the load_output offset here which
|
||||
* breaks newer NIR assumptions.
|
||||
*/
|
||||
nir_io_semantics io_sem = nir_intrinsic_io_semantics(intrin);
|
||||
io_sem.no_validate = true;
|
||||
nir_intrinsic_set_io_semantics(intrin, io_sem);
|
||||
|
||||
rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
|
||||
IRIS_SURFACE_GROUP_RENDER_TARGET_READ);
|
||||
}
|
||||
@@ -1584,6 +1591,8 @@ iris_setup_binding_table(const struct intel_device_info *devinfo,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nir_validate_shader(nir, "after iris_setup_binding_table");
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user