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; }