From 5f46b32616b1457bdb58d972cf5b32fae5e7b9a3 Mon Sep 17 00:00:00 2001 From: vlj Date: Fri, 5 Jun 2015 23:27:43 +0200 Subject: [PATCH] d3d12: Use instancing to pass constant vertex attribute Maybe a bit hackish but it works. --- rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp index 9a5ea9c234..8e07aab7b4 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp +++ b/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp @@ -109,6 +109,8 @@ std::vector getIALayout(ID3D12Device *device, const st IAElement.InputSlot = (UINT)inputSlot; IAElement.Format = getFormat(vertexData.type - 1, vertexData.size); IAElement.AlignedByteOffset = (UINT)(vertexData.addr - vertexBufferFormat[inputSlot].range.first); + IAElement.InputSlotClass = (vertexData.addr > 0) ? D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA : D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA; + IAElement.InstanceDataStepRate = (vertexData.addr > 0) ? 0 : 0; result.push_back(IAElement); } }