Closed chrisforbes closed 6 years ago
On Haswell, the RS has gather-from-memory capability which can be used to fetch from UBO and push the resulting data into the kernels.
Note: RS requires a change to our binding table management, since the HW wants to control it. We get binding table edit commands instead.
Also tons of weird issues in Haswell implementation; PRM documents required workarounds to prime the RS.
RS is apparently a disaster. Rest of this is done.
When porting from DX10/11 to GL, it's natural to use UBO for absolutely everything, but this carries a stiff perf penalty on our driver. If we have small UBOs and a dense block of variables within them are used, we should try to promote that to push constants so they are delivered automatically to the shader kernel.