diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index 101db97f8..f9c2bf369 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -258,8 +258,6 @@ namespace dxvk { || !required.extCustomBorderColor.customBorderColorWithoutFormat) && (m_deviceFeatures.extDepthClipEnable.depthClipEnable || !required.extDepthClipEnable.depthClipEnable) - && (m_deviceFeatures.extExtendedDynamicState.extendedDynamicState - || !required.extExtendedDynamicState.extendedDynamicState) && (m_deviceFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary || !required.extGraphicsPipelineLibrary.graphicsPipelineLibrary) && (m_deviceFeatures.extMemoryPriority.memoryPriority @@ -295,14 +293,13 @@ namespace dxvk { DxvkDeviceFeatures enabledFeatures) { DxvkDeviceExtensions devExtensions; - std::array devExtensionList = {{ + std::array devExtensionList = {{ &devExtensions.amdMemoryOverallocationBehaviour, &devExtensions.amdShaderFragmentMask, &devExtensions.ext4444Formats, &devExtensions.extConservativeRasterization, &devExtensions.extCustomBorderColor, &devExtensions.extDepthClipEnable, - &devExtensions.extExtendedDynamicState, &devExtensions.extFullScreenExclusive, &devExtensions.extGraphicsPipelineLibrary, &devExtensions.extMemoryBudget, @@ -360,8 +357,6 @@ namespace dxvk { enabledFeatures.vk13.dynamicRendering = VK_TRUE; enabledFeatures.vk13.maintenance4 = VK_TRUE; - enabledFeatures.extExtendedDynamicState.extendedDynamicState = VK_TRUE; - enabledFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary = m_deviceFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary; @@ -417,11 +412,6 @@ namespace dxvk { enabledFeatures.extDepthClipEnable.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extDepthClipEnable); } - if (devExtensions.extExtendedDynamicState) { - enabledFeatures.extExtendedDynamicState.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; - enabledFeatures.extExtendedDynamicState.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extExtendedDynamicState); - } - if (devExtensions.extGraphicsPipelineLibrary) { enabledFeatures.extGraphicsPipelineLibrary.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT; enabledFeatures.extGraphicsPipelineLibrary.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extGraphicsPipelineLibrary); @@ -722,11 +712,6 @@ namespace dxvk { m_deviceFeatures.extDepthClipEnable.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extDepthClipEnable); } - if (m_deviceExtensions.supports(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME)) { - m_deviceFeatures.extExtendedDynamicState.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; - m_deviceFeatures.extExtendedDynamicState.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extExtendedDynamicState); - } - if (m_deviceExtensions.supports(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME)) { m_deviceFeatures.extGraphicsPipelineLibrary.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT; m_deviceFeatures.extGraphicsPipelineLibrary.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extGraphicsPipelineLibrary); @@ -863,8 +848,6 @@ namespace dxvk { "\n customBorderColorWithoutFormat : ", features.extCustomBorderColor.customBorderColorWithoutFormat ? "1" : "0", "\n", VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, "\n depthClipEnable : ", features.extDepthClipEnable.depthClipEnable ? "1" : "0", - "\n", VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, - "\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_MEMORY_PRIORITY_EXTENSION_NAME, diff --git a/src/dxvk/dxvk_cmdlist.h b/src/dxvk/dxvk_cmdlist.h index 687f787eb..43267db11 100644 --- a/src/dxvk/dxvk_cmdlist.h +++ b/src/dxvk/dxvk_cmdlist.h @@ -327,20 +327,10 @@ namespace dxvk { uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, - const VkDeviceSize* pOffsets) { - m_vkd->vkCmdBindVertexBuffers(m_execBuffer, - firstBinding, bindingCount, pBuffers, pOffsets); - } - - - void cmdBindVertexBuffers2( - uint32_t firstBinding, - uint32_t bindingCount, - const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) { - m_vkd->vkCmdBindVertexBuffers2EXT(m_execBuffer, + m_vkd->vkCmdBindVertexBuffers2(m_execBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); } @@ -701,7 +691,7 @@ namespace dxvk { void cmdSetDepthBoundsState( VkBool32 depthBoundsTestEnable) { - m_vkd->vkCmdSetDepthBoundsTestEnableEXT(m_execBuffer, depthBoundsTestEnable); + m_vkd->vkCmdSetDepthBoundsTestEnable(m_execBuffer, depthBoundsTestEnable); } @@ -709,11 +699,11 @@ namespace dxvk { VkBool32 depthTestEnable, VkBool32 depthWriteEnable, VkCompareOp depthCompareOp) { - m_vkd->vkCmdSetDepthTestEnableEXT(m_execBuffer, depthTestEnable); + m_vkd->vkCmdSetDepthTestEnable(m_execBuffer, depthTestEnable); if (depthTestEnable) { - m_vkd->vkCmdSetDepthWriteEnableEXT(m_execBuffer, depthWriteEnable); - m_vkd->vkCmdSetDepthCompareOpEXT(m_execBuffer, depthCompareOp); + m_vkd->vkCmdSetDepthWriteEnable(m_execBuffer, depthWriteEnable); + m_vkd->vkCmdSetDepthCompareOp(m_execBuffer, depthCompareOp); } } @@ -728,15 +718,15 @@ namespace dxvk { void cmdSetRasterizerState( VkCullModeFlags cullMode, VkFrontFace frontFace) { - m_vkd->vkCmdSetCullModeEXT(m_execBuffer, cullMode); - m_vkd->vkCmdSetFrontFaceEXT(m_execBuffer, frontFace); + m_vkd->vkCmdSetCullMode(m_execBuffer, cullMode); + m_vkd->vkCmdSetFrontFace(m_execBuffer, frontFace); } void cmdSetScissor( uint32_t scissorCount, const VkRect2D* scissors) { - m_vkd->vkCmdSetScissorWithCountEXT( + m_vkd->vkCmdSetScissorWithCount( m_execBuffer, scissorCount, scissors); } @@ -745,11 +735,11 @@ namespace dxvk { VkBool32 enableStencilTest, const VkStencilOpState& front, const VkStencilOpState& back) { - m_vkd->vkCmdSetStencilTestEnableEXT( + m_vkd->vkCmdSetStencilTestEnable( m_execBuffer, enableStencilTest); if (enableStencilTest) { - m_vkd->vkCmdSetStencilOpEXT(m_execBuffer, + m_vkd->vkCmdSetStencilOp(m_execBuffer, VK_STENCIL_FACE_FRONT_BIT, front.failOp, front.passOp, front.depthFailOp, front.compareOp); m_vkd->vkCmdSetStencilCompareMask(m_execBuffer, @@ -757,7 +747,7 @@ namespace dxvk { m_vkd->vkCmdSetStencilWriteMask(m_execBuffer, VK_STENCIL_FACE_FRONT_BIT, front.writeMask); - m_vkd->vkCmdSetStencilOpEXT(m_execBuffer, + m_vkd->vkCmdSetStencilOp(m_execBuffer, VK_STENCIL_FACE_BACK_BIT, back.failOp, back.passOp, back.depthFailOp, back.compareOp); m_vkd->vkCmdSetStencilCompareMask(m_execBuffer, @@ -779,7 +769,7 @@ namespace dxvk { void cmdSetViewport( uint32_t viewportCount, const VkViewport* viewports) { - m_vkd->vkCmdSetViewportWithCountEXT( + m_vkd->vkCmdSetViewportWithCount( m_execBuffer, viewportCount, viewports); } diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index b364c78f7..3bbee0777 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -5073,7 +5073,7 @@ namespace dxvk { // Vertex bindigs get remapped when compiling the // pipeline, so this actually does the right thing - m_cmd->cmdBindVertexBuffers2(0, m_state.gp.state.il.bindingCount(), + m_cmd->cmdBindVertexBuffers(0, m_state.gp.state.il.bindingCount(), buffers.data(), offsets.data(), lengths.data(), nullptr); } diff --git a/src/dxvk/dxvk_device_info.h b/src/dxvk/dxvk_device_info.h index 95de74975..0555c5a80 100644 --- a/src/dxvk/dxvk_device_info.h +++ b/src/dxvk/dxvk_device_info.h @@ -41,7 +41,6 @@ namespace dxvk { VkPhysicalDevice4444FormatsFeaturesEXT ext4444Formats; VkPhysicalDeviceCustomBorderColorFeaturesEXT extCustomBorderColor; VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable; - VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extExtendedDynamicState; VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT extGraphicsPipelineLibrary; VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority; VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT extNonSeamlessCubeMap; diff --git a/src/dxvk/dxvk_extensions.h b/src/dxvk/dxvk_extensions.h index 668807a2b..324bdad4b 100644 --- a/src/dxvk/dxvk_extensions.h +++ b/src/dxvk/dxvk_extensions.h @@ -282,7 +282,6 @@ namespace dxvk { DxvkExt extConservativeRasterization = { VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt extCustomBorderColor = { VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt extDepthClipEnable = { VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, DxvkExtMode::Optional }; - 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 extMemoryBudget = { VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, DxvkExtMode::Passive }; diff --git a/src/dxvk/dxvk_graphics.cpp b/src/dxvk/dxvk_graphics.cpp index 96e8938f1..eef9e3caf 100644 --- a/src/dxvk/dxvk_graphics.cpp +++ b/src/dxvk/dxvk_graphics.cpp @@ -769,8 +769,8 @@ namespace dxvk { std::array dynamicStates; uint32_t dynamicStateCount = 0; - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT; - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT; if (state.useDynamicDepthBias()) dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BIAS; @@ -785,8 +785,8 @@ namespace dxvk { dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_REFERENCE; if (!m_flags.test(DxvkGraphicsPipelineFlag::HasRasterizerDiscard)) { - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_CULL_MODE_EXT; - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_FRONT_FACE_EXT; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_CULL_MODE; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_FRONT_FACE; } // Set up some specialization constants diff --git a/src/dxvk/dxvk_meta_blit.cpp b/src/dxvk/dxvk_meta_blit.cpp index aaf33a788..5b292752a 100644 --- a/src/dxvk/dxvk_meta_blit.cpp +++ b/src/dxvk/dxvk_meta_blit.cpp @@ -307,8 +307,8 @@ namespace dxvk { VK_SHADER_STAGE_FRAGMENT_BIT, psModule, "main" }; std::array dynStates = {{ - VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, - VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, }}; VkPipelineDynamicStateCreateInfo dynState = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO }; diff --git a/src/dxvk/dxvk_meta_copy.cpp b/src/dxvk/dxvk_meta_copy.cpp index 621ba0118..f853d923e 100644 --- a/src/dxvk/dxvk_meta_copy.cpp +++ b/src/dxvk/dxvk_meta_copy.cpp @@ -344,8 +344,8 @@ namespace dxvk { VK_SHADER_STAGE_FRAGMENT_BIT, psModule, "main" }; std::array dynStates = {{ - VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, - VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, }}; VkPipelineDynamicStateCreateInfo dynState = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO }; diff --git a/src/dxvk/dxvk_meta_resolve.cpp b/src/dxvk/dxvk_meta_resolve.cpp index c0a5e919d..9eb9ea108 100644 --- a/src/dxvk/dxvk_meta_resolve.cpp +++ b/src/dxvk/dxvk_meta_resolve.cpp @@ -257,8 +257,8 @@ namespace dxvk { VK_SHADER_STAGE_FRAGMENT_BIT, psModule, "main", &specInfo }; std::array dynStates = {{ - VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, - VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, }}; VkPipelineDynamicStateCreateInfo dynState = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO }; diff --git a/src/dxvk/dxvk_shader.cpp b/src/dxvk/dxvk_shader.cpp index 88d75a811..ece845a43 100644 --- a/src/dxvk/dxvk_shader.cpp +++ b/src/dxvk/dxvk_shader.cpp @@ -548,11 +548,11 @@ namespace dxvk { // Set up dynamic state. We do not know any pipeline state // at this time, so make as much state dynamic as we can. std::array dynamicStates = {{ - VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, - VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, VK_DYNAMIC_STATE_DEPTH_BIAS, - VK_DYNAMIC_STATE_CULL_MODE_EXT, - VK_DYNAMIC_STATE_FRONT_FACE_EXT, + VK_DYNAMIC_STATE_CULL_MODE, + VK_DYNAMIC_STATE_FRONT_FACE, }}; VkPipelineDynamicStateCreateInfo dyInfo = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO }; @@ -622,17 +622,17 @@ namespace dxvk { uint32_t dynamicStateCount = 0; std::array dynamicStates; - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT; - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT; - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP; dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK; dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK; dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_REFERENCE; - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT; - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_OP_EXT; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_OP; if (m_device->features().core.features.depthBounds) { - dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT; + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE; dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BOUNDS; } diff --git a/src/vulkan/vulkan_loader.h b/src/vulkan/vulkan_loader.h index 2e6034617..e0e221b3e 100644 --- a/src/vulkan/vulkan_loader.h +++ b/src/vulkan/vulkan_loader.h @@ -257,6 +257,21 @@ namespace dxvk::vk { VULKAN_FN(vkCmdSetStencilCompareMask); VULKAN_FN(vkCmdSetStencilWriteMask); VULKAN_FN(vkCmdSetStencilReference); + VULKAN_FN(vkCmdBindVertexBuffers2); + VULKAN_FN(vkCmdSetCullMode); + VULKAN_FN(vkCmdSetDepthBoundsTestEnable); + VULKAN_FN(vkCmdSetDepthCompareOp); + VULKAN_FN(vkCmdSetDepthTestEnable); + VULKAN_FN(vkCmdSetDepthWriteEnable); + VULKAN_FN(vkCmdSetFrontFace); + VULKAN_FN(vkCmdSetPrimitiveTopology); + VULKAN_FN(vkCmdSetScissorWithCount); + VULKAN_FN(vkCmdSetStencilOp); + VULKAN_FN(vkCmdSetStencilTestEnable); + VULKAN_FN(vkCmdSetViewportWithCount); + VULKAN_FN(vkCmdSetRasterizerDiscardEnable); + VULKAN_FN(vkCmdSetDepthBiasEnable); + VULKAN_FN(vkCmdSetPrimitiveRestartEnable); VULKAN_FN(vkCmdBindDescriptorSets); VULKAN_FN(vkCmdBindIndexBuffer); VULKAN_FN(vkCmdBindVertexBuffers); @@ -312,21 +327,6 @@ namespace dxvk::vk { VULKAN_FN(vkCmdEndConditionalRenderingEXT); #endif - #ifdef VK_EXT_extended_dynamic_state - VULKAN_FN(vkCmdBindVertexBuffers2EXT); - VULKAN_FN(vkCmdSetCullModeEXT); - VULKAN_FN(vkCmdSetDepthBoundsTestEnableEXT); - VULKAN_FN(vkCmdSetDepthCompareOpEXT); - VULKAN_FN(vkCmdSetDepthTestEnableEXT); - VULKAN_FN(vkCmdSetDepthWriteEnableEXT); - VULKAN_FN(vkCmdSetFrontFaceEXT); - VULKAN_FN(vkCmdSetPrimitiveTopologyEXT); - VULKAN_FN(vkCmdSetScissorWithCountEXT); - VULKAN_FN(vkCmdSetStencilOpEXT); - VULKAN_FN(vkCmdSetStencilTestEnableEXT); - VULKAN_FN(vkCmdSetViewportWithCountEXT); - #endif - #ifdef VK_EXT_full_screen_exclusive VULKAN_FN(vkAcquireFullScreenExclusiveModeEXT); VULKAN_FN(vkReleaseFullScreenExclusiveModeEXT);