diff --git a/src/common/rendering/hwrenderer/data/hw_renderstate.h b/src/common/rendering/hwrenderer/data/hw_renderstate.h index 334d2b5857..9e2260cfe6 100644 --- a/src/common/rendering/hwrenderer/data/hw_renderstate.h +++ b/src/common/rendering/hwrenderer/data/hw_renderstate.h @@ -741,7 +741,7 @@ public: inline void PushVisibleSurface(LevelMeshSurface* surface) { - if (surface->needsUpdate) // TODO atomic? + if (surface->needsUpdate && !surface->portalIndex && !surface->bSky) // TODO atomic? { auto index = mActiveLightmapSurfaceBufferIndex.fetch_add(1); if (index < mActiveLightmapSurfacesBuffer.Size()) diff --git a/src/rendering/hwrenderer/scene/hw_bsp.cpp b/src/rendering/hwrenderer/scene/hw_bsp.cpp index e06852e1d5..42118dc93b 100644 --- a/src/rendering/hwrenderer/scene/hw_bsp.cpp +++ b/src/rendering/hwrenderer/scene/hw_bsp.cpp @@ -869,7 +869,7 @@ void UpdateLightmaps(DFrameBuffer* screen, FRenderState& RenderState) { for (auto& e : level.levelMesh->Surfaces) { - if (e.needsUpdate && !e.bSky) + if (e.needsUpdate && !e.bSky && !e.portalIndex) { list.Push(&e);