From 2dc12aef71263cc500013f2f2b50b1c71751929e Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 31 Mar 2019 09:01:21 +0200 Subject: [PATCH] - removed the NetUpdate calls from the software renderer. These can cause highly dangerous recursions and execute play code deep inside the renderer and since the hardware renderer does not have these, there is very little point for the software renderer to retain them. --- src/rendering/polyrenderer/poly_renderer.cpp | 4 ---- src/rendering/swrenderer/line/r_renderdrawsegment.cpp | 3 --- src/rendering/swrenderer/line/r_walldraw.cpp | 3 --- src/rendering/swrenderer/plane/r_visibleplane.cpp | 2 -- src/rendering/swrenderer/scene/r_portal.cpp | 6 ------ src/rendering/swrenderer/scene/r_scene.cpp | 11 ----------- src/rendering/swrenderer/things/r_playersprite.cpp | 3 --- src/rendering/swrenderer/things/r_sprite.cpp | 3 --- 8 files changed, 35 deletions(-) diff --git a/src/rendering/polyrenderer/poly_renderer.cpp b/src/rendering/polyrenderer/poly_renderer.cpp index b928979c5..491f1b8ee 100644 --- a/src/rendering/polyrenderer/poly_renderer.cpp +++ b/src/rendering/polyrenderer/poly_renderer.cpp @@ -129,8 +129,6 @@ void PolyRenderer::RenderActorView(AActor *actor, bool drawpsprites, bool dontma PolyMaskedCycles.Reset(); PolyDrawerWaitCycles.Reset(); - NetUpdate(); - DontMapLines = dontmaplines; R_SetupFrame(Viewpoint, Viewwindow, actor); @@ -188,8 +186,6 @@ void PolyRenderer::RenderActorView(AActor *actor, bool drawpsprites, bool dontma if (Viewpoint.camera) Viewpoint.camera->renderflags = savedflags; - - NetUpdate(); } void PolyRenderer::RenderRemainingPlayerSprites() diff --git a/src/rendering/swrenderer/line/r_renderdrawsegment.cpp b/src/rendering/swrenderer/line/r_renderdrawsegment.cpp index 5758b08ee..e5ba7f769 100644 --- a/src/rendering/swrenderer/line/r_renderdrawsegment.cpp +++ b/src/rendering/swrenderer/line/r_renderdrawsegment.cpp @@ -70,9 +70,6 @@ namespace swrenderer curline = ds->curline; m3DFloor = clip3DFloor; - if (Thread->MainThread) - NetUpdate(); - frontsector = curline->frontsector; backsector = curline->backsector; diff --git a/src/rendering/swrenderer/line/r_walldraw.cpp b/src/rendering/swrenderer/line/r_walldraw.cpp index ecc143906..7ca3b6ac4 100644 --- a/src/rendering/swrenderer/line/r_walldraw.cpp +++ b/src/rendering/swrenderer/line/r_walldraw.cpp @@ -546,9 +546,6 @@ namespace swrenderer this->additive = additive; this->alpha = alpha; - if (Thread->MainThread) - NetUpdate(); - Thread->PrepareTexture(pic, DefaultRenderStyle()); // Get correct render style? Shaded won't get here. if (rw_pic->GetHeight() != 1 << rw_pic->GetHeightBits()) diff --git a/src/rendering/swrenderer/plane/r_visibleplane.cpp b/src/rendering/swrenderer/plane/r_visibleplane.cpp index 2d5cf854d..828f15bab 100644 --- a/src/rendering/swrenderer/plane/r_visibleplane.cpp +++ b/src/rendering/swrenderer/plane/r_visibleplane.cpp @@ -143,7 +143,5 @@ namespace swrenderer renderer.Render(this, xscale, yscale, alpha, additive, masked, colormap, tex); } } - if (thread->MainThread) - NetUpdate(); } } diff --git a/src/rendering/swrenderer/scene/r_portal.cpp b/src/rendering/swrenderer/scene/r_portal.cpp index eb7763bf4..c7fd72c9d 100644 --- a/src/rendering/swrenderer/scene/r_portal.cpp +++ b/src/rendering/swrenderer/scene/r_portal.cpp @@ -458,14 +458,8 @@ namespace swrenderer int prevuniq2 = CurrentPortalUniq; CurrentPortalUniq = prevuniq; - if (Thread->MainThread) - NetUpdate(); - Thread->TranslucentPass->Render(); // this is required since with portals there often will be cases when more than 80% of the view is inside a portal. - if (Thread->MainThread) - NetUpdate(); - Thread->Clip3D->LeaveSkybox(); // pop 3D floor height map CurrentPortalUniq = prevuniq2; diff --git a/src/rendering/swrenderer/scene/r_scene.cpp b/src/rendering/swrenderer/scene/r_scene.cpp index 562156112..b598f49b0 100644 --- a/src/rendering/swrenderer/scene/r_scene.cpp +++ b/src/rendering/swrenderer/scene/r_scene.cpp @@ -155,8 +155,6 @@ namespace swrenderer CameraLight::Instance()->SetCamera(MainThread()->Viewport->viewpoint, MainThread()->Viewport->RenderTarget, actor); MainThread()->Viewport->SetupFreelook(); - NetUpdate(); - this->dontmaplines = dontmaplines; R_UpdateFuzzPosFrameStart(); @@ -289,9 +287,6 @@ namespace swrenderer thread->OpaquePass->RenderScene(thread->Viewport->Level()); thread->Clip3D->ResetClip(); // reset clips (floor/ceiling) - if (thread->MainThread) - NetUpdate(); - if (viewactive) { thread->PlaneList->Render(); @@ -299,13 +294,7 @@ namespace swrenderer thread->Portal->RenderPlanePortals(); thread->Portal->RenderLinePortals(); - if (thread->MainThread) - NetUpdate(); - thread->TranslucentPass->Render(); - - if (thread->MainThread) - NetUpdate(); } DrawerThreads::Execute(thread->DrawQueue); diff --git a/src/rendering/swrenderer/things/r_playersprite.cpp b/src/rendering/swrenderer/things/r_playersprite.cpp index 94e127ad1..0aefb48a2 100644 --- a/src/rendering/swrenderer/things/r_playersprite.cpp +++ b/src/rendering/swrenderer/things/r_playersprite.cpp @@ -530,8 +530,5 @@ namespace swrenderer drawerargs.DrawMaskedColumn(thread, x, iscale, pic, frac + xiscale / 2, spryscale, sprtopscreen, sprflipvert, mfloorclip, mceilingclip, RenderStyle, false); frac += xiscale; } - - if (thread->MainThread) - NetUpdate(); } } diff --git a/src/rendering/swrenderer/things/r_sprite.cpp b/src/rendering/swrenderer/things/r_sprite.cpp index 5c00ed9fd..1ae8119c2 100644 --- a/src/rendering/swrenderer/things/r_sprite.cpp +++ b/src/rendering/swrenderer/things/r_sprite.cpp @@ -369,8 +369,5 @@ namespace swrenderer } } } - - if (thread->MainThread) - NetUpdate(); } }