From 336b3858c9df85bb308dcb4721103910e1bee71a Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 19 Jul 2018 23:10:12 +0200 Subject: [PATCH] [dxvk] Relax VK_EXT_vertex_attribute_divisor requirement Nvidia 396.45 still does not support this. Nvidia, please, we need it. --- src/dxvk/dxvk_extensions.h | 2 +- src/dxvk/dxvk_graphics.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_extensions.h b/src/dxvk/dxvk_extensions.h index fa1e3f26..6630d56f 100644 --- a/src/dxvk/dxvk_extensions.h +++ b/src/dxvk/dxvk_extensions.h @@ -130,7 +130,7 @@ namespace dxvk { */ struct DxvkDeviceExtensions : public DxvkExtensionList { DxvkExtension extShaderViewportIndexLayer = { this, VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME, DxvkExtensionType::Desired }; - DxvkExtension extVertexAttributeDivisor = { this, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, DxvkExtensionType::Required }; + DxvkExtension extVertexAttributeDivisor = { this, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, DxvkExtensionType::Desired }; DxvkExtension khrDedicatedAllocation = { this, VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME, DxvkExtensionType::Required }; DxvkExtension khrDescriptorUpdateTemplate = { this, VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME, DxvkExtensionType::Required }; DxvkExtension khrGetMemoryRequirements2 = { this, VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME, DxvkExtensionType::Required }; diff --git a/src/dxvk/dxvk_graphics.cpp b/src/dxvk/dxvk_graphics.cpp index b5f41997..2877c993 100644 --- a/src/dxvk/dxvk_graphics.cpp +++ b/src/dxvk/dxvk_graphics.cpp @@ -259,6 +259,10 @@ namespace dxvk { if (viDivisorCount == 0) viInfo.pNext = viDivisorInfo.pNext; + // TODO remove this once the extension is widely supported + if (!m_device->extensions().extVertexAttributeDivisor.enabled()) + viInfo.pNext = viDivisorInfo.pNext; + VkPipelineInputAssemblyStateCreateInfo iaInfo; iaInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; iaInfo.pNext = nullptr;