diff --git a/src/common/rendering/hwrenderer/data/hw_shadowmap.cpp b/src/common/rendering/hwrenderer/data/hw_shadowmap.cpp index 9b0de864f2..c5e5fb09bb 100644 --- a/src/common/rendering/hwrenderer/data/hw_shadowmap.cpp +++ b/src/common/rendering/hwrenderer/data/hw_shadowmap.cpp @@ -98,7 +98,8 @@ bool IShadowMap::PerformUpdate() LightsProcessed = 0; LightsShadowmapped = 0; - if (gl_lights && gl_light_shadowmap && (screen->hwcaps & RFL_SHADER_STORAGE_BUFFER) && CollectLights != nullptr) + // CollectLights will be null if the calling code decides that shadowmaps are not needed. + if (CollectLights != nullptr) { UpdateCycles.Clock(); UploadAABBTree(); diff --git a/src/common/rendering/v_video.h b/src/common/rendering/v_video.h index 255cfa70cc..c9124e05f5 100644 --- a/src/common/rendering/v_video.h +++ b/src/common/rendering/v_video.h @@ -279,7 +279,6 @@ extern DFrameBuffer *screen; #define SCREENPITCH (screen->GetPitch ()) EXTERN_CVAR (Float, vid_gamma) -EXTERN_CVAR(Bool, gl_lights) // Allocates buffer screens, call before R_Init. diff --git a/src/playsim/dthinker.cpp b/src/playsim/dthinker.cpp index 4758d79948..0c8e687f18 100644 --- a/src/playsim/dthinker.cpp +++ b/src/playsim/dthinker.cpp @@ -125,7 +125,7 @@ void FThinkerCollection::RunThinkers(FLevelLocals *Level) } } while (count != 0); - if (gl_lights) + if (Level->HasDynamicLights) { for (auto light = Level->lights; light;) { @@ -154,7 +154,7 @@ void FThinkerCollection::RunThinkers(FLevelLocals *Level) } } while (count != 0); - if (Level->lights && gl_lights) + if (Level->lights && Level->HasDynamicLights) { // Also profile the internal dynamic lights, even though they are not implemented as thinkers. auto &prof = Profiles[NAME_InternalDynamicLight]; diff --git a/src/rendering/hwrenderer/hw_entrypoint.cpp b/src/rendering/hwrenderer/hw_entrypoint.cpp index 76baf862a9..475c52272a 100644 --- a/src/rendering/hwrenderer/hw_entrypoint.cpp +++ b/src/rendering/hwrenderer/hw_entrypoint.cpp @@ -108,7 +108,7 @@ sector_t* RenderViewpoint(FRenderViewpoint& mainvp, AActor* camera, IntRect* bou R_SetupFrame(mainvp, r_viewwindow, camera); - if (mainview && toscreen && !(camera->Level->flags3 & LEVEL3_NOSHADOWMAP) && gl_lights && gl_light_shadowmap && (screen->hwcaps & RFL_SHADER_STORAGE_BUFFER)) + if (mainview && toscreen && !(camera->Level->flags3 & LEVEL3_NOSHADOWMAP) && camera->Level->HasDynamicLights && gl_light_shadowmap && (screen->hwcaps & RFL_SHADER_STORAGE_BUFFER)) { screen->SetAABBTree(camera->Level->aabbTree); screen->mShadowMap.SetCollectLights([=] {