mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-29 04:06:24 +01:00
[dxvk] Replace VK_EXT_host_query_reset with core feature
And make it a hard requirement in the backend. We no longer support the old fallback path for queries anyway.
This commit is contained in:
parent
f07ba07ad8
commit
0b47297b7d
@ -1952,7 +1952,6 @@ namespace dxvk {
|
|||||||
enabled.core.features.shaderCullDistance = VK_TRUE;
|
enabled.core.features.shaderCullDistance = VK_TRUE;
|
||||||
enabled.core.features.textureCompressionBC = VK_TRUE;
|
enabled.core.features.textureCompressionBC = VK_TRUE;
|
||||||
enabled.extDepthClipEnable.depthClipEnable = supported.extDepthClipEnable.depthClipEnable;
|
enabled.extDepthClipEnable.depthClipEnable = supported.extDepthClipEnable.depthClipEnable;
|
||||||
enabled.extHostQueryReset.hostQueryReset = VK_TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (featureLevel >= D3D_FEATURE_LEVEL_9_2) {
|
if (featureLevel >= D3D_FEATURE_LEVEL_9_2) {
|
||||||
|
@ -3931,7 +3931,6 @@ namespace dxvk {
|
|||||||
enabled.core.features.textureCompressionBC = VK_TRUE;
|
enabled.core.features.textureCompressionBC = VK_TRUE;
|
||||||
|
|
||||||
enabled.extDepthClipEnable.depthClipEnable = supported.extDepthClipEnable.depthClipEnable;
|
enabled.extDepthClipEnable.depthClipEnable = supported.extDepthClipEnable.depthClipEnable;
|
||||||
enabled.extHostQueryReset.hostQueryReset = VK_TRUE;
|
|
||||||
|
|
||||||
// SM2 level hardware
|
// SM2 level hardware
|
||||||
enabled.core.features.occlusionQueryPrecise = VK_TRUE;
|
enabled.core.features.occlusionQueryPrecise = VK_TRUE;
|
||||||
|
@ -250,8 +250,6 @@ namespace dxvk {
|
|||||||
|| !required.extExtendedDynamicState.extendedDynamicState)
|
|| !required.extExtendedDynamicState.extendedDynamicState)
|
||||||
&& (m_deviceFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary
|
&& (m_deviceFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary
|
||||||
|| !required.extGraphicsPipelineLibrary.graphicsPipelineLibrary)
|
|| !required.extGraphicsPipelineLibrary.graphicsPipelineLibrary)
|
||||||
&& (m_deviceFeatures.extHostQueryReset.hostQueryReset
|
|
||||||
|| !required.extHostQueryReset.hostQueryReset)
|
|
||||||
&& (m_deviceFeatures.extMemoryPriority.memoryPriority
|
&& (m_deviceFeatures.extMemoryPriority.memoryPriority
|
||||||
|| !required.extMemoryPriority.memoryPriority)
|
|| !required.extMemoryPriority.memoryPriority)
|
||||||
&& (m_deviceFeatures.extNonSeamlessCubeMap.nonSeamlessCubeMap
|
&& (m_deviceFeatures.extNonSeamlessCubeMap.nonSeamlessCubeMap
|
||||||
@ -285,7 +283,7 @@ namespace dxvk {
|
|||||||
DxvkDeviceFeatures enabledFeatures) {
|
DxvkDeviceFeatures enabledFeatures) {
|
||||||
DxvkDeviceExtensions devExtensions;
|
DxvkDeviceExtensions devExtensions;
|
||||||
|
|
||||||
std::array<DxvkExt*, 33> devExtensionList = {{
|
std::array<DxvkExt*, 32> devExtensionList = {{
|
||||||
&devExtensions.amdMemoryOverallocationBehaviour,
|
&devExtensions.amdMemoryOverallocationBehaviour,
|
||||||
&devExtensions.amdShaderFragmentMask,
|
&devExtensions.amdShaderFragmentMask,
|
||||||
&devExtensions.ext4444Formats,
|
&devExtensions.ext4444Formats,
|
||||||
@ -295,7 +293,6 @@ namespace dxvk {
|
|||||||
&devExtensions.extExtendedDynamicState,
|
&devExtensions.extExtendedDynamicState,
|
||||||
&devExtensions.extFullScreenExclusive,
|
&devExtensions.extFullScreenExclusive,
|
||||||
&devExtensions.extGraphicsPipelineLibrary,
|
&devExtensions.extGraphicsPipelineLibrary,
|
||||||
&devExtensions.extHostQueryReset,
|
|
||||||
&devExtensions.extMemoryBudget,
|
&devExtensions.extMemoryBudget,
|
||||||
&devExtensions.extMemoryPriority,
|
&devExtensions.extMemoryPriority,
|
||||||
&devExtensions.extNonSeamlessCubeMap,
|
&devExtensions.extNonSeamlessCubeMap,
|
||||||
@ -351,6 +348,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
// Enable additional device features if supported
|
// Enable additional device features if supported
|
||||||
enabledFeatures.vk12.drawIndirectCount = m_deviceFeatures.vk12.drawIndirectCount;
|
enabledFeatures.vk12.drawIndirectCount = m_deviceFeatures.vk12.drawIndirectCount;
|
||||||
|
enabledFeatures.vk12.hostQueryReset = VK_TRUE;
|
||||||
|
|
||||||
enabledFeatures.extExtendedDynamicState.extendedDynamicState = VK_TRUE;
|
enabledFeatures.extExtendedDynamicState.extendedDynamicState = VK_TRUE;
|
||||||
|
|
||||||
@ -418,11 +416,6 @@ namespace dxvk {
|
|||||||
enabledFeatures.extGraphicsPipelineLibrary.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extGraphicsPipelineLibrary);
|
enabledFeatures.extGraphicsPipelineLibrary.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extGraphicsPipelineLibrary);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (devExtensions.extHostQueryReset) {
|
|
||||||
enabledFeatures.extHostQueryReset.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT;
|
|
||||||
enabledFeatures.extHostQueryReset.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extHostQueryReset);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (devExtensions.extMemoryPriority) {
|
if (devExtensions.extMemoryPriority) {
|
||||||
enabledFeatures.extMemoryPriority.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
|
enabledFeatures.extMemoryPriority.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
|
||||||
enabledFeatures.extMemoryPriority.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extMemoryPriority);
|
enabledFeatures.extMemoryPriority.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extMemoryPriority);
|
||||||
@ -463,11 +456,6 @@ namespace dxvk {
|
|||||||
enabledFeatures.extVertexAttributeDivisor.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extVertexAttributeDivisor);
|
enabledFeatures.extVertexAttributeDivisor.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extVertexAttributeDivisor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (devExtensions.khrBufferDeviceAddress) {
|
|
||||||
enabledFeatures.khrBufferDeviceAddress.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR;
|
|
||||||
enabledFeatures.khrBufferDeviceAddress.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.khrBufferDeviceAddress);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (devExtensions.khrDynamicRendering) {
|
if (devExtensions.khrDynamicRendering) {
|
||||||
enabledFeatures.khrDynamicRendering.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR;
|
enabledFeatures.khrDynamicRendering.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR;
|
||||||
enabledFeatures.khrDynamicRendering.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.khrDynamicRendering);
|
enabledFeatures.khrDynamicRendering.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.khrDynamicRendering);
|
||||||
@ -754,11 +742,6 @@ namespace dxvk {
|
|||||||
m_deviceFeatures.extGraphicsPipelineLibrary.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extGraphicsPipelineLibrary);
|
m_deviceFeatures.extGraphicsPipelineLibrary.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extGraphicsPipelineLibrary);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME)) {
|
|
||||||
m_deviceFeatures.extHostQueryReset.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT;
|
|
||||||
m_deviceFeatures.extHostQueryReset.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extHostQueryReset);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME)) {
|
if (m_deviceExtensions.supports(VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME)) {
|
||||||
m_deviceFeatures.extMemoryPriority.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
|
m_deviceFeatures.extMemoryPriority.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
|
||||||
m_deviceFeatures.extMemoryPriority.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extMemoryPriority);
|
m_deviceFeatures.extMemoryPriority.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extMemoryPriority);
|
||||||
@ -897,8 +880,6 @@ namespace dxvk {
|
|||||||
"\n extendedDynamicState : ", features.extExtendedDynamicState.extendedDynamicState ? "1" : "0",
|
"\n extendedDynamicState : ", features.extExtendedDynamicState.extendedDynamicState ? "1" : "0",
|
||||||
"\n", VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME,
|
"\n", VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME,
|
||||||
"\n graphicsPipelineLibrary : ", features.extGraphicsPipelineLibrary.graphicsPipelineLibrary ? "1" : "0",
|
"\n graphicsPipelineLibrary : ", features.extGraphicsPipelineLibrary.graphicsPipelineLibrary ? "1" : "0",
|
||||||
"\n", VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME,
|
|
||||||
"\n hostQueryReset : ", features.extHostQueryReset.hostQueryReset ? "1" : "0",
|
|
||||||
"\n", VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME,
|
"\n", VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME,
|
||||||
"\n memoryPriority : ", features.extMemoryPriority.memoryPriority ? "1" : "0",
|
"\n memoryPriority : ", features.extMemoryPriority.memoryPriority ? "1" : "0",
|
||||||
"\n", VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME,
|
"\n", VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME,
|
||||||
|
@ -801,7 +801,7 @@ namespace dxvk {
|
|||||||
void resetQuery(
|
void resetQuery(
|
||||||
VkQueryPool queryPool,
|
VkQueryPool queryPool,
|
||||||
uint32_t queryId) {
|
uint32_t queryId) {
|
||||||
m_vkd->vkResetQueryPoolEXT(
|
m_vkd->vkResetQueryPool(
|
||||||
m_vkd->device(), queryPool, queryId, 1);
|
m_vkd->device(), queryPool, queryId, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,6 @@ namespace dxvk {
|
|||||||
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
||||||
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extExtendedDynamicState;
|
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extExtendedDynamicState;
|
||||||
VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT extGraphicsPipelineLibrary;
|
VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT extGraphicsPipelineLibrary;
|
||||||
VkPhysicalDeviceHostQueryResetFeaturesEXT extHostQueryReset;
|
|
||||||
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
|
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
|
||||||
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT extNonSeamlessCubeMap;
|
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT extNonSeamlessCubeMap;
|
||||||
VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT extPipelineCreationCacheControl;
|
VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT extPipelineCreationCacheControl;
|
||||||
|
@ -285,7 +285,6 @@ namespace dxvk {
|
|||||||
DxvkExt extExtendedDynamicState = { VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, DxvkExtMode::Required };
|
DxvkExt extExtendedDynamicState = { VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, DxvkExtMode::Required };
|
||||||
DxvkExt extFullScreenExclusive = { VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extFullScreenExclusive = { VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extGraphicsPipelineLibrary = { VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extGraphicsPipelineLibrary = { VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extHostQueryReset = { VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, DxvkExtMode::Optional };
|
|
||||||
DxvkExt extMemoryBudget = { VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, DxvkExtMode::Passive };
|
DxvkExt extMemoryBudget = { VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, DxvkExtMode::Passive };
|
||||||
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 };
|
||||||
|
@ -244,6 +244,7 @@ namespace dxvk::vk {
|
|||||||
VULKAN_FN(vkCreateDescriptorUpdateTemplate);
|
VULKAN_FN(vkCreateDescriptorUpdateTemplate);
|
||||||
VULKAN_FN(vkDestroyDescriptorUpdateTemplate);
|
VULKAN_FN(vkDestroyDescriptorUpdateTemplate);
|
||||||
VULKAN_FN(vkUpdateDescriptorSetWithTemplate);
|
VULKAN_FN(vkUpdateDescriptorSetWithTemplate);
|
||||||
|
VULKAN_FN(vkResetQueryPool);
|
||||||
VULKAN_FN(vkCmdBindPipeline);
|
VULKAN_FN(vkCmdBindPipeline);
|
||||||
VULKAN_FN(vkCmdSetViewport);
|
VULKAN_FN(vkCmdSetViewport);
|
||||||
VULKAN_FN(vkCmdSetScissor);
|
VULKAN_FN(vkCmdSetScissor);
|
||||||
@ -332,10 +333,6 @@ namespace dxvk::vk {
|
|||||||
VULKAN_FN(vkGetDeviceGroupSurfacePresentModes2EXT);
|
VULKAN_FN(vkGetDeviceGroupSurfacePresentModes2EXT);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef VK_EXT_host_query_reset
|
|
||||||
VULKAN_FN(vkResetQueryPoolEXT);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef VK_EXT_shader_module_identifier
|
#ifdef VK_EXT_shader_module_identifier
|
||||||
VULKAN_FN(vkGetShaderModuleCreateInfoIdentifierEXT);
|
VULKAN_FN(vkGetShaderModuleCreateInfoIdentifierEXT);
|
||||||
VULKAN_FN(vkGetShaderModuleIdentifierEXT);
|
VULKAN_FN(vkGetShaderModuleIdentifierEXT);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user