Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/engine/renderer/tr_backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2830,7 +2830,7 @@ static void RB_RenderPostProcess()

static void SetFrameUniforms() {
// This can happen with glsl_restart/vid_restart in R_SyncRenderThread()
if ( !stagingBuffer.Active() ) {
if ( !stagingBuffer.Active() || globalUBOProxy == nullptr ) {
return;
}

Expand Down
21 changes: 11 additions & 10 deletions src/engine/renderer/tr_shade.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ static void EnableAvailableFeatures()
glConfig.usingGeometryCache = glConfig.usingMaterialSystem && glConfig.geometryCacheAvailable;
}

// For shaders that require map data for compile-time values
// For shaders that require map data for compile-time values
void GLSL_InitWorldShaders() {
// make sure the render thread is stopped
R_SyncRenderThread();
Expand Down Expand Up @@ -256,11 +256,6 @@ static void GLSL_InitGPUShadersOrError()
gl_depthReductionShader->MarkProgramForBuilding();
}

if ( tr.world ) // this only happens with /glsl_restart
{
GLSL_InitWorldShaders();
}

if ( glConfig.realtimeLighting )
{
gl_shaderManager.LoadShader( gl_depthtile1Shader );
Expand Down Expand Up @@ -331,7 +326,7 @@ static void GLSL_InitGPUShadersOrError()

gl_contrastShader->MarkProgramForBuilding();
}

// portal process effect
gl_shaderManager.LoadShader( gl_portalShader );

Expand Down Expand Up @@ -384,6 +379,12 @@ static void GLSL_InitGPUShadersOrError()
gl_shaderManager.PostProcessGlobalUniforms();
gl_shaderManager.InitShaders();

// Init world shaders last so that everyhthing is already initialized.
if ( tr.world ) // this only happens with /glsl_restart
{
GLSL_InitWorldShaders();
}

if ( r_lazyShaders.Get() == 0 )
{
gl_shaderManager.BuildAll( false );
Expand Down Expand Up @@ -1447,7 +1448,7 @@ void Render_heatHaze( shaderStage_t *pStage )

// bind u_NormalMap
gl_heatHazeShader->SetUniform_NormalMapBindless(
GL_BindToTMU( 0, pStage->bundle[TB_NORMALMAP].image[0] )
GL_BindToTMU( 0, pStage->bundle[TB_NORMALMAP].image[0] )
);

if ( pStage->enableNormalMapping )
Expand All @@ -1463,7 +1464,7 @@ void Render_heatHaze( shaderStage_t *pStage )

// bind u_CurrentMap
gl_heatHazeShader->SetUniform_CurrentMapBindless(
GL_BindToTMU( 1, tr.currentRenderImage[backEnd.currentMainFBO] )
GL_BindToTMU( 1, tr.currentRenderImage[backEnd.currentMainFBO] )
);

gl_heatHazeShader->SetRequiredVertexPointers();
Expand All @@ -1473,7 +1474,7 @@ void Render_heatHaze( shaderStage_t *pStage )
// copy to foreground image
R_BindFBO( tr.mainFBO[ backEnd.currentMainFBO ] );
gl_heatHazeShader->SetUniform_CurrentMapBindless(
GL_BindToTMU( 1, tr.currentRenderImage[1 - backEnd.currentMainFBO] )
GL_BindToTMU( 1, tr.currentRenderImage[1 - backEnd.currentMainFBO] )
);
gl_heatHazeShader->SetUniform_DeformMagnitude( 0.0f );
Tess_DrawElements();
Expand Down
Loading