Corrected GLSL version for ios es2.
Fix a couple of out of bounds argv[6] reads.
#codereview Rolando.Caloca, Daniel.Wright
[CL 2521051 by Allan Bentham in Main branch]
Once SCW is recompiled this will prevent any further crashes due to incompatible DDC OpenGL shader binaries.
#codereview michael.trepka
[CL 2466401 by Mark Satterthwaite in Main branch]
Fixes PVR SGX 540 crashes in UE-5155
[Requires shader compile worker rebuild.]
codereview nick.penwarden, chris.babcock, rolando.caloca
[CL 2460254 by Allan Bentham in Main branch]
- Shaders which emit layout location data use INTERFACE_LOCATION & INTERFACE_BLOCK macros to defer to the runtime whether they can be used as separable or non-separable shaders.
- The runtime supplies the correct #define for each so that the shaders still work on platforms where the glLinkProgram implementation fails with separable shader code.
- Shader model 5 platforms (GLSL 430 or ES 3.10) which were already specifying & using layout location data continue to do so, even when using glLinkProgram.
- The 'OpenGL.UseSeparateShaderObjects' console variable allows switching between SSO/Link modes between executions, but not dynamically at runtime.
- Only defaults to on for Mac as that is the only platform which can guarantee that the extension is always available & so far the most tested platform.
- Updated hlslcc binaries are supplied for Mac, Linux & Windows.
- Added an OpenGL RHI stat for shader first draw time so that it is easy to see why hitches occur during runtime due to in-driver shader compilation.
reviewedby michael.trepka, nick.penwarden, dmitry.rekman, rolando.caloca
[CL 2435530 by Mark Satterthwaite in Main branch]
ES2 emulation now uses UBOs instead of packed uniform blocks.
Fixed issue with ogl shader compiler introducing '__' into padding variable names.
[CL 2264084 by Allan Bentham in Main branch]