CL 2704794 2704931 2704948 2704962 2705238 2706353 2700643 2705458
Uniform Buffer layout name
and
more debug info for this and other bugs: OR-7159 CRASH: Client crashed at start of match in D3D11Commands.cpp
Adding OptionalData (key value pairs) to the shaders (to put shader name into the shader code for better debugging), affects all RHI, invalidate DDC key for all shaders, cleanup existing code (was adding 0/1/5 bytes and had to compensate in many areas)
OptionalData:
key is a char, value is up to 255 bytes, up to 64K in total
#platformnotify Josh.Adams
[CL 2706923 by Martin Mittring in Main branch]
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]