From ade00add8d6af4f7ed9e51579a5fef6458598ce0 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 7 Dec 2017 19:28:54 +0100 Subject: [PATCH] [dxvk] Removed buffer stride stuff for now, we need a better solution --- src/d3d11/d3d11_context.cpp | 4 ++-- src/d3d11/d3d11_device.cpp | 6 ++++-- src/dxvk/dxvk_context.cpp | 8 +------- src/dxvk/dxvk_context.h | 3 +-- src/dxvk/dxvk_context_state.h | 2 -- 5 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index 05a940cc..5a197030 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -561,8 +561,7 @@ namespace dxvk { } m_context->bindVertexBuffer( - StartSlot + i, dxvkBinding, - binding.stride); + StartSlot + i, dxvkBinding); } } @@ -1286,6 +1285,7 @@ namespace dxvk { // TODO D3D11 docs aren't clear about what should happen // when there are undefined scissor rects for a viewport. // Figure out what it does on Windows. + // FIXME Compute correct vertical position if (enableScissorTest && (i < m_state.rs.numScissors)) { const D3D11_RECT& sr = m_state.rs.scissors.at(i); diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index 7ff225b7..d42e9657 100644 --- a/src/d3d11/d3d11_device.cpp +++ b/src/d3d11/d3d11_device.cpp @@ -373,10 +373,12 @@ namespace dxvk { attributes.push_back(attrib); - // Create vertex input binding description. + // Create vertex input binding description. The + // stride is dynamic state in D3D11 and will be + // set by D3D11DeviceContext::IASetVertexBuffers. VkVertexInputBindingDescription binding; binding.binding = pInputElementDescs[i].InputSlot; - binding.stride = 12; + binding.stride = 0; binding.inputRate = VK_VERTEX_INPUT_RATE_VERTEX; if (pInputElementDescs[i].InputSlotClass == D3D11_INPUT_PER_INSTANCE_DATA) { diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 678715cc..ddffeccf 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -183,17 +183,11 @@ namespace dxvk { void DxvkContext::bindVertexBuffer( uint32_t binding, - const DxvkBufferBinding& buffer, - uint32_t stride) { + const DxvkBufferBinding& buffer) { if (m_state.vi.vertexBuffers.at(binding) != buffer) { m_state.vi.vertexBuffers.at(binding) = buffer; m_flags.set(DxvkContextFlag::GpDirtyVertexBuffers); } - - if (m_state.vi.vertexStrides.at(binding) != stride) { - m_state.vi.vertexStrides.at(binding) = stride; - m_flags.set(DxvkContextFlag::GpDirtyPipelineState); - } } diff --git a/src/dxvk/dxvk_context.h b/src/dxvk/dxvk_context.h index 7dac9faf..9d01d86c 100644 --- a/src/dxvk/dxvk_context.h +++ b/src/dxvk/dxvk_context.h @@ -140,8 +140,7 @@ namespace dxvk { */ void bindVertexBuffer( uint32_t binding, - const DxvkBufferBinding& buffer, - uint32_t stride); + const DxvkBufferBinding& buffer); /** * \brief Clears subresources of a color image diff --git a/src/dxvk/dxvk_context_state.h b/src/dxvk/dxvk_context_state.h index e493c535..90c3b54f 100644 --- a/src/dxvk/dxvk_context_state.h +++ b/src/dxvk/dxvk_context_state.h @@ -42,8 +42,6 @@ namespace dxvk { std::array vertexBuffers; - std::array vertexStrides; };