This is quite easy because we just have to get rid of all of the preloading at the beginning of shaders.
I also removed preloading of PS inputs with literal indexing, which has almost the same effect as sinking interp instructions. I'm slightly concerned that LICM won't move interps because they are not considered speculatively-executable (=movable) by LLVM, but the shader-db stats show that it doesn't matter. LLVM is smart enough to do CSE where needed for both descriptor loads and interps. In fact, it's the CSE which is responsible for some of the remaining SGPR spills. (It makes sense if you think about it) The compile time increased by 6% because CSE has a lot more work, but it's certainly worth it. shader-db stats: [PATCH 4/6] radeonsi: get rid of img/buf/sampler descriptor https://people.freedesktop.org/~mareko/no_preload1.html [PATCH 5/6] radeonsi: get rid of constant buffer preloading https://people.freedesktop.org/~mareko/no_preload2.html [PATCH 6/6] radeonsi: reload PS inputs with direct indexing at each https://people.freedesktop.org/~mareko/no_preload3_ps.html Total diff: https://people.freedesktop.org/~mareko/no_preload_total.html Please review. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev