1
0
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:
Philip Rebohle 2022-07-14 19:54:14 +02:00
parent f07ba07ad8
commit 0b47297b7d
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
7 changed files with 4 additions and 30 deletions

View File

@ -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) {

View File

@ -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;

View File

@ -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,

View File

@ -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);
} }

View File

@ -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;

View File

@ -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 };

View File

@ -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);