From ca53fe7925bf86e7d398370331d1ef655fa16c69 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 10 Mar 2018 12:11:17 +0100 Subject: [PATCH] [d3d11] Minor fixes --- src/d3d11/d3d11_context.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index 7401f0953..6e119517d 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -1721,8 +1721,7 @@ namespace dxvk { ID3D11BlendState* pBlendState, const FLOAT BlendFactor[4], UINT SampleMask) { - Com blendState = - static_cast(pBlendState); + auto blendState = static_cast(pBlendState); if (m_state.om.cbState != blendState || m_state.om.sampleMask != SampleMask) { @@ -1744,8 +1743,7 @@ namespace dxvk { void STDMETHODCALLTYPE D3D11DeviceContext::OMSetDepthStencilState( ID3D11DepthStencilState* pDepthStencilState, UINT StencilRef) { - Com depthStencilState = - static_cast(pDepthStencilState); + auto depthStencilState = static_cast(pDepthStencilState); if (m_state.om.dsState != depthStencilState) { m_state.om.dsState = depthStencilState; @@ -1816,8 +1814,7 @@ namespace dxvk { void STDMETHODCALLTYPE D3D11DeviceContext::RSSetState(ID3D11RasterizerState* pRasterizerState) { - Com rasterizerState = - static_cast(pRasterizerState); + auto rasterizerState = static_cast(pRasterizerState); if (m_state.rs.state != rasterizerState) { m_state.rs.state = rasterizerState; @@ -2173,12 +2170,14 @@ namespace dxvk { DXGI_FORMAT Format) { // As in Vulkan, the index format can be either a 32-bit // or 16-bit unsigned integer, no other formats are allowed. - VkIndexType indexType = VK_INDEX_TYPE_UINT16; + VkIndexType indexType = VK_INDEX_TYPE_UINT32; - switch (Format) { - case DXGI_FORMAT_R16_UINT: indexType = VK_INDEX_TYPE_UINT16; break; - case DXGI_FORMAT_R32_UINT: indexType = VK_INDEX_TYPE_UINT32; break; - default: Logger::err(str::format("D3D11: Invalid index format: ", Format)); + if (pBuffer != nullptr) { + switch (Format) { + case DXGI_FORMAT_R16_UINT: indexType = VK_INDEX_TYPE_UINT16; break; + case DXGI_FORMAT_R32_UINT: indexType = VK_INDEX_TYPE_UINT32; break; + default: Logger::err(str::format("D3D11: Invalid index format: ", Format)); + } } EmitCs([