Skip to content

lima: ppir: various fixes and improvements to debug output

Vasily Khoruzhick requested to merge anarsoul/mesa:lima-ppir-debug into main

lima: ppir: improve readability of ppir represantation dump

Improve readability of ppir representation dump

  • adopt "dest = op src1[, srcN]"
  • use symbolic names of pipeline registers
  • print destination writemask
  • print destination modifier (if any)
  • print source(s) swizzle
  • print constants
  • print load node base index
  • print branch condition(s)

With these modifications it's actually possible to follow the program

-------block   0-------
 $0008 = mov ^texture ($0005) // NIR: new
  ($0005) ^texture = ld_tex ^discard ($0006).xyzx, $0004.xxxx // NIR: ssa4
    ($0006) ^discard = ld_coords_reg $0002.xyzx // NIR: new
       $0004.x = ld_var 0 // NIR: ssa6
       $0002.xyz = mov $0001.yzwx // NIR: ssa5
         $0001 = ld_var 0 // NIR: ssa7

lima: ppir: fixup src node when replacing src for select and load_reg

Fixup src node when replacing src for select and load_reg

It doesn't affect compiler functionality, but affects printing ppir representation.

lima: ppir: print index of the node that breaks node_to_instr

Print index of the node that breaks node_to_instr to make debugging easier

lima: ppir: fix diassembling atan and combiner codegen definition

Fix multiple issues with atan in disassembler:

  • arg1_en field in combiner unit actually seems to be a bit indicating that one of sources is vector (e.g. for atan_pt2, or multiplication)
  • atan2 has 2 arguments, not one
  • properly handle all instruction variants

lima: ppir: assert on unexpected pipeline dest for fmul and vmul

Assert on unexpected pipeline dest for fmul and vmul to catch scheduler bugs early

Edited by Vasily Khoruzhick

Merge request reports

Loading