Added a WIP because the main patch is already included on MR !301 (merged) . Current MR just add support to load_shared, so @anholt can take a look to it, and provide early feedback just in case it is wrong.
That change allows the following 3.1 ES CTS test passing:
But the patch that introduces the nir scheduler introduces regressions on the following tests (so another reason for the WIP)
I plan to take a look to those.
Final note: in order to check that the load_shared is not moved if there are a store_shared between the original and the new position of the load_shared, I wrote this small test: piglit!126 (merged)
UPDATE: as time passed I have been adding some improvements, so I have just changed the title of the issue.