mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-13 19:29:14 +01:00
[dxvk] Don't enable VK_KHR_shader_draw_parameters
Core in Vulkan 1.1.
This commit is contained in:
parent
073669b7e7
commit
4923bc20f7
@ -1903,6 +1903,8 @@ namespace dxvk {
|
||||
enabled.core.features.shaderStorageImageWriteWithoutFormat = VK_TRUE;
|
||||
enabled.core.features.depthBounds = supported.core.features.depthBounds;
|
||||
|
||||
enabled.shaderDrawParameters.shaderDrawParameters = VK_TRUE;
|
||||
|
||||
enabled.extMemoryPriority.memoryPriority = supported.extMemoryPriority.memoryPriority;
|
||||
|
||||
enabled.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation = supported.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation;
|
||||
|
@ -213,6 +213,8 @@ namespace dxvk {
|
||||
|| !required.core.features.variableMultisampleRate)
|
||||
&& (m_deviceFeatures.core.features.inheritedQueries
|
||||
|| !required.core.features.inheritedQueries)
|
||||
&& (m_deviceFeatures.shaderDrawParameters.shaderDrawParameters
|
||||
|| !required.shaderDrawParameters.shaderDrawParameters)
|
||||
&& (m_deviceFeatures.extConditionalRendering.conditionalRendering
|
||||
|| !required.extConditionalRendering.conditionalRendering)
|
||||
&& (m_deviceFeatures.extDepthClipEnable.depthClipEnable
|
||||
@ -241,7 +243,7 @@ namespace dxvk {
|
||||
DxvkDeviceFeatures enabledFeatures) {
|
||||
DxvkDeviceExtensions devExtensions;
|
||||
|
||||
std::array<DxvkExt*, 22> devExtensionList = {{
|
||||
std::array<DxvkExt*, 21> devExtensionList = {{
|
||||
&devExtensions.amdMemoryOverallocationBehaviour,
|
||||
&devExtensions.amdShaderFragmentMask,
|
||||
&devExtensions.extConditionalRendering,
|
||||
@ -262,7 +264,6 @@ namespace dxvk {
|
||||
&devExtensions.khrDriverProperties,
|
||||
&devExtensions.khrImageFormatList,
|
||||
&devExtensions.khrSamplerMirrorClampToEdge,
|
||||
&devExtensions.khrShaderDrawParameters,
|
||||
&devExtensions.khrSwapchain,
|
||||
}};
|
||||
|
||||
@ -293,46 +294,42 @@ namespace dxvk {
|
||||
enabledFeatures.core.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
|
||||
enabledFeatures.core.pNext = nullptr;
|
||||
|
||||
enabledFeatures.shaderDrawParameters.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
|
||||
enabledFeatures.shaderDrawParameters.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.shaderDrawParameters);
|
||||
|
||||
if (devExtensions.extConditionalRendering) {
|
||||
enabledFeatures.extConditionalRendering.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
|
||||
enabledFeatures.extConditionalRendering.pNext = enabledFeatures.core.pNext;
|
||||
enabledFeatures.core.pNext = &enabledFeatures.extConditionalRendering;
|
||||
enabledFeatures.extConditionalRendering.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extConditionalRendering);
|
||||
}
|
||||
|
||||
if (devExtensions.extDepthClipEnable) {
|
||||
enabledFeatures.extDepthClipEnable.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
|
||||
enabledFeatures.extDepthClipEnable.pNext = enabledFeatures.core.pNext;
|
||||
enabledFeatures.core.pNext = &enabledFeatures.extDepthClipEnable;
|
||||
enabledFeatures.extDepthClipEnable.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extDepthClipEnable);
|
||||
}
|
||||
|
||||
if (devExtensions.extHostQueryReset) {
|
||||
enabledFeatures.extHostQueryReset.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT;
|
||||
enabledFeatures.extHostQueryReset.pNext = enabledFeatures.core.pNext;
|
||||
enabledFeatures.core.pNext = &enabledFeatures.extHostQueryReset;
|
||||
enabledFeatures.extHostQueryReset.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extHostQueryReset);
|
||||
}
|
||||
|
||||
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;
|
||||
enabledFeatures.extMemoryPriority.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extMemoryPriority);
|
||||
}
|
||||
|
||||
if (devExtensions.extShaderDemoteToHelperInvocation) {
|
||||
enabledFeatures.extShaderDemoteToHelperInvocation.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT;
|
||||
enabledFeatures.extShaderDemoteToHelperInvocation.pNext = enabledFeatures.core.pNext;
|
||||
enabledFeatures.core.pNext = &enabledFeatures.extShaderDemoteToHelperInvocation;
|
||||
enabledFeatures.extShaderDemoteToHelperInvocation.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extShaderDemoteToHelperInvocation);
|
||||
}
|
||||
|
||||
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;
|
||||
enabledFeatures.extTransformFeedback.pNext = std::exchange(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;
|
||||
enabledFeatures.extVertexAttributeDivisor.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extVertexAttributeDivisor);
|
||||
}
|
||||
|
||||
// Report the desired overallocation behaviour to the driver
|
||||
@ -518,6 +515,9 @@ namespace dxvk {
|
||||
m_deviceFeatures.core.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
|
||||
m_deviceFeatures.core.pNext = nullptr;
|
||||
|
||||
m_deviceFeatures.shaderDrawParameters.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
|
||||
m_deviceFeatures.shaderDrawParameters.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.shaderDrawParameters);
|
||||
|
||||
if (m_deviceExtensions.supports(VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME)) {
|
||||
m_deviceFeatures.extConditionalRendering.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
|
||||
m_deviceFeatures.extConditionalRendering.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extConditionalRendering);
|
||||
|
@ -32,6 +32,7 @@ namespace dxvk {
|
||||
*/
|
||||
struct DxvkDeviceFeatures {
|
||||
VkPhysicalDeviceFeatures2 core;
|
||||
VkPhysicalDeviceShaderDrawParametersFeatures shaderDrawParameters;
|
||||
VkPhysicalDeviceConditionalRenderingFeaturesEXT extConditionalRendering;
|
||||
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
||||
VkPhysicalDeviceHostQueryResetFeaturesEXT extHostQueryReset;
|
||||
|
@ -278,7 +278,6 @@ namespace dxvk {
|
||||
DxvkExt khrDriverProperties = { VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt khrImageFormatList = { VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME, DxvkExtMode::Required };
|
||||
DxvkExt khrSamplerMirrorClampToEdge = { VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt khrShaderDrawParameters = { VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, DxvkExtMode::Required };
|
||||
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user