Skip to content

radeonsi: move the VS output optimization from LLVM to NIR, use new transform feedback, no_varying, etc.

Marek Olšák requested to merge mareko/mesa:si-xfb-new2 into main

This MR is only about the radeonsi changes. The NIR and st/mesa changes are dependencies that are posted here (and also included in this MR): !14388 (merged)

This is part of the effort to move more compiler logic from LLVM to NIR.

This MR moves our VS and TES output optimization (ac_optimize_vs_outputs) from LLVM to NIR. In order to have such an optimization in NIR, we need more flexibility in how shader outputs are represented in NIR including transform feedback. This also moves the kill_{output/clip_distances/pointsize} optimization to NIR because it should happen before ac_optimize_vs_outputs. After both optimizations are finished, we gather information about param exports from NIR. We also gather information about transform feedback from NIR. (not from pipe_stream_output_info).

Merge request reports