Skip to content

PIPE_CAP_MUL_ZERO_WINS for NIR drivers

Emma Anholt requested to merge anholt/mesa:dx9-semantics into main

In transitioning drivers to saying they want NIR (preparing for !8044 (merged)), I run into gallium nine wanting to use PIPE_CAP_MUL_ZERO_WINS. We didn't have a NIR equivalent for ttn to take that prop from nine's TGSI and turn it into nir. My 7f01299c workaround of "just don't do TGSI-to-NIR in that case" didn't work because nouveau's GV100_3D_CLASS says it doesn't implement TGSI (even though it happily passes it through the tgsi frontend), so once we said we had NIR and only NIR in !15949 (merged), nine broke.

Obviously, on hardware with support for both DX9 and IEEE math, we want to support the native thing for both and nine wants to not have to emit workaround ALU ops. We already had is_arb_asm implementing the semantics we want on iris/crocus, so rig that up on the other NIR drivers that do TGSI_MUL_ZERO_WINS, then rename the cap and let TTN go to town. And, since we have the cap mapped now, we can flip the switch for iris and crocus.

This has been tested on 0 drivers, because I still don't have a guide to how to run a testsuite for this kind of behavior with gallium nine.

Merge request reports