Skip to content

r600/ntt: various fixes

Gert Wollny requested to merge gerddie/mesa:r600-fix-ntt into main
  • NIR: don't lower in the late algebraic optimizations to use 64 bit fsub if the lower_doubles_options have nir_lower_dsub
  • NTT: for FS remove unused inputs, because vectorize_io will create overlapping inputs and NTT doesn't like this,
  • r600/sb: Don't optimize GE and GT, NIR should have taken care of this and sb doesn't handle NAN's there
  • r600: tune nir options
    • don't lower fp64 to software when on Cayman
    • don't lower fpow for NTT, TGSI_OPCODE_POW is handled correctly, but it doesn't like the lowered code
  • r600: add support for TGSI_OPCODE_ATOMIMIN and IMAX, these are emitted with NTT

This fixes most regressions, what is still missing:

  • even though ffloor is supposed to be lowered in nir_lower_doubles opt_algebraic re-creates ffloor seemingly from ffract but lower_ffract is not requested, so no real idea what is going wrong, then TGSI_OPCODE_DFLR isn't handled by the TGSI backend (yet).
  • for some reason __buildin_udiv64 is missing when linking the shaders, resuting in an assertion failure: ../src/compiler/glsl/glsl_to_nir.cpp:1669: virtual void {anonymous}::nir_visitor::visit(ir_call*): Assertion `entry' failed.
Edited by Gert Wollny

Merge request reports