@@ -1346,6 +1346,12 @@ void GLShaderManager::InitShader( GLShader* shader ) {
13461346 ShaderDescriptor* desc = FindShader ( shader->_name , shaderType.mainText , shaderType.GLType , shaderType.headers ,
13471347 uniqueMacros, compileMacros, true );
13481348
1349+ if ( desc && glConfig2.pushBufferAvailable ) {
1350+ desc->shaderSource = RemoveUniformsFromShaderText ( desc->shaderSource , shader->_pushUniforms );
1351+
1352+ desc->shaderSource .insert ( shaderType.offset , globalUniformBlock );
1353+ }
1354+
13491355 if ( desc && glConfig2.usingMaterialSystem && shader->_useMaterialSystem ) {
13501356 desc->shaderSource = ShaderPostProcess ( shader, desc->shaderSource , shaderType.offset );
13511357 }
@@ -1601,7 +1607,7 @@ void GLShaderManager::PostProcessGlobalUniforms() {
16011607 GLuint padding;
16021608 std::vector<GLUniform*>* uniforms = &( ( GLShader* ) globalUBOProxy )->_uniforms ;
16031609 std::vector<GLUniform*> constUniforms =
1604- ProcessUniforms ( GLUniform::CONST, GLUniform::CONST, false , *uniforms, size, padding );
1610+ ProcessUniforms ( GLUniform::CONST, GLUniform::CONST, !glConfig2. usingBindlessTextures , *uniforms, size, padding );
16051611
16061612 GenerateUniformStructDefinesText ( constUniforms, padding, 0 , " globalUniforms" , uniformStruct, uniformDefines );
16071613
@@ -1610,7 +1616,7 @@ void GLShaderManager::PostProcessGlobalUniforms() {
16101616 pushBuffer.constUniformsSize = size + padding;
16111617
16121618 std::vector<GLUniform*> frameUniforms =
1613- ProcessUniforms ( GLUniform::FRAME, GLUniform::FRAME, false , *uniforms, size, padding );
1619+ ProcessUniforms ( GLUniform::FRAME, GLUniform::FRAME, !glConfig2. usingBindlessTextures , *uniforms, size, padding );
16141620
16151621 GenerateUniformStructDefinesText ( frameUniforms, padding, paddingCount, " globalUniforms" , uniformStruct, uniformDefines );
16161622
@@ -2246,7 +2252,7 @@ void GLShader::PostProcessUniforms() {
22462252 if ( glConfig2.pushBufferAvailable && !pushSkip ) {
22472253 GLuint unused;
22482254 _pushUniforms = gl_shaderManager.ProcessUniforms ( GLUniform::CONST, GLUniform::FRAME,
2249- false , _uniforms, unused, unused );
2255+ !glConfig2. usingBindlessTextures , _uniforms, unused, unused );
22502256 }
22512257}
22522258
0 commit comments