@@ -1345,6 +1345,12 @@ void GLShaderManager::InitShader( GLShader* shader ) {
13451345 ShaderDescriptor* desc = FindShader ( shader->_name , shaderType.mainText , shaderType.GLType , shaderType.headers ,
13461346 uniqueMacros, compileMacros, true );
13471347
1348+ if ( desc && glConfig2.pushBufferAvailable ) {
1349+ desc->shaderSource = RemoveUniformsFromShaderText ( desc->shaderSource , shader->_pushUniforms );
1350+
1351+ desc->shaderSource .insert ( shaderType.offset , globalUniformBlock );
1352+ }
1353+
13481354 if ( desc && glConfig2.usingMaterialSystem && shader->_useMaterialSystem ) {
13491355 desc->shaderSource = ShaderPostProcess ( shader, desc->shaderSource , shaderType.offset );
13501356 }
@@ -1600,7 +1606,7 @@ void GLShaderManager::PostProcessGlobalUniforms() {
16001606 GLuint padding;
16011607 std::vector<GLUniform*>* uniforms = &( ( GLShader* ) globalUBOProxy )->_uniforms ;
16021608 std::vector<GLUniform*> constUniforms =
1603- ProcessUniforms ( GLUniform::CONST, GLUniform::CONST, false , *uniforms, size, padding );
1609+ ProcessUniforms ( GLUniform::CONST, GLUniform::CONST, !glConfig2. usingBindlessTextures , *uniforms, size, padding );
16041610
16051611 GenerateUniformStructDefinesText ( constUniforms, padding, 0 , " globalUniforms" , uniformStruct, uniformDefines );
16061612
@@ -1609,7 +1615,7 @@ void GLShaderManager::PostProcessGlobalUniforms() {
16091615 pushBuffer.constUniformsSize = size + padding;
16101616
16111617 std::vector<GLUniform*> frameUniforms =
1612- ProcessUniforms ( GLUniform::FRAME, GLUniform::FRAME, false , *uniforms, size, padding );
1618+ ProcessUniforms ( GLUniform::FRAME, GLUniform::FRAME, !glConfig2. usingBindlessTextures , *uniforms, size, padding );
16131619
16141620 GenerateUniformStructDefinesText ( frameUniforms, padding, paddingCount, " globalUniforms" , uniformStruct, uniformDefines );
16151621
@@ -2245,7 +2251,7 @@ void GLShader::PostProcessUniforms() {
22452251 if ( glConfig2.pushBufferAvailable && !pushSkip ) {
22462252 GLuint unused;
22472253 _pushUniforms = gl_shaderManager.ProcessUniforms ( GLUniform::CONST, GLUniform::FRAME,
2248- false , _uniforms, unused, unused );
2254+ !glConfig2. usingBindlessTextures , _uniforms, unused, unused );
22492255 }
22502256}
22512257
0 commit comments