diff --git a/docs/features.txt b/docs/features.txt index eb86535b0fc..783c81080b9 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -594,8 +594,8 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_win32_surface DONE (dzn, lvp) VK_KHR_xcb_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_KHR_xlib_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) - VK_KHR_surface_maintenance1 DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn) - VK_KHR_swapchain_maintenance1 DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn) + VK_KHR_surface_maintenance1 DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn) + VK_KHR_swapchain_maintenance1 DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_acquire_xlib_display DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_attachment_feedback_loop_dynamic_state DONE (anv, lvp, radv, tu, vn) VK_EXT_astc_decode_mode DONE (panvk) @@ -682,8 +682,8 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, radv, vn) VK_EXT_shader_module_identifier DONE (anv, hasvk, hk, nvk, panvk, radv, tu, v3dv) VK_EXT_shader_uniform_buffer_unsized_array DONE (anv, hk, nvk, radv, tu, vn) - VK_EXT_surface_maintenance1 DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn) - VK_EXT_swapchain_maintenance1 DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn) + VK_EXT_surface_maintenance1 DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn) + VK_EXT_swapchain_maintenance1 DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_transform_feedback DONE (anv, hasvk, hk, lvp, nvk, radv, tu, vn) VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, hk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_EXT_vertex_input_dynamic_state DONE (anv, hk, lvp, nvk, panvk, radv, tu, vn) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 6c3d6faa473..a51fb793d64 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -34,3 +34,4 @@ VK_VALVE_mutable_descriptor_type on panvk VK_EXT_shader_stencil_export on panvk VK_EXT_map_memory_placed on panvk VK_EXT_conditional_rendering on panvk +VK_{KHR,EXT}_{surface,swapchain}_maintenance1 on panvk diff --git a/src/panfrost/ci/panfrost-g52-flakes.txt b/src/panfrost/ci/panfrost-g52-flakes.txt index 57171ad5c26..2ddf6ff278c 100644 --- a/src/panfrost/ci/panfrost-g52-flakes.txt +++ b/src/panfrost/ci/panfrost-g52-flakes.txt @@ -77,3 +77,6 @@ dEQP-VK.glsl.operator.binary_operator.div.mediump_float_vec3_vertex # Nightly run expectations update glx@glx-visuals-stencil +# https://gerrit.khronos.org/c/vk-gl-cts/+/19859 +dEQP-VK.wsi.xcb.maintenance1.present_modes.* +dEQP-VK.wsi.xcb.maintenance1.present_fence.* diff --git a/src/panfrost/ci/panfrost-g52-skips.txt b/src/panfrost/ci/panfrost-g52-skips.txt index 6e0b3ebcc4f..1a81661dd31 100644 --- a/src/panfrost/ci/panfrost-g52-skips.txt +++ b/src/panfrost/ci/panfrost-g52-skips.txt @@ -144,3 +144,11 @@ dEQP-VK.synchronization.op.single_queue.timeline_semaphore.write_image_compute_i # tests are broken with Vulkan 1.0: https://gerrit.khronos.org/c/vk-gl-cts/+/19422 dEQP-VK.image.swapchain_mutable.direct_drm.* dEQP-VK.wsi.acquire_drm_display.* + +# more tests broken on Vulkan 1.0: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6409 +dEQP-VK.wsi.*.maintenance1.*.bind_image* + +# https://gitlab.freedesktop.org/mesa/mesa/-/issues/15116 +dEQP-VK.wsi.xlib.maintenance1.present_modes.* +dEQP-VK.wsi.xlib.maintenance1.deferred_alloc.fifo.* +dEQP-VK.wsi.xlib.maintenance1.present_fence.fifo.* diff --git a/src/panfrost/ci/panfrost-g610-flakes.txt b/src/panfrost/ci/panfrost-g610-flakes.txt index 68520f82af3..dcdd5959012 100644 --- a/src/panfrost/ci/panfrost-g610-flakes.txt +++ b/src/panfrost/ci/panfrost-g610-flakes.txt @@ -206,6 +206,10 @@ dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d24_unorm_s8_uint # No clue what's happening to these on CI lately dEQP-VK.wsi.*.swapchain.simulate_oom.* +# https://gerrit.khronos.org/c/vk-gl-cts/+/19859 +dEQP-VK.wsi.xcb.maintenance1.present_modes.* +dEQP-VK.wsi.xcb.maintenance1.present_fence.* + # With linux kernel 6.13-rc4 uprev dEQP-GLES31.functional.copy_image.compressed.viewclass_astc_8x6_rgba.rgba_astc_8x6_khr_srgb8_alpha8_astc_8x6_khr.texture3d_to_cubemap diff --git a/src/panfrost/ci/panfrost-g610-skips.txt b/src/panfrost/ci/panfrost-g610-skips.txt index d611d8e37c6..8a50171c06a 100644 --- a/src/panfrost/ci/panfrost-g610-skips.txt +++ b/src/panfrost/ci/panfrost-g610-skips.txt @@ -8,3 +8,8 @@ dEQP-VK.wsi.wayland.swapchain.simulate_oom.image_extent asan-dEQP-VK.image.swapchain_mutable.direct_drm.* asan-dEQP-VK.wsi.acquire_drm_display.* asan-dEQP-VK.wsi.direct_drm.* + +# https://gitlab.freedesktop.org/mesa/mesa/-/issues/15116 +dEQP-VK.wsi.xlib.maintenance1.present_modes.* +dEQP-VK.wsi.xlib.maintenance1.deferred_alloc.fifo.* +dEQP-VK.wsi.xlib.maintenance1.present_fence.fifo.* diff --git a/src/panfrost/ci/panfrost-g925-flakes.txt b/src/panfrost/ci/panfrost-g925-flakes.txt index b46293599c3..45df3eb4172 100644 --- a/src/panfrost/ci/panfrost-g925-flakes.txt +++ b/src/panfrost/ci/panfrost-g925-flakes.txt @@ -11,6 +11,9 @@ dEQP-VK.sparse_resources.buffer.ssbo.sparse_residency.non_resident_buffer_copy_s dEQP-VK.wsi.wayland.swapchain.create.image_extent dEQP-VK.wsi.wayland.swapchain.simulate_oom.image_extent +# https://gerrit.khronos.org/c/vk-gl-cts/+/19859 +dEQP-VK.wsi.xcb.maintenance1.present_modes.* +dEQP-VK.wsi.xcb.maintenance1.present_fence.* angle-dEQP-GLES3.functional.multisample.fbo_4_samples.proportionality_sample_coverage angle-dEQP-GLES3.functional.multisample.fbo_max_samples.constancy_alpha_to_coverage diff --git a/src/panfrost/ci/panfrost-g925-skips.txt b/src/panfrost/ci/panfrost-g925-skips.txt index 3b96b79f4c6..a3c1a6ba42d 100644 --- a/src/panfrost/ci/panfrost-g925-skips.txt +++ b/src/panfrost/ci/panfrost-g925-skips.txt @@ -1,3 +1,8 @@ # Slow tests (>= 30s) dEQP-VK.api.external.fence.sync_fd.export_multiple_times_temporary dEQP-VK.api.external.semaphore.sync_fd.export_multiple_times_temporary + +# https://gitlab.freedesktop.org/mesa/mesa/-/issues/15116 +dEQP-VK.wsi.xlib.maintenance1.present_modes.* +dEQP-VK.wsi.xlib.maintenance1.deferred_alloc.fifo.* +dEQP-VK.wsi.xlib.maintenance1.present_fence.fifo.* diff --git a/src/panfrost/vulkan/panvk_instance.c b/src/panfrost/vulkan/panvk_instance.c index 00e6a7d7802..bf36a989a4d 100644 --- a/src/panfrost/vulkan/panvk_instance.c +++ b/src/panfrost/vulkan/panvk_instance.c @@ -100,6 +100,8 @@ static const struct vk_instance_extension_table panvk_instance_extensions = { #ifdef PANVK_USE_WSI_PLATFORM .KHR_get_surface_capabilities2 = true, .KHR_surface = true, + .KHR_surface_maintenance1 = true, + .EXT_surface_maintenance1 = true, #endif #ifdef VK_USE_PLATFORM_DISPLAY_KHR .KHR_display = true, diff --git a/src/panfrost/vulkan/panvk_vX_physical_device.c b/src/panfrost/vulkan/panvk_vX_physical_device.c index 40cb4cc34c1..7c4a4039139 100644 --- a/src/panfrost/vulkan/panvk_vX_physical_device.c +++ b/src/panfrost/vulkan/panvk_vX_physical_device.c @@ -119,6 +119,7 @@ panvk_per_arch(get_physical_device_extensions)( .KHR_present_wait2 = true, .KHR_swapchain = true, .KHR_swapchain_mutable_format = true, + .KHR_swapchain_maintenance1 = true, #endif .KHR_synchronization2 = true, .KHR_timeline_semaphore = true, @@ -194,6 +195,9 @@ panvk_per_arch(get_physical_device_extensions)( .EXT_shader_subgroup_ballot = true, .EXT_shader_subgroup_vote = true, .EXT_subgroup_size_control = has_vk1_1, +#ifdef PANVK_USE_WSI_PLATFORM + .EXT_swapchain_maintenance1 = true, +#endif .EXT_texel_buffer_alignment = true, .EXT_astc_decode_mode = PAN_ARCH >= 9, .EXT_texture_compression_astc_hdr = true, @@ -616,6 +620,9 @@ panvk_per_arch(get_physical_device_features)( /* VK_ARM_scheduling_controls */ .schedulingControls = PAN_ARCH >= 10, + /* KHR_swapchain_maintenance1 */ + .swapchainMaintenance1 = true, + /* VK_EXT_multisampled_render_to_single_sampled */ .multisampledRenderToSingleSampled = true,