From aa0b306d2eab8b1b2c7f8db36e714051fbd85330 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Mon, 11 May 2020 01:13:42 +0200 Subject: [PATCH] [d3d11] Require multiDrawIndirect feature for Feature Level 11.0 All hardware that DXVK can run on supports this, so let's just enable it. Saves some feature checks in games using Ubisoft's Anvil Next engine. --- src/d3d11/d3d11_context.cpp | 6 ++---- src/d3d11/d3d11_device.cpp | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index dad03f72..ac30c61a 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -1536,8 +1536,7 @@ namespace dxvk { auto cmdData = static_cast(m_cmdData); bool useMultiDraw = cmdData && cmdData->type == D3D11CmdType::DrawIndirectIndexed - && cmdData->offset + cmdData->count * stride == AlignedByteOffsetForArgs - && m_device->features().core.features.multiDrawIndirect; + && cmdData->offset + cmdData->count * stride == AlignedByteOffsetForArgs; if (useMultiDraw) { cmdData->count += 1; @@ -1567,8 +1566,7 @@ namespace dxvk { auto cmdData = static_cast(m_cmdData); bool useMultiDraw = cmdData && cmdData->type == D3D11CmdType::DrawIndirect - && cmdData->offset + cmdData->count * stride == AlignedByteOffsetForArgs - && m_device->features().core.features.multiDrawIndirect; + && cmdData->offset + cmdData->count * stride == AlignedByteOffsetForArgs; if (useMultiDraw) { cmdData->count += 1; diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index 1eead2c4..6877f5f3 100644 --- a/src/d3d11/d3d11_device.cpp +++ b/src/d3d11/d3d11_device.cpp @@ -1961,7 +1961,7 @@ namespace dxvk { if (featureLevel >= D3D_FEATURE_LEVEL_11_0) { enabled.core.features.drawIndirectFirstInstance = VK_TRUE; enabled.core.features.fragmentStoresAndAtomics = VK_TRUE; - enabled.core.features.multiDrawIndirect = supported.core.features.multiDrawIndirect; + enabled.core.features.multiDrawIndirect = VK_TRUE; enabled.core.features.shaderFloat64 = supported.core.features.shaderFloat64; enabled.core.features.shaderInt64 = supported.core.features.shaderInt64; enabled.core.features.shaderStorageImageReadWithoutFormat = supported.core.features.shaderStorageImageReadWithoutFormat;