intel/compiler/icl: Use tcs barrier id bits 24:30 instead of 24:27
Similarly to 1cc17fb731
Fixes gpu hangs with dEQP-VK.tessellation.shader_input_output.barrier
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
@@ -2457,16 +2457,26 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld,
|
||||
/* Zero the message header */
|
||||
bld.exec_all().MOV(m0, brw_imm_ud(0u));
|
||||
|
||||
/* Copy "Barrier ID" from r0.2, bits 16:13 */
|
||||
chanbld.AND(m0_2, retype(brw_vec1_grf(0, 2), BRW_REGISTER_TYPE_UD),
|
||||
brw_imm_ud(INTEL_MASK(16, 13)));
|
||||
if (devinfo->gen < 11) {
|
||||
/* Copy "Barrier ID" from r0.2, bits 16:13 */
|
||||
chanbld.AND(m0_2, retype(brw_vec1_grf(0, 2), BRW_REGISTER_TYPE_UD),
|
||||
brw_imm_ud(INTEL_MASK(16, 13)));
|
||||
|
||||
/* Shift it up to bits 27:24. */
|
||||
chanbld.SHL(m0_2, m0_2, brw_imm_ud(11));
|
||||
/* Shift it up to bits 27:24. */
|
||||
chanbld.SHL(m0_2, m0_2, brw_imm_ud(11));
|
||||
} else {
|
||||
chanbld.AND(m0_2, retype(brw_vec1_grf(0, 2), BRW_REGISTER_TYPE_UD),
|
||||
brw_imm_ud(INTEL_MASK(30, 24)));
|
||||
}
|
||||
|
||||
/* Set the Barrier Count and the enable bit */
|
||||
chanbld.OR(m0_2, m0_2,
|
||||
brw_imm_ud(tcs_prog_data->instances << 9 | (1 << 15)));
|
||||
if (devinfo->gen < 11) {
|
||||
chanbld.OR(m0_2, m0_2,
|
||||
brw_imm_ud(tcs_prog_data->instances << 9 | (1 << 15)));
|
||||
} else {
|
||||
chanbld.OR(m0_2, m0_2,
|
||||
brw_imm_ud(tcs_prog_data->instances << 8 | (1 << 15)));
|
||||
}
|
||||
|
||||
bld.emit(SHADER_OPCODE_BARRIER, bld.null_reg_ud(), m0);
|
||||
break;
|
||||
|
Reference in New Issue
Block a user