Skip to content

nv50: nir-to-tgsi by default (<nvc0)

Emma Anholt requested to merge anholt/mesa:nv92-ntt into main
nouveau: Enable NIR-to-TGSI by default up until nvc0.    
I didn't enable it by default after that because:

1) I don't have the hardware to do the testing yet.

2) atomic counters get lowered to SSBOs without (afaik) any note that they
   used to be atomic counters, which means that we don't get to apply the
   L1 cache cleverness that TGSI has for them.

nv92 shader-db:

total gpr in shared programs: 649215 -> 649167 (<.01%)
gpr in affected programs: 346741 -> 346693 (-0.01%)
total instructions in shared programs: 5652638 -> 5572628 (-1.42%)
instructions in affected programs: 4493141 -> 4413131 (-1.78%)
total loops in shared programs: 1355 -> 836 (-38.30%)
loops in affected programs: 530 -> 11 (-97.92%)
total bytes in shared programs: 39250440 -> 38694432 (-1.42%)
bytes in affected programs: 32194464 -> 31638456 (-1.73%)

GAINED: shaders/closed/gputest/pixmark-piano/7.shader_test (previously
  this threw "nv50_program_translate:396 - shader translation failed: -4")

glmark2 -b terrain FPS +7.2778% +/- 0.113% (n=3)
glmark2 -b desktop FPS +9.8022% +/- 2.18734% (n=6)
glmark2 -b loop no change (n=9)
glmark2 -b jellyfish no change (n=6)

traces performance:
minetest/minetest.trace:        -2.68% (+/-   2.3%) (n=10)
gputest/furmark.trace:           0.07% (+/-   3.1%) (n=20)
valve/counterstrike-v2.trace:    0.22% (+/-   7.8%) (n=10)
humus/Portals.trace           : -0.76% (+/-   4.5%) (n=20)
humus/CelShading.trace        : -0.26% (+/-   0.8%) (n=20)
humus/DynamicBranching3.trace : -0.12% (+/-   1.3%) (n=20)
humus/AmbientAperture.trace   : -0.09% (+/-   0.7%) (n=20)
humus/VolumetricFogging2.trace: -0.00% (+/-   8.4%) (n=20)
humus/HDR.trace               :  0.31% (+/-   2.8%) (n=20)
humus/RaytracedShadows.trace  : 57.68% (+/-  86.9%) (n=20) (yes, this was just noise)
Edited by Emma Anholt

Merge request reports