You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Fix for crash with landscapes when using -rhivalidation. Ensures that the RHIBuffer is held for the life of the frame because not all RHI backends will have the SRV maintain a hard reference to the source buffer
#jira UE-143221 #rb mihnea.balta #preflight 621fcf56e15c51d8c50b9b9a #lockdown michal.valient #ROBOMERGE-AUTHOR: rob.krajcarski #ROBOMERGE-SOURCE: CL 19228270 in //UE5/Release-5.0/... via CL 19229143 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845) [CL 19231609 by rob krajcarski in ue5-main branch]
This commit is contained in:
@@ -1091,11 +1091,11 @@ void FLandscapeSceneViewExtension::PreRenderView_RenderThread(FRHICommandListImm
|
||||
}
|
||||
|
||||
FRHIResourceCreateInfo CreateInfoLODBuffer(TEXT("LandscapeLODDataBuffer"), &LandscapeLODData);
|
||||
FBufferRHIRef LandscapeLODDataBuffer = RHICreateVertexBuffer(LandscapeLODData.GetResourceDataSize(), BUF_ShaderResource | BUF_Volatile, CreateInfoLODBuffer);
|
||||
LandscapeLODDataBuffer = RHICreateVertexBuffer(LandscapeLODData.GetResourceDataSize(), BUF_ShaderResource | BUF_Volatile, CreateInfoLODBuffer);
|
||||
LODDataSRV = RHICreateShaderResourceView(LandscapeLODDataBuffer, sizeof(float), PF_R32_FLOAT);
|
||||
|
||||
FRHIResourceCreateInfo CreateInfoIndirection(TEXT("LandscapeIndirectionBuffer"), &LandscapeIndirection);
|
||||
FBufferRHIRef LandscapeIndirectionBuffer = RHICreateVertexBuffer(LandscapeIndirection.GetResourceDataSize(), BUF_ShaderResource | BUF_Volatile, CreateInfoIndirection);
|
||||
LandscapeIndirectionBuffer = RHICreateVertexBuffer(LandscapeIndirection.GetResourceDataSize(), BUF_ShaderResource | BUF_Volatile, CreateInfoIndirection);
|
||||
IndirectionSRV = RHICreateShaderResourceView(LandscapeIndirectionBuffer, sizeof(uint32), PF_R32_UINT);
|
||||
}
|
||||
else
|
||||
@@ -1116,6 +1116,9 @@ void FLandscapeSceneViewExtension::EndFrame_RenderThread()
|
||||
|
||||
RenderSystem.EndFrame();
|
||||
}
|
||||
|
||||
LandscapeLODDataBuffer = FBufferRHIRef();
|
||||
LandscapeIndirectionBuffer = FBufferRHIRef();
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -497,6 +497,10 @@ public:
|
||||
|
||||
virtual void PreRenderViewFamily_RenderThread(FRHICommandListImmediate& RHICmdList, FSceneViewFamily& InViewFamily) override;
|
||||
virtual void PreRenderView_RenderThread(FRHICommandListImmediate& RHICmdList, FSceneView& InView) override;
|
||||
|
||||
private:
|
||||
FBufferRHIRef LandscapeLODDataBuffer;
|
||||
FBufferRHIRef LandscapeIndirectionBuffer;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user