From d432fd9e327bb16eefd2f28ab7da4ebd2775dc25 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Wed, 23 Apr 2025 16:39:13 +0200 Subject: [PATCH] panvk: Advertise support for VK_EXT_extended_dynamic_state[2] We added CmdBindVertexBuffers2(), the rest is handled by the core. Advertising this feature also works around a CTS bug that was calling CmdSetPatchControlPointsEXT() without checking for this extension. Signed-off-by: Boris Brezillon Reviewed-by: Olivia Lee Part-of: --- docs/features.txt | 4 ++-- docs/relnotes/new_features.txt | 1 + src/panfrost/ci/panfrost-g610-fails.txt | 3 --- src/panfrost/ci/panfrost-g720-fails.txt | 3 --- src/panfrost/ci/panfrost-g725-fails.txt | 3 --- src/panfrost/vulkan/panvk_physical_device.c | 6 ++++++ 6 files changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index 4dddbd66ec0..637d61525db 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -494,8 +494,8 @@ Vulkan 1.3 -- all DONE: anv, lvp, nvk, radv, tu, vn, v3dv VK_KHR_synchronization2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_KHR_zero_initialize_workgroup_memory DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_4444_formats DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) - VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) - VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) + VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) + VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_inline_uniform_block DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_pipeline_creation_cache_control DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_pipeline_creation_feedback DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 615cc16ed8a..1fda73600b6 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -9,3 +9,4 @@ dualSrcBlend on v3dv VK_KHR_maintenance4 on panvk/v10+ VK_KHR_maintenance5 on panvk/v10+ VK_EXT_direct_mode_display on panvk +VK_EXT_extended_dynamic_state[2] on panvk diff --git a/src/panfrost/ci/panfrost-g610-fails.txt b/src/panfrost/ci/panfrost-g610-fails.txt index 40db5c7b0b7..85018e02293 100644 --- a/src/panfrost/ci/panfrost-g610-fails.txt +++ b/src/panfrost/ci/panfrost-g610-fails.txt @@ -1,9 +1,6 @@ # uprev Piglit in Mesa spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount-multithread,Crash -# CTS bug, tries to use vkCmdSetPatchControlPointsEXT when we don't have that -dEQP-VK.pipeline.fast_linked_library.misc.interpolate_at_sample_no_sample_shading,Crash - dEQP-VK.renderpass.multiple_subpasses_multiple_command_buffers.test,Fail dEQP-VK.glsl.loops.special.do_while_dynamic_iterations.dowhile_trap_vertex,Crash diff --git a/src/panfrost/ci/panfrost-g720-fails.txt b/src/panfrost/ci/panfrost-g720-fails.txt index b53fd5d6293..e2ddf9a46d9 100644 --- a/src/panfrost/ci/panfrost-g720-fails.txt +++ b/src/panfrost/ci/panfrost-g720-fails.txt @@ -1,9 +1,6 @@ # uprev Piglit in Mesa spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount-multithread,Crash -# CTS bug, tries to use vkCmdSetPatchControlPointsEXT when we don't have that -dEQP-VK.pipeline.fast_linked_library.misc.interpolate_at_sample_no_sample_shading,Crash - dEQP-VK.glsl.loops.special.do_while_dynamic_iterations.dowhile_trap_vertex,Crash # Seems to be a precision issues because of floor fp16 being dropped since v11 (and the conversion done as a result) diff --git a/src/panfrost/ci/panfrost-g725-fails.txt b/src/panfrost/ci/panfrost-g725-fails.txt index 1f197a9a466..82d00f8aeee 100644 --- a/src/panfrost/ci/panfrost-g725-fails.txt +++ b/src/panfrost/ci/panfrost-g725-fails.txt @@ -1,9 +1,6 @@ # uprev Piglit in Mesa spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount-multithread,Crash -# CTS bug, tries to use vkCmdSetPatchControlPointsEXT when we don't have that -dEQP-VK.pipeline.fast_linked_library.misc.interpolate_at_sample_no_sample_shading,Crash - # Seems to be a precision issues because of floor fp16 being dropped since v11 (and the conversion done as a result) dEQP-GLES3.functional.shaders.builtin_functions.common.fract.vec2_lowp_vertex,Fail dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec2_lowp_compute,Fail diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index b1d1f201eb5..6e0d022c93c 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -283,6 +283,8 @@ get_device_extensions(const struct panvk_physical_device *device, #ifdef VK_USE_PLATFORM_DISPLAY_KHR .EXT_display_control = true, #endif + .EXT_extended_dynamic_state = true, + .EXT_extended_dynamic_state2 = true, .EXT_external_memory_dma_buf = true, .EXT_global_priority = true, .EXT_global_priority_query = true, @@ -460,6 +462,10 @@ get_features(const struct panvk_physical_device *device, .robustImageAccess = true, .inlineUniformBlock = false, .descriptorBindingInlineUniformBlockUpdateAfterBind = false, + .extendedDynamicState = true, + .extendedDynamicState2 = true, + .extendedDynamicState2LogicOp = true, + .extendedDynamicState2PatchControlPoints = false, .pipelineCreationCacheControl = true, .privateData = true, .shaderDemoteToHelperInvocation = false,