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:
parent
f07ba07ad8
commit
0b47297b7d
@ -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) {
|
||||
|
@ -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;
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,6 @@ namespace dxvk {
|
||||
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
||||
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extExtendedDynamicState;
|
||||
VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT extGraphicsPipelineLibrary;
|
||||
VkPhysicalDeviceHostQueryResetFeaturesEXT extHostQueryReset;
|
||||
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
|
||||
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT extNonSeamlessCubeMap;
|
||||
VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT extPipelineCreationCacheControl;
|
||||
|
@ -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 };
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user