Skip to content

lavapipe: implement extreme uniform inlining

Mike Blumenkrantz requested to merge zmike/mesa:lavapipe-inline into main

this adds a mangled variation on nir_inline_uniforms that enables inlining from any uniform buffer in order to try inlining every possible load

if the shader is too small or the ssa_alloc delta from inlining is too small, then inlining is disabled for that shader to avoid pointlessly churning the same shaders for no gain

with certain types of shaders, the speedup is astronomical

before: dEQP-VK.graphicsfuzz.cov-int-initialize-from-multiple-large-arrays (4750.76s)

after: dEQP-VK.graphicsfuzz.cov-int-initialize-from-multiple-large-arrays (0.505s)

Merge request reports