lima: ppir: various fixes and improvements to debug output
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