mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-15 07:29:17 +01:00
[dxvk] Replace VK_EXT_shader_demote_to_helper_invocation with core feature
This commit is contained in:
parent
13425eb39b
commit
f60bdcbcbf
@ -1931,9 +1931,9 @@ namespace dxvk {
|
|||||||
|
|
||||||
enabled.vk12.samplerMirrorClampToEdge = VK_TRUE;
|
enabled.vk12.samplerMirrorClampToEdge = VK_TRUE;
|
||||||
|
|
||||||
enabled.extMemoryPriority.memoryPriority = supported.extMemoryPriority.memoryPriority;
|
enabled.vk13.shaderDemoteToHelperInvocation = supported.vk13.shaderDemoteToHelperInvocation;
|
||||||
|
|
||||||
enabled.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation = supported.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation;
|
enabled.extMemoryPriority.memoryPriority = supported.extMemoryPriority.memoryPriority;
|
||||||
|
|
||||||
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor;
|
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor;
|
||||||
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor;
|
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor;
|
||||||
|
@ -3903,9 +3903,9 @@ namespace dxvk {
|
|||||||
|
|
||||||
enabled.vk12.samplerMirrorClampToEdge = VK_TRUE;
|
enabled.vk12.samplerMirrorClampToEdge = VK_TRUE;
|
||||||
|
|
||||||
enabled.extMemoryPriority.memoryPriority = supported.extMemoryPriority.memoryPriority;
|
enabled.vk13.shaderDemoteToHelperInvocation = supported.vk13.shaderDemoteToHelperInvocation;
|
||||||
|
|
||||||
enabled.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation = supported.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation;
|
enabled.extMemoryPriority.memoryPriority = supported.extMemoryPriority.memoryPriority;
|
||||||
|
|
||||||
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor;
|
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor;
|
||||||
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor;
|
enabled.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor = supported.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor;
|
||||||
|
@ -23,7 +23,7 @@ namespace dxvk {
|
|||||||
= (devInfo.vk11.subgroupSupportedStages & VK_SHADER_STAGE_COMPUTE_BIT)
|
= (devInfo.vk11.subgroupSupportedStages & VK_SHADER_STAGE_COMPUTE_BIT)
|
||||||
&& (devInfo.vk11.subgroupSupportedOperations & VK_SUBGROUP_FEATURE_BALLOT_BIT);
|
&& (devInfo.vk11.subgroupSupportedOperations & VK_SUBGROUP_FEATURE_BALLOT_BIT);
|
||||||
useDemoteToHelperInvocation
|
useDemoteToHelperInvocation
|
||||||
= (devFeatures.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation);
|
= (devFeatures.vk13.shaderDemoteToHelperInvocation);
|
||||||
useSubgroupOpsForEarlyDiscard
|
useSubgroupOpsForEarlyDiscard
|
||||||
= (devInfo.vk11.subgroupSize >= 4)
|
= (devInfo.vk11.subgroupSize >= 4)
|
||||||
&& (devInfo.vk11.subgroupSupportedStages & VK_SHADER_STAGE_FRAGMENT_BIT)
|
&& (devInfo.vk11.subgroupSupportedStages & VK_SHADER_STAGE_FRAGMENT_BIT)
|
||||||
|
@ -15,7 +15,7 @@ namespace dxvk {
|
|||||||
const DxvkDeviceInfo& devInfo = adapter->devicePropertiesExt();
|
const DxvkDeviceInfo& devInfo = adapter->devicePropertiesExt();
|
||||||
|
|
||||||
useDemoteToHelperInvocation
|
useDemoteToHelperInvocation
|
||||||
= (devFeatures.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation);
|
= (devFeatures.vk13.shaderDemoteToHelperInvocation);
|
||||||
|
|
||||||
useSubgroupOpsForEarlyDiscard
|
useSubgroupOpsForEarlyDiscard
|
||||||
= (devInfo.vk11.subgroupSize >= 4)
|
= (devInfo.vk11.subgroupSize >= 4)
|
||||||
|
@ -291,7 +291,7 @@ namespace dxvk {
|
|||||||
DxvkDeviceFeatures enabledFeatures) {
|
DxvkDeviceFeatures enabledFeatures) {
|
||||||
DxvkDeviceExtensions devExtensions;
|
DxvkDeviceExtensions devExtensions;
|
||||||
|
|
||||||
std::array<DxvkExt*, 22> devExtensionList = {{
|
std::array<DxvkExt*, 21> devExtensionList = {{
|
||||||
&devExtensions.amdMemoryOverallocationBehaviour,
|
&devExtensions.amdMemoryOverallocationBehaviour,
|
||||||
&devExtensions.amdShaderFragmentMask,
|
&devExtensions.amdShaderFragmentMask,
|
||||||
&devExtensions.ext4444Formats,
|
&devExtensions.ext4444Formats,
|
||||||
@ -304,7 +304,6 @@ namespace dxvk {
|
|||||||
&devExtensions.extMemoryPriority,
|
&devExtensions.extMemoryPriority,
|
||||||
&devExtensions.extNonSeamlessCubeMap,
|
&devExtensions.extNonSeamlessCubeMap,
|
||||||
&devExtensions.extRobustness2,
|
&devExtensions.extRobustness2,
|
||||||
&devExtensions.extShaderDemoteToHelperInvocation,
|
|
||||||
&devExtensions.extShaderModuleIdentifier,
|
&devExtensions.extShaderModuleIdentifier,
|
||||||
&devExtensions.extShaderStencilExport,
|
&devExtensions.extShaderStencilExport,
|
||||||
&devExtensions.extTransformFeedback,
|
&devExtensions.extTransformFeedback,
|
||||||
@ -421,11 +420,6 @@ namespace dxvk {
|
|||||||
enabledFeatures.extNonSeamlessCubeMap.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extNonSeamlessCubeMap);
|
enabledFeatures.extNonSeamlessCubeMap.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extNonSeamlessCubeMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (devExtensions.extShaderDemoteToHelperInvocation) {
|
|
||||||
enabledFeatures.extShaderDemoteToHelperInvocation.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT;
|
|
||||||
enabledFeatures.extShaderDemoteToHelperInvocation.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extShaderDemoteToHelperInvocation);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (devExtensions.extShaderModuleIdentifier) {
|
if (devExtensions.extShaderModuleIdentifier) {
|
||||||
enabledFeatures.extShaderModuleIdentifier.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
|
enabledFeatures.extShaderModuleIdentifier.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
|
||||||
enabledFeatures.extShaderModuleIdentifier.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extShaderModuleIdentifier);
|
enabledFeatures.extShaderModuleIdentifier.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extShaderModuleIdentifier);
|
||||||
@ -721,11 +715,6 @@ namespace dxvk {
|
|||||||
m_deviceFeatures.extRobustness2.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extRobustness2);
|
m_deviceFeatures.extRobustness2.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extRobustness2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME)) {
|
|
||||||
m_deviceFeatures.extShaderDemoteToHelperInvocation.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT;
|
|
||||||
m_deviceFeatures.extShaderDemoteToHelperInvocation.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extShaderDemoteToHelperInvocation);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME)) {
|
if (m_deviceExtensions.supports(VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME)) {
|
||||||
m_deviceFeatures.extShaderModuleIdentifier.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
|
m_deviceFeatures.extShaderModuleIdentifier.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
|
||||||
m_deviceFeatures.extShaderModuleIdentifier.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extShaderModuleIdentifier);
|
m_deviceFeatures.extShaderModuleIdentifier.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extShaderModuleIdentifier);
|
||||||
@ -842,8 +831,6 @@ namespace dxvk {
|
|||||||
"\n robustBufferAccess2 : ", features.extRobustness2.robustBufferAccess2 ? "1" : "0",
|
"\n robustBufferAccess2 : ", features.extRobustness2.robustBufferAccess2 ? "1" : "0",
|
||||||
"\n robustImageAccess2 : ", features.extRobustness2.robustImageAccess2 ? "1" : "0",
|
"\n robustImageAccess2 : ", features.extRobustness2.robustImageAccess2 ? "1" : "0",
|
||||||
"\n nullDescriptor : ", features.extRobustness2.nullDescriptor ? "1" : "0",
|
"\n nullDescriptor : ", features.extRobustness2.nullDescriptor ? "1" : "0",
|
||||||
"\n", VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME,
|
|
||||||
"\n shaderDemoteToHelperInvocation : ", features.extShaderDemoteToHelperInvocation.shaderDemoteToHelperInvocation ? "1" : "0",
|
|
||||||
"\n", VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME,
|
"\n", VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME,
|
||||||
"\n shaderModuleIdentifier : ", features.extShaderModuleIdentifier.shaderModuleIdentifier ? "1" : "0",
|
"\n shaderModuleIdentifier : ", features.extShaderModuleIdentifier.shaderModuleIdentifier ? "1" : "0",
|
||||||
"\n", VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME,
|
"\n", VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME,
|
||||||
|
@ -45,7 +45,6 @@ namespace dxvk {
|
|||||||
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
|
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
|
||||||
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT extNonSeamlessCubeMap;
|
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT extNonSeamlessCubeMap;
|
||||||
VkPhysicalDeviceRobustness2FeaturesEXT extRobustness2;
|
VkPhysicalDeviceRobustness2FeaturesEXT extRobustness2;
|
||||||
VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT extShaderDemoteToHelperInvocation;
|
|
||||||
VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT extShaderModuleIdentifier;
|
VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT extShaderModuleIdentifier;
|
||||||
VkPhysicalDeviceTransformFeedbackFeaturesEXT extTransformFeedback;
|
VkPhysicalDeviceTransformFeedbackFeaturesEXT extTransformFeedback;
|
||||||
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT extVertexAttributeDivisor;
|
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT extVertexAttributeDivisor;
|
||||||
|
@ -288,7 +288,6 @@ namespace dxvk {
|
|||||||
DxvkExt extMemoryPriority = { VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extMemoryPriority = { VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extNonSeamlessCubeMap = { VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extNonSeamlessCubeMap = { VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extRobustness2 = { VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, DxvkExtMode::Required };
|
DxvkExt extRobustness2 = { VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, DxvkExtMode::Required };
|
||||||
DxvkExt extShaderDemoteToHelperInvocation = { VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, DxvkExtMode::Optional };
|
|
||||||
DxvkExt extShaderModuleIdentifier = { VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extShaderModuleIdentifier = { VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extShaderStencilExport = { VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extShaderStencilExport = { VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extTransformFeedback = { VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extTransformFeedback = { VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user