Handle access qualifiers in NIR, and use them in radeonsi
We were almost totally ignoring access qualifiers like volatile
, restrict
, etc. when translating GLSL to NIR. This series fixes that, fixes a bug in opt_copy_prop_vars
, and then adds another access qualifier with the same semantics as NIR_INTRINSIC_CAN_REORDER
and tries to deduce it where we can, for games like Deus Ex that use SSBO's as if they were UBO's. While this doesn't allow many more optimizations in NIR than what copy_prop_vars
already did, it does allow some more LLVM optimizations to kick in. Radeonsi's TGSI pass was doing a similar thing for writes, but it was unnecessary. At the end of this series, the radeonsi NIR and TGSI paths should be just as aggressive at sinking SSBO loads.