From 738fd4f895627fdc60a3753a21ab344ca7cc24b9 Mon Sep 17 00:00:00 2001 From: Robin Kertels Date: Thu, 15 Feb 2024 00:03:55 +0100 Subject: [PATCH] [d3d9] Don't actually unbind buffers --- src/d3d9/d3d9_device.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index a5fc7f5d..76f59d1e 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -3254,6 +3254,11 @@ namespace dxvk { vbo.offset = OffsetInBytes; vbo.stride = Stride; + } else { + // D3D9 doesn't actually unbind any vertex buffer when passing null. + // Operation Flashpoint: Red River relies on this behavior. + needsUpdate = false; + vbo.offset = 0; } if (needsUpdate) @@ -3359,7 +3364,8 @@ namespace dxvk { m_state.indices = buffer; - BindIndices(); + if (buffer != nullptr) + BindIndices(); return D3D_OK; }