From 8e116303704a4e0717972e358cd8087f80563a93 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 19 Feb 2022 13:20:36 +0100 Subject: [PATCH] [d3d11] Set zero stride when binding null vertex buffer --- src/d3d11/d3d11_context.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index 044ab4b7..412f5e81 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -3124,13 +3124,21 @@ namespace dxvk { D3D11Buffer* pBuffer, UINT Offset, UINT Stride) { - EmitCs([ - cSlotId = Slot, - cBufferSlice = pBuffer != nullptr ? pBuffer->GetBufferSlice(Offset) : DxvkBufferSlice(), - cStride = Stride - ] (DxvkContext* ctx) { - ctx->bindVertexBuffer(cSlotId, cBufferSlice, cStride); - }); + if (likely(pBuffer != nullptr)) { + EmitCs([ + cSlotId = Slot, + cBufferSlice = pBuffer->GetBufferSlice(Offset), + cStride = Stride + ] (DxvkContext* ctx) { + ctx->bindVertexBuffer(cSlotId, cBufferSlice, cStride); + }); + } else { + EmitCs([ + cSlotId = Slot + ] (DxvkContext* ctx) { + ctx->bindVertexBuffer(cSlotId, DxvkBufferSlice(), 0); + }); + } }