@@ -1350,6 +1350,12 @@ void GLShaderManager::InitShader( GLShader* shader ) {
1350
1350
ShaderDescriptor* desc = FindShader ( shader->_name , shaderType.mainText , shaderType.GLType , shaderType.headers ,
1351
1351
uniqueMacros, compileMacros, true );
1352
1352
1353
+ if ( desc && glConfig2.pushBufferAvailable ) {
1354
+ desc->shaderSource = RemoveUniformsFromShaderText ( desc->shaderSource , shader->_pushUniforms );
1355
+
1356
+ desc->shaderSource .insert ( shaderType.offset , globalUniformBlock );
1357
+ }
1358
+
1353
1359
if ( desc && glConfig2.usingMaterialSystem && shader->_useMaterialSystem ) {
1354
1360
desc->shaderSource = ShaderPostProcess ( shader, desc->shaderSource , shaderType.offset );
1355
1361
}
@@ -1605,7 +1611,7 @@ void GLShaderManager::PostProcessGlobalUniforms() {
1605
1611
GLuint padding;
1606
1612
std::vector<GLUniform*>* uniforms = &( ( GLShader* ) globalUBOProxy )->_uniforms ;
1607
1613
std::vector<GLUniform*> constUniforms =
1608
- ProcessUniforms ( GLUniform::CONST, GLUniform::CONST, false , *uniforms, size, padding );
1614
+ ProcessUniforms ( GLUniform::CONST, GLUniform::CONST, !glConfig2. usingBindlessTextures , *uniforms, size, padding );
1609
1615
1610
1616
GenerateUniformStructDefinesText ( constUniforms, padding, 0 , " globalUniforms" , uniformStruct, uniformDefines );
1611
1617
@@ -1614,7 +1620,7 @@ void GLShaderManager::PostProcessGlobalUniforms() {
1614
1620
pushBuffer.constUniformsSize = size + padding;
1615
1621
1616
1622
std::vector<GLUniform*> frameUniforms =
1617
- ProcessUniforms ( GLUniform::FRAME, GLUniform::FRAME, false , *uniforms, size, padding );
1623
+ ProcessUniforms ( GLUniform::FRAME, GLUniform::FRAME, !glConfig2. usingBindlessTextures , *uniforms, size, padding );
1618
1624
1619
1625
GenerateUniformStructDefinesText ( frameUniforms, padding, paddingCount, " globalUniforms" , uniformStruct, uniformDefines );
1620
1626
@@ -2250,7 +2256,7 @@ void GLShader::PostProcessUniforms() {
2250
2256
if ( glConfig2.pushBufferAvailable && !pushSkip ) {
2251
2257
GLuint unused;
2252
2258
_pushUniforms = gl_shaderManager.ProcessUniforms ( GLUniform::CONST, GLUniform::FRAME,
2253
- false , _uniforms, unused, unused );
2259
+ !glConfig2. usingBindlessTextures , _uniforms, unused, unused );
2254
2260
}
2255
2261
}
2256
2262
0 commit comments