@@ -1350,6 +1350,12 @@ void GLShaderManager::InitShader( GLShader* shader ) {
13501350 ShaderDescriptor* desc = FindShader ( shader->_name , shaderType.mainText , shaderType.GLType , shaderType.headers ,
13511351 uniqueMacros, compileMacros, true );
13521352
1353+ if ( desc && glConfig2.pushBufferAvailable ) {
1354+ desc->shaderSource = RemoveUniformsFromShaderText ( desc->shaderSource , shader->_pushUniforms );
1355+
1356+ desc->shaderSource .insert ( shaderType.offset , globalUniformBlock );
1357+ }
1358+
13531359 if ( desc && glConfig2.usingMaterialSystem && shader->_useMaterialSystem ) {
13541360 desc->shaderSource = ShaderPostProcess ( shader, desc->shaderSource , shaderType.offset );
13551361 }
@@ -1605,7 +1611,7 @@ void GLShaderManager::PostProcessGlobalUniforms() {
16051611 GLuint padding;
16061612 std::vector<GLUniform*>* uniforms = &( ( GLShader* ) globalUBOProxy )->_uniforms ;
16071613 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 );
16091615
16101616 GenerateUniformStructDefinesText ( constUniforms, padding, 0 , " globalUniforms" , uniformStruct, uniformDefines );
16111617
@@ -1614,7 +1620,7 @@ void GLShaderManager::PostProcessGlobalUniforms() {
16141620 pushBuffer.constUniformsSize = size + padding;
16151621
16161622 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 );
16181624
16191625 GenerateUniformStructDefinesText ( frameUniforms, padding, paddingCount, " globalUniforms" , uniformStruct, uniformDefines );
16201626
@@ -2250,7 +2256,7 @@ void GLShader::PostProcessUniforms() {
22502256 if ( glConfig2.pushBufferAvailable && !pushSkip ) {
22512257 GLuint unused;
22522258 _pushUniforms = gl_shaderManager.ProcessUniforms ( GLUniform::CONST, GLUniform::FRAME,
2253- false , _uniforms, unused, unused );
2259+ !glConfig2. usingBindlessTextures , _uniforms, unused, unused );
22542260 }
22552261}
22562262
0 commit comments