Skip to content

intel/fs: Use HF as destination type for F32TOF16 in fquantize2f16

Ian Romanick requested to merge idr/mesa:review/f32tof16-swsb-issue into main

Having an integer destination type instead of a float destination type confuses the SWSB code. This causes problems on some Intel GPUs. Fix this by using the correct type in the destination of the F32TOF16 opcode.

Gfx7 doesn't have the HF type, so continue to emit W on that platform. The assertions in brw_F32TO16 (brw_eu_emit.c) are updated to reflect this. In scalar mode, UD is never emitted as a destination type for this opcode, so remove it from the allowed types in the assertion.

I also condidered doing something like de55fd35 ("intel/fs/xehp: Teach SWSB pass about the exec pipeline of FS_OPCODE_PACK_HALF_2x16_SPLIT."), but Curro recommended that just using the correct types is a better fix. I agree.

Merge request reports