diff --git a/.pick_status.json b/.pick_status.json index b8d647308cb..d0577fcb4e0 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -854,7 +854,7 @@ "description": "vulkan: fix missing presentId2/presentWait2 enable features", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "07881b085e6742e3664671cbe09b4220dbb56308", "notes": null diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index d0f958fcd1a..ffb1a57830c 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -1376,6 +1376,12 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc /* VK_KHR_video_encode_av1 */ .videoEncodeAV1 = true, + + /* VK_KHR_present_id2 */ + .presentId2 = true, + + /* VK_KHR_present_wait2 */ + .presentWait2 = true, }; } diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index f41922c814d..0d82cd65bf7 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -510,6 +510,12 @@ get_features(const struct v3dv_physical_device *physical_device, #ifdef V3DV_USE_WSI_PLATFORM /* VK_EXT_swapchain_maintenance1 */ .swapchainMaintenance1 = true, + + /* VK_KHR_present_id2 */ + .presentId2 = true, + + /* VK_KHR_present_wait2 */ + .presentWait2 = true, #endif /* VK_KHR_shader_relaxed_extended_instruction */ diff --git a/src/freedreno/vulkan/tu_device.cc b/src/freedreno/vulkan/tu_device.cc index 0316928a202..2c72aff780d 100644 --- a/src/freedreno/vulkan/tu_device.cc +++ b/src/freedreno/vulkan/tu_device.cc @@ -754,6 +754,12 @@ tu_get_features(struct tu_physical_device *pdevice, #ifdef TU_USE_WSI_PLATFORM /* VK_EXT_swapchain_maintenance1 */ features->swapchainMaintenance1 = true; + + /* VK_KHR_present_id2 */ + features->presentId2 = true; + + /* VK_KHR_present_wait2 */ + features->presentWait2 = true; #endif /* VK_EXT_texel_buffer_alignment */ diff --git a/src/imagination/vulkan/pvr_device.c b/src/imagination/vulkan/pvr_device.c index 7e80e0d1979..41c3a65863f 100644 --- a/src/imagination/vulkan/pvr_device.c +++ b/src/imagination/vulkan/pvr_device.c @@ -283,6 +283,12 @@ static void pvr_physical_device_get_supported_features( /* VK_KHR_shader_expect_assume */ .shaderExpectAssume = false, + + /* VK_KHR_present_id2 */ + .presentId2 = PVR_USE_WSI_PLATFORM, + + /* VK_KHR_present_wait2 */ + .presentWait2 = PVR_USE_WSI_PLATFORM, }; } diff --git a/src/intel/vulkan/anv_physical_device.c b/src/intel/vulkan/anv_physical_device.c index acddc6e1b90..982fc98c7eb 100644 --- a/src/intel/vulkan/anv_physical_device.c +++ b/src/intel/vulkan/anv_physical_device.c @@ -974,6 +974,12 @@ get_features(const struct anv_physical_device *pdevice, /* VK_KHR_maintenance9 */ .maintenance9 = true, + + /* VK_KHR_present_id2 */ + .presentId2 = true, + + /* VK_KHR_present_wait2 */ + .presentWait2 = true, }; /* The new DOOM and Wolfenstein games require depthBounds without diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index 52257ca0418..3fd7db75405 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -718,6 +718,12 @@ nvk_get_device_features(const struct nv_device_info *info, /* VK_NV_shader_sm_builtins */ .shaderSMBuiltins = true, + + /* VK_KHR_present_id2 */ + .presentId2 = supported_extensions->KHR_present_id2, + + /* VK_KHR_present_wait2 */ + .presentWait2 = supported_extensions->KHR_present_wait2, }; } diff --git a/src/panfrost/vulkan/panvk_vX_physical_device.c b/src/panfrost/vulkan/panvk_vX_physical_device.c index 6a6ab3df734..eed5588d610 100644 --- a/src/panfrost/vulkan/panvk_vX_physical_device.c +++ b/src/panfrost/vulkan/panvk_vX_physical_device.c @@ -491,6 +491,14 @@ panvk_per_arch(get_physical_device_features)( .unifiedImageLayouts = true, /* Video is not currently supported, so set to false */ .unifiedImageLayoutsVideo = false, + +#ifdef PANVK_USE_WSI_PLATFORM + /* VK_KHR_present_id2 */ + .presentId2 = true, + + /* VK_KHR_present_wait2 */ + .presentWait2 = true, +#endif }; }