Skip to content

Draft: st/mesa: always lower IO in the GLSL linker, then unlower IO to variables before passing to drivers

Marek Olšák requested to merge mareko/mesa:st-unlower-io into main

This enables nir_opt_varyings and nir_opt_vectorize_io for all gallium drivers, which are our best IO optimizations in Mesa so far. It also fixes some of the more complex test failures for many drivers (usually having to do with variable indexing).

It will enable code removal and restructing of all GLSL linker and st/mesa code that deals with IO.

I don't recommend drivers to start lowering IO in st/mesa yet. Doing so would only make future cleanups more difficult. For example, compact arrays are planned to be removed from GLSL compilation and NIR passes, and st_unlower_io_to_vars will reconstruct compact arrays if drivers need them.

Edited by Marek Olšák

Merge request reports

Loading