brw: elk: Disable can_do_cmod for MACH

PRMs for G35 (Gfx4) through Ivy Bridge (Gfx7) all say that conditional
modifiers are allowed for MACH. Starting with Haswell (Gfx7.5), this
seems to be removed. This function doesn't have any way to know the
platform, so false is returned for all platforms.

No shader-db or fossil-db changes on any Intel platform.

Prevents a failure in "brw: Do cmod prop again after post-RA scheduling"
in piglit's builtin-uint-mad_sat-1.0.generated.cl.

Cc: stable
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38315>
This commit is contained in:
Ian Romanick
2025-12-01 11:07:29 -08:00
parent ba30794847
commit d7227b11a1
2 changed files with 7 additions and 2 deletions
-1
View File
@@ -403,7 +403,6 @@ brw_inst::can_do_cmod(enum brw_conditional_mod cmod) const
case BRW_OPCODE_LRP:
case BRW_OPCODE_LZD:
case BRW_OPCODE_MAC:
case BRW_OPCODE_MACH:
case BRW_OPCODE_MAD:
case BRW_OPCODE_MOV:
case BRW_OPCODE_MUL:
+7 -1
View File
@@ -1004,7 +1004,6 @@ elk_backend_instruction::can_do_cmod() const
case ELK_OPCODE_LRP:
case ELK_OPCODE_LZD:
case ELK_OPCODE_MAC:
case ELK_OPCODE_MACH:
case ELK_OPCODE_MAD:
case ELK_OPCODE_MOV:
case ELK_OPCODE_MUL:
@@ -1023,6 +1022,13 @@ elk_backend_instruction::can_do_cmod() const
case ELK_OPCODE_XOR:
case ELK_FS_OPCODE_LINTERP:
return true;
/* PRMs for Gfx4 through Gfx7 all say that conditional modifiers are
* allowed for MACH. Starting with Gfx7.5 (Haswell), this seems to be
* removed. This function doesn't have any way to know the platform, so
* false is returned for all platforms.
*/
case ELK_OPCODE_MACH:
default:
return false;
}