From cbaeca8f43e0b12b68042d456b48f69245be578f Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 15 Feb 2019 10:20:03 +0100 Subject: [PATCH] [d3d11] Move sType/pNext initialization for dev.features to backend There's no good reason to have this code in the D3D11 module. --- src/d3d11/d3d11_device.cpp | 11 +---------- src/dxvk/dxvk_adapter.cpp | 4 ++++ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index bacfc0854..486d616fb 100644 --- a/src/d3d11/d3d11_device.cpp +++ b/src/d3d11/d3d11_device.cpp @@ -1351,21 +1351,12 @@ namespace dxvk { DxvkDeviceFeatures supported = adapter->features(); DxvkDeviceFeatures enabled = {}; - enabled.core.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR; - enabled.core.pNext = nullptr; // Geometry shaders are used for some meta ops enabled.core.features.geometryShader = VK_TRUE; enabled.core.features.robustBufferAccess = VK_TRUE; - enabled.extMemoryPriority.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT; - enabled.extMemoryPriority.pNext = nullptr; - enabled.extMemoryPriority.memoryPriority = supported.extMemoryPriority.memoryPriority; + enabled.extMemoryPriority.memoryPriority = supported.extMemoryPriority.memoryPriority; - enabled.extTransformFeedback.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT; - enabled.extTransformFeedback.pNext = nullptr; - - enabled.extVertexAttributeDivisor.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT; - enabled.extVertexAttributeDivisor.pNext = nullptr; enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor; enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor; diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index 6e489a1a5..59234a574 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -268,19 +268,23 @@ namespace dxvk { this->logNameList(extensionNameList); // Create pNext chain for additional device features + enabledFeatures.core.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR; enabledFeatures.core.pNext = nullptr; if (devExtensions.extMemoryPriority) { + enabledFeatures.extMemoryPriority.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT; enabledFeatures.extMemoryPriority.pNext = enabledFeatures.core.pNext; enabledFeatures.core.pNext = &enabledFeatures.extMemoryPriority; } if (devExtensions.extTransformFeedback) { + enabledFeatures.extTransformFeedback.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT; enabledFeatures.extTransformFeedback.pNext = enabledFeatures.core.pNext; enabledFeatures.core.pNext = &enabledFeatures.extTransformFeedback; } if (devExtensions.extVertexAttributeDivisor.revision() >= 3) { + enabledFeatures.extVertexAttributeDivisor.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT; enabledFeatures.extVertexAttributeDivisor.pNext = enabledFeatures.core.pNext; enabledFeatures.core.pNext = &enabledFeatures.extVertexAttributeDivisor; }