diff --git a/src/common/rendering/hwrenderer/data/hw_renderstate.h b/src/common/rendering/hwrenderer/data/hw_renderstate.h index 4e83604f7b..2b9489a5dd 100644 --- a/src/common/rendering/hwrenderer/data/hw_renderstate.h +++ b/src/common/rendering/hwrenderer/data/hw_renderstate.h @@ -12,8 +12,6 @@ #include -EXTERN_CVAR(Int, lm_max_updates); - struct FColormap; class IBuffer; struct HWViewpointUniforms; diff --git a/src/common/rendering/vulkan/accelstructs/vk_lightmap.cpp b/src/common/rendering/vulkan/accelstructs/vk_lightmap.cpp index 73067173dd..441f46d84b 100644 --- a/src/common/rendering/vulkan/accelstructs/vk_lightmap.cpp +++ b/src/common/rendering/vulkan/accelstructs/vk_lightmap.cpp @@ -410,7 +410,7 @@ void VkLightmap::BlurBakeImage() void VkLightmap::CopyBakeImageResult() { uint32_t pixels = 0; - + lastSurfaceCount = 0; std::set seenPages; std::vector regions; for (int i = 0, count = selectedSurfaces.Size(); i < count; i++) diff --git a/src/rendering/hwrenderer/scene/hw_drawinfo.h b/src/rendering/hwrenderer/scene/hw_drawinfo.h index 6e37bcd151..1c32412381 100644 --- a/src/rendering/hwrenderer/scene/hw_drawinfo.h +++ b/src/rendering/hwrenderer/scene/hw_drawinfo.h @@ -11,6 +11,7 @@ #include "hw_drawlist.h" EXTERN_CVAR(Bool, lm_always_update); +EXTERN_CVAR(Int, lm_max_updates); enum EDrawMode { @@ -213,6 +214,10 @@ struct HWDrawInfo { surface->needsUpdate = true; } + else if (VisibleSurfaces.Size() >= lm_max_updates) + { + return; + } if (surface->needsUpdate && !surface->portalIndex && !surface->bSky) {