Skip to content

Commit 839bff7

Browse files
Fix stale reference crash.
1 parent 908ebae commit 839bff7

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

UnleashedRecomp/gpu/video.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2013,6 +2013,12 @@ static uint32_t CreateDevice(uint32_t a1, uint32_t a2, uint32_t a3, uint32_t a4,
20132013
// Move backbuffer to guest memory.
20142014
assert(!g_memory.IsInMemoryRange(g_backBuffer) && g_backBufferHolder != nullptr);
20152015
g_backBuffer = g_userHeap.AllocPhysical<GuestSurface>(std::move(*g_backBufferHolder));
2016+
2017+
// Check for stale reference. BeginCommandList() gets called before CreateDevice() which is where the assignment happens.
2018+
if (g_renderTarget == g_backBufferHolder.get()) g_renderTarget = g_backBuffer;
2019+
if (g_depthStencil == g_backBufferHolder.get()) g_depthStencil = g_backBuffer;
2020+
2021+
// Free the host backbuffer.
20162022
g_backBufferHolder = nullptr;
20172023

20182024
auto device = g_userHeap.AllocPhysical<GuestDevice>();

0 commit comments

Comments
 (0)