Support for Quad Buffer Stereo on OpenGL; adds missing Custom Present on Linux
https://github.com/EpicGames/UnrealEngine/pull/709
#codereview Dmitry.Rekman
[CL 2471652 by Rolando Caloca in Main branch]
- even better hint flags, disregarding staging buffer at all.
- synchronous debug output (to get the callstacks for warning in the future).
(Merging CL 2459008, 2459016 to main).
[CL 2466588 by Dmitry Rekman in Main branch]
- The consolve variable "r.UseShaderCaching" controls whether the cache should be used.
- The cache has to be initialised and shutdown by the RHI.
- All RHI shader types now contain the SHA hash of the compiled source when the cache is in use so that they can be identified efficiently.
- All shaders are fetched from the cache rather than being created on-demand.
- On shader deserialisation the new shader is sent to the render thread for creation & caching.
- After each shader is cached all complete bound-shader-states that include that shader are constructed and cached.
- Wrapped OpenGL glCreateShader & glCreateProgram to use name-caching as these operations can synchronise the entire OpenGL pipeline on OS X.
[CL 2423996 by Mark Satterthwaite in Main branch]
- Store global bitfield of active feature levels
- Generate shaders for all active feature levels
- Add option to experimental settings to enable dynamic feature level
- Redirect GRHIFeatureLevel to GMaxRHIFeatureLevel - Effectively const now, ready to be removed
[CL 2296373 by Graeme Thornton in Main branch]
* Still disabled as Metal requires a horrible workaround/hack
* Remove GSupportsGSRenderTargetLayerSwitchingToMips workaround
[CL 2295640 by Rolando Caloca in Main branch]