VK: Fixed VK_EXT_swapchain_maintenance1 missing instance exp deps, and timer query inside render pass. (#3711)

* Fixed dynamic frame vsync on RADV.

* Fix timer query inside render pass.
This commit is contained in:
Branimir Karadžić
2026-05-17 16:51:31 -07:00
committed by GitHub
parent d4c91be81d
commit de332e5937

View File

@@ -380,10 +380,12 @@ VK_IMPORT_DEVICE
EXT_line_rasterization,
EXT_memory_budget,
EXT_shader_viewport_index_layer,
EXT_surface_maintenance1,
EXT_swapchain_maintenance1,
KHR_draw_indirect_count,
KHR_fragment_shading_rate,
KHR_get_physical_device_properties2,
KHR_get_surface_capabilities2,
# if BX_PLATFORM_ANDROID
KHR_android_surface,
@@ -421,10 +423,12 @@ VK_IMPORT_DEVICE
{ "VK_EXT_line_rasterization", 1, false, false, true, Layer::Count },
{ "VK_EXT_memory_budget", 1, false, false, true, Layer::Count },
{ "VK_EXT_shader_viewport_index_layer", 1, false, false, true, Layer::Count },
{ "VK_EXT_swapchain_maintenance1", 1, false, false, false, Layer::Count },
{ "VK_EXT_surface_maintenance1", 1, false, false, true, Layer::Count },
{ "VK_EXT_swapchain_maintenance1", 1, false, false, true, Layer::Count },
{ "VK_KHR_draw_indirect_count", 1, false, false, true, Layer::Count },
{ "VK_KHR_fragment_shading_rate", 1, false, false, true, Layer::Count },
{ "VK_KHR_get_physical_device_properties2", 1, false, false, true, Layer::Count },
{ "VK_KHR_get_surface_capabilities2", 1, false, false, true, Layer::Count },
# if BX_PLATFORM_ANDROID
{ VK_KHR_ANDROID_SURFACE_EXTENSION_NAME, 1, false, false, true, Layer::Count },
# elif BX_PLATFORM_LINUX
@@ -1599,6 +1603,13 @@ VK_IMPORT_INSTANCE
bx::memCopy(&s_extension[0], &physicalDeviceExtensions[physicalDeviceIdx][0], sizeof(s_extension) );
if ( s_extension[Extension::EXT_swapchain_maintenance1].m_supported
&& (!s_extension[Extension::EXT_surface_maintenance1 ].m_supported || !s_extension[Extension::KHR_get_surface_capabilities2].m_supported)
)
{
s_extension[Extension::EXT_swapchain_maintenance1].m_supported = false;
}
m_deviceShadingRateImageProperties = {};
m_deviceShadingRateImageProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
@@ -9294,6 +9305,7 @@ retry:
if (beginRenderPass && (false
|| _render->m_view[view].m_fbh.idx != fbh.idx
|| !_render->m_view[view].m_rect.isEqual(viewState.m_rect)
|| profiler.m_enabled
) )
{
vkCmdEndRenderPass(m_commandBuffer);