1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-21 21:57:39 +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.textureCompressionBC = VK_TRUE;
enabled.extDepthClipEnable.depthClipEnable = supported.extDepthClipEnable.depthClipEnable;
enabled.extHostQueryReset.hostQueryReset = VK_TRUE;
}
if (featureLevel >= D3D_FEATURE_LEVEL_9_2) {

View File

@ -3931,7 +3931,6 @@ namespace dxvk {
enabled.core.features.textureCompressionBC = VK_TRUE;
enabled.extDepthClipEnable.depthClipEnable = supported.extDepthClipEnable.depthClipEnable;
enabled.extHostQueryReset.hostQueryReset = VK_TRUE;
// SM2 level hardware
enabled.core.features.occlusionQueryPrecise = VK_TRUE;

View File

@ -250,8 +250,6 @@ namespace dxvk {
|| !required.extExtendedDynamicState.extendedDynamicState)
&& (m_deviceFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary
|| !required.extGraphicsPipelineLibrary.graphicsPipelineLibrary)
&& (m_deviceFeatures.extHostQueryReset.hostQueryReset
|| !required.extHostQueryReset.hostQueryReset)
&& (m_deviceFeatures.extMemoryPriority.memoryPriority
|| !required.extMemoryPriority.memoryPriority)
&& (m_deviceFeatures.extNonSeamlessCubeMap.nonSeamlessCubeMap
@ -285,7 +283,7 @@ namespace dxvk {
DxvkDeviceFeatures enabledFeatures) {
DxvkDeviceExtensions devExtensions;
std::array<DxvkExt*, 33> devExtensionList = {{
std::array<DxvkExt*, 32> devExtensionList = {{
&devExtensions.amdMemoryOverallocationBehaviour,
&devExtensions.amdShaderFragmentMask,
&devExtensions.ext4444Formats,
@ -295,7 +293,6 @@ namespace dxvk {
&devExtensions.extExtendedDynamicState,
&devExtensions.extFullScreenExclusive,
&devExtensions.extGraphicsPipelineLibrary,
&devExtensions.extHostQueryReset,
&devExtensions.extMemoryBudget,
&devExtensions.extMemoryPriority,
&devExtensions.extNonSeamlessCubeMap,
@ -351,6 +348,7 @@ namespace dxvk {
// Enable additional device features if supported
enabledFeatures.vk12.drawIndirectCount = m_deviceFeatures.vk12.drawIndirectCount;
enabledFeatures.vk12.hostQueryReset = VK_TRUE;
enabledFeatures.extExtendedDynamicState.extendedDynamicState = VK_TRUE;
@ -418,11 +416,6 @@ namespace dxvk {
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) {
enabledFeatures.extMemoryPriority.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
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);
}
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) {
enabledFeatures.khrDynamicRendering.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR;
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);
}
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)) {
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);
@ -897,8 +880,6 @@ namespace dxvk {
"\n extendedDynamicState : ", features.extExtendedDynamicState.extendedDynamicState ? "1" : "0",
"\n", VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME,
"\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 memoryPriority : ", features.extMemoryPriority.memoryPriority ? "1" : "0",
"\n", VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME,

View File

@ -801,7 +801,7 @@ namespace dxvk {
void resetQuery(
VkQueryPool queryPool,
uint32_t queryId) {
m_vkd->vkResetQueryPoolEXT(
m_vkd->vkResetQueryPool(
m_vkd->device(), queryPool, queryId, 1);
}

View File

@ -44,7 +44,6 @@ namespace dxvk {
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extExtendedDynamicState;
VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT extGraphicsPipelineLibrary;
VkPhysicalDeviceHostQueryResetFeaturesEXT extHostQueryReset;
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT extNonSeamlessCubeMap;
VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT extPipelineCreationCacheControl;

View File

@ -285,7 +285,6 @@ namespace dxvk {
DxvkExt extExtendedDynamicState = { VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, DxvkExtMode::Required };
DxvkExt extFullScreenExclusive = { VK_EXT_FULL_SCREEN_EXCLUSIVE_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 extMemoryPriority = { VK_EXT_MEMORY_PRIORITY_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(vkDestroyDescriptorUpdateTemplate);
VULKAN_FN(vkUpdateDescriptorSetWithTemplate);
VULKAN_FN(vkResetQueryPool);
VULKAN_FN(vkCmdBindPipeline);
VULKAN_FN(vkCmdSetViewport);
VULKAN_FN(vkCmdSetScissor);
@ -332,10 +333,6 @@ namespace dxvk::vk {
VULKAN_FN(vkGetDeviceGroupSurfacePresentModes2EXT);
#endif
#ifdef VK_EXT_host_query_reset
VULKAN_FN(vkResetQueryPoolEXT);
#endif
#ifdef VK_EXT_shader_module_identifier
VULKAN_FN(vkGetShaderModuleCreateInfoIdentifierEXT);
VULKAN_FN(vkGetShaderModuleIdentifierEXT);