brw: handle wa_18019110168 with independent shader compilation

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35103>
This commit is contained in:
Lionel Landwerlin
2025-05-19 17:05:15 +03:00
committed by Marge Bot
parent bc8d18aee2
commit fcf4401824
13 changed files with 283 additions and 42 deletions
+22 -2
View File
@@ -4428,6 +4428,20 @@ brw_from_nir_emit_fs_intrinsic(nir_to_brw_state &ntb,
break;
}
case nir_intrinsic_store_per_primitive_payload_intel: {
const brw_builder ubld = bld.exec_all().group(1, 0);
brw_reg src = get_nir_src(ntb, instr->src[0], -1);
src = retype(bld.emit_uniformize(src), BRW_TYPE_UD);
ubld.MOV(retype(
brw_per_primitive_reg(bld,
nir_intrinsic_base(instr),
nir_intrinsic_component(instr)),
BRW_TYPE_UD),
component(src, 0));
break;
}
case nir_intrinsic_load_fs_input_interp_deltas: {
assert(s.stage == MESA_SHADER_FRAGMENT);
assert(nir_src_as_uint(instr->src[0]) == 0);
@@ -4586,9 +4600,15 @@ brw_from_nir_emit_fs_intrinsic(nir_to_brw_state &ntb,
bld.MOV(retype(dest, BRW_TYPE_UD), brw_imm_ud(s.max_polygons));
break;
case nir_intrinsic_load_per_primitive_remap_intel:
bld.MOV(retype(dest, BRW_TYPE_UD),
brw_dynamic_per_primitive_remap(brw_wm_prog_data(s.prog_data)));
break;
case nir_intrinsic_read_attribute_payload_intel: {
const brw_reg offset = retype(get_nir_src(ntb, instr->src[0], 0),
BRW_TYPE_UD);
const brw_reg offset = retype(
bld.emit_uniformize(get_nir_src(ntb, instr->src[0], 0)),
BRW_TYPE_UD);
bld.emit(FS_OPCODE_READ_ATTRIBUTE_PAYLOAD, retype(dest, BRW_TYPE_UD), offset);
break;
}