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:
|
case nir_intrinsic_load_output:
|
||||||
if (devinfo->ver >= 6) {
|
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],
|
rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
|
||||||
CROCUS_SURFACE_GROUP_RENDER_TARGET_READ);
|
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
|
static void
|
||||||
|
|||||||
@@ -1566,6 +1566,13 @@ iris_setup_binding_table(const struct intel_device_info *devinfo,
|
|||||||
|
|
||||||
case nir_intrinsic_load_output:
|
case nir_intrinsic_load_output:
|
||||||
if (devinfo->ver == 8) {
|
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],
|
rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
|
||||||
IRIS_SURFACE_GROUP_RENDER_TARGET_READ);
|
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
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user