@@ -207,6 +207,8 @@ void GLSL_InitWorldShaders() {
207207 // Material system shaders that are always loaded if material system is available
208208 if ( glConfig2.usingMaterialSystem ) {
209209 gl_shaderManager.LoadShader ( gl_cullShader );
210+
211+ gl_cullShader->MarkProgramForBuilding ( 0 );
210212 }
211213}
212214
@@ -240,6 +242,10 @@ static void GLSL_InitGPUShadersOrError()
240242 gl_shaderManager.LoadShader ( gl_clearSurfacesShader );
241243 gl_shaderManager.LoadShader ( gl_processSurfacesShader );
242244 gl_shaderManager.LoadShader ( gl_depthReductionShader );
245+
246+ gl_clearSurfacesShader->MarkProgramForBuilding ( 0 );
247+ gl_processSurfacesShader->MarkProgramForBuilding ( 0 );
248+ gl_depthReductionShader->MarkProgramForBuilding ( 0 );
243249 }
244250
245251 if ( tr.world ) // this only happens with /glsl_restart
@@ -267,6 +273,10 @@ static void GLSL_InitGPUShadersOrError()
267273 gl_shaderManager.LoadShader ( gl_depthtile1Shader );
268274 gl_shaderManager.LoadShader ( gl_depthtile2Shader );
269275 gl_shaderManager.LoadShader ( gl_lighttileShader );
276+
277+ gl_depthtile1Shader->MarkProgramForBuilding ( 0 );
278+ gl_depthtile2Shader->MarkProgramForBuilding ( 0 );
279+ gl_lighttileShader->MarkProgramForBuilding ( 0 );
270280 DAEMON_FALLTHROUGH;
271281 default :
272282 /* Dynamic shadowing code also needs this shader.
@@ -302,9 +312,13 @@ static void GLSL_InitGPUShadersOrError()
302312 // skybox drawing for abitrary polygons
303313 gl_shaderManager.LoadShader ( gl_skyboxShader );
304314
315+ gl_skyboxShader->MarkProgramForBuilding ( 0 );
316+
305317 if ( glConfig2.usingMaterialSystem )
306318 {
307319 gl_shaderManager.LoadShader ( gl_skyboxShaderMaterial );
320+
321+ gl_skyboxShaderMaterial->MarkProgramForBuilding ( 0 );
308322 }
309323 }
310324
@@ -320,6 +334,8 @@ static void GLSL_InitGPUShadersOrError()
320334
321335 // global fog post process effect
322336 gl_shaderManager.LoadShader ( gl_fogGlobalShader );
337+
338+ gl_fogGlobalShader->MarkProgramForBuilding ( 0 );
323339 }
324340
325341 if ( r_heatHaze->integer )
@@ -338,26 +354,38 @@ static void GLSL_InitGPUShadersOrError()
338354 // screen post process effect
339355 gl_shaderManager.LoadShader ( gl_screenShader );
340356
357+ gl_screenShader->MarkProgramForBuilding ( 0 );
358+
341359 if ( glConfig2.usingMaterialSystem )
342360 {
343361 gl_shaderManager.LoadShader ( gl_screenShaderMaterial );
362+
363+ gl_screenShaderMaterial->MarkProgramForBuilding ( 0 );
344364 }
345365
346366 // LDR bright pass filter
347367 gl_shaderManager.LoadShader ( gl_contrastShader );
368+
369+ gl_contrastShader->MarkProgramForBuilding ( 0 );
348370 }
349371
350372
351373 // portal process effect
352374 gl_shaderManager.LoadShader ( gl_portalShader );
353375
376+ gl_portalShader->MarkProgramForBuilding ( 0 );
377+
354378 // camera post process effect
355379 gl_shaderManager.LoadShader ( gl_cameraEffectsShader );
356380
381+ gl_cameraEffectsShader->MarkProgramForBuilding ( 0 );
382+
357383 if ( glConfig2.bloom || glConfig2.shadowMapping )
358384 {
359385 // gaussian blur
360386 gl_shaderManager.LoadShader ( gl_blurShader );
387+
388+ gl_blurShader->MarkProgramForBuilding ( 0 );
361389 }
362390
363391 if ( glConfig2.shadowMapping )
@@ -382,16 +410,22 @@ static void GLSL_InitGPUShadersOrError()
382410 if ( glConfig2.motionBlur )
383411 {
384412 gl_shaderManager.LoadShader ( gl_motionblurShader );
413+
414+ gl_motionblurShader->MarkProgramForBuilding ( 0 );
385415 }
386416
387417 if ( glConfig2.ssao )
388418 {
389419 gl_shaderManager.LoadShader ( gl_ssaoShader );
420+
421+ gl_ssaoShader->MarkProgramForBuilding ( 0 );
390422 }
391423
392424 if ( r_FXAA->integer != 0 )
393425 {
394426 gl_shaderManager.LoadShader ( gl_fxaaShader );
427+
428+ gl_fxaaShader->MarkProgramForBuilding ( 0 );
395429 }
396430
397431 if ( r_lazyShaders.Get () == 0 )
0 commit comments