From 799608d8d54f868b59e8121d61d21b6d8af1016c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 5 May 2026 10:39:54 -0400 Subject: [PATCH] zink: use maint11 for sso shader object compile this cleans up some vvl errors --- .../drivers/zink/ci/zink-anv-adl-fails.txt | 61 ------------------- .../ci/zink-anv-adl-validation-settings.txt | 2 +- .../zink-radv-navi31-validation-settings.txt | 2 +- .../zink-radv-vangogh-validation-settings.txt | 2 +- src/gallium/drivers/zink/zink_compiler.c | 3 +- src/gallium/drivers/zink/zink_descriptors.c | 6 +- src/gallium/drivers/zink/zink_device_info.py | 3 + src/gallium/drivers/zink/zink_screen.c | 4 ++ 8 files changed, 16 insertions(+), 67 deletions(-) diff --git a/src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt b/src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt index 10136989a9a..cd23b8cd750 100644 --- a/src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt @@ -577,64 +577,3 @@ wayland-dEQP-EGL.functional.resize.surface_size.stretch_width,Fail # shader objects #13839 spec@arb_occlusion_query@occlusion_query_meta_fragments,Fail spec@arb_occlusion_query@occlusion_query_meta_save,Fail - -# uprev VVL in Mesa -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.default_framebuffer,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_rbo_1,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_rbo_16,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_rbo_2,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_rbo_4,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_rbo_8,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_texture_1,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_texture_16,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_texture_2,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_texture_4,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.multisample_texture_8,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.singlesample_rbo,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.singlesample_texture,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.default_framebuffer,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_rbo_1,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_rbo_16,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_rbo_2,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_rbo_4,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_rbo_8,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_texture_1,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_texture_16,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_texture_2,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_texture_4,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.multisample_texture_8,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.singlesample_rbo,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.centroid_qualified.singlesample_texture,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.default_framebuffer,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_rbo_1,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_rbo_16,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_rbo_2,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_rbo_4,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_rbo_8,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_texture_1,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_texture_16,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_texture_2,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_texture_4,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.multisample_texture_8,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.singlesample_rbo,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.singlesample_texture,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.non_multisample_buffer.sample_0_default_framebuffer,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.non_multisample_buffer.sample_0_singlesample_rbo,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.non_multisample_buffer.sample_0_singlesample_texture,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.non_multisample_buffer.sample_n_default_framebuffer,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.non_multisample_buffer.sample_n_singlesample_rbo,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.non_multisample_buffer.sample_n_singlesample_texture,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.default_framebuffer,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_rbo_1,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_rbo_16,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_rbo_2,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_rbo_4,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_rbo_8,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_texture_1,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_texture_16,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_texture_2,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_texture_4,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.multisample_texture_8,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.singlesample_rbo,Crash -noopt-dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.static_sample_number.singlesample_texture,Crash - diff --git a/src/gallium/drivers/zink/ci/zink-anv-adl-validation-settings.txt b/src/gallium/drivers/zink/ci/zink-anv-adl-validation-settings.txt index 9af8c0be742..037b9476fda 100644 --- a/src/gallium/drivers/zink/ci/zink-anv-adl-validation-settings.txt +++ b/src/gallium/drivers/zink/ci/zink-anv-adl-validation-settings.txt @@ -1,6 +1,6 @@ # Please include a comment with the log message and a testcase triggering each # VUID at the bottom of the file. -khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-vkCmdDrawMultiIndexedEXT-format-07753,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-vkCmdDrawMultiIndexedEXT-None-10909,VUID-vkDestroyDevice-device-05137,VUID-vkCmdDrawMultiEXT-None-08879,VUID-VkShaderCreateInfoEXT-pSetLayouts-parameter,VUID-vkCmdDrawMultiIndexedEXT-None-08879,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-vkCmdBindVertexBuffers2-pStrides-06209 +khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-vkCmdDrawMultiIndexedEXT-format-07753,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-vkCmdDrawMultiIndexedEXT-None-10909,VUID-vkDestroyDevice-device-05137,VUID-vkCmdDrawMultiEXT-None-08879,VUID-vkCmdDrawMultiIndexedEXT-None-08879,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-vkCmdBindVertexBuffers2-pStrides-06209 khronos_validation.report_flags = error khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG,VK_DBG_LAYER_ACTION_BREAK VK_LAYER_ENABLES=VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT diff --git a/src/gallium/drivers/zink/ci/zink-radv-navi31-validation-settings.txt b/src/gallium/drivers/zink/ci/zink-radv-navi31-validation-settings.txt index e13e2b149e4..f4dc2415df6 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-navi31-validation-settings.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-navi31-validation-settings.txt @@ -1,7 +1,7 @@ # Please include a comment with the log message and a testcase triggering each # VUID at the bottom of the file. #khronos_validation.message_id_filter = VUID-RuntimeSpirv-Location-06272,VUID-StandaloneSpirv-OpEntryPoint-08721,VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500,VUID-vkCmdDrawMultiEXT-None-08879,VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500,VUID-vkCmdDrawMultiIndexedEXT-None-08879,VUID-vkDestroyDevice-device-05137,VUID-vkQueueSubmit-pCommandBuffers-00065,VUID-VkShaderCreateInfoEXT-pCode-08737 -khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-VkRenderingAttachmentInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-StandaloneSpirv-OpEntryPoint-08721,VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911,VUID-vkCmdDrawMultiIndexedEXT-None-08879,VUID-vkDestroyDevice-device-05137,VUID-vkQueueSubmit-pCommandBuffers-00065,VUID-VkShaderCreateInfoEXT-pCode-08737,VUID-vkCmdDrawMultiEXT-None-08879,VUID-VkShaderCreateInfoEXT-pSetLayouts-parameter,VUID-vkCmdDrawMultiIndexedEXT-None-10909,UNASSIGNED-Draw-primitiveTopologyPatchListRestart,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-vkCmdBindVertexBuffers2-pStrides-06209,VUID-vkCmdBlitImage-srcImageLayout-00221 +khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-VkRenderingAttachmentInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-StandaloneSpirv-OpEntryPoint-08721,VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911,VUID-vkCmdDrawMultiIndexedEXT-None-08879,VUID-vkDestroyDevice-device-05137,VUID-vkQueueSubmit-pCommandBuffers-00065,VUID-VkShaderCreateInfoEXT-pCode-08737,VUID-vkCmdDrawMultiEXT-None-08879,VUID-vkCmdDrawMultiIndexedEXT-None-10909,UNASSIGNED-Draw-primitiveTopologyPatchListRestart,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-vkCmdBindVertexBuffers2-pStrides-06209,VUID-vkCmdBlitImage-srcImageLayout-00221 khronos_validation.report_flags = error khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG,VK_DBG_LAYER_ACTION_BREAK VK_LAYER_ENABLES=VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT diff --git a/src/gallium/drivers/zink/ci/zink-radv-vangogh-validation-settings.txt b/src/gallium/drivers/zink/ci/zink-radv-vangogh-validation-settings.txt index 274932a231e..02fb861490d 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-vangogh-validation-settings.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-vangogh-validation-settings.txt @@ -1,7 +1,7 @@ # Please include a comment with the log message and a testcase triggering each # VUID at the bottom of the file. #khronos_validation.message_id_filter = VUID-RuntimeSpirv-Location-06272,VUID-StandaloneSpirv-OpEntryPoint-08721,VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500,VUID-vkCmdDrawMultiEXT-None-08879,VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500,VUID-vkCmdDrawMultiIndexedEXT-None-08879,VUID-vkDestroyDevice-device-05137,VUID-vkQueueSubmit-pCommandBuffers-00065,VUID-VkShaderCreateInfoEXT-pCode-08737 -khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-StandaloneSpirv-OpEntryPoint-08721,VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911,VUID-vkCmdDrawMultiIndexedEXT-None-08879,VUID-vkDestroyDevice-device-05137,VUID-vkQueueSubmit-pCommandBuffers-00065,VUID-VkShaderCreateInfoEXT-pCode-08737,VUID-vkCmdDrawMultiEXT-None-08879,VUID-VkShaderCreateInfoEXT-pSetLayouts-parameter,VUID-vkCmdDrawMultiIndexedEXT-None-10909,UNASSIGNED-Draw-primitiveTopologyPatchListRestart,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-vkCmdBindVertexBuffers2-pStrides-06209 +khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-StandaloneSpirv-OpEntryPoint-08721,VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911,VUID-vkCmdDrawMultiIndexedEXT-None-08879,VUID-vkDestroyDevice-device-05137,VUID-vkQueueSubmit-pCommandBuffers-00065,VUID-VkShaderCreateInfoEXT-pCode-08737,VUID-vkCmdDrawMultiEXT-None-08879,VUID-vkCmdDrawMultiIndexedEXT-None-10909,UNASSIGNED-Draw-primitiveTopologyPatchListRestart,VUID-VkDescriptorGetInfoEXT-type-12223,VUID-vkCmdBindVertexBuffers2-pStrides-06209 khronos_validation.report_flags = error khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG,VK_DBG_LAYER_ACTION_BREAK VK_LAYER_ENABLES=VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index c2bb7450e21..e401da317f7 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -3483,8 +3483,9 @@ zink_shader_spirv_compile(struct zink_screen *screen, struct zink_shader *zs, st } sci.sType = VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT; + sci.flags = VK_SHADER_CREATE_INDEPENDENT_SETS_BIT_KHR; if (zs->info.stage == MESA_SHADER_MESH && zs->info.prev_stage != MESA_SHADER_TASK) - sci.flags = VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT; + sci.flags |= VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT; sci.stage = mesa_to_vk_shader_stage(zs->info.stage); sci.nextStage = zink_get_next_stage(zs->info.stage); sci.codeType = VK_SHADER_CODE_TYPE_SPIRV_EXT; diff --git a/src/gallium/drivers/zink/zink_descriptors.c b/src/gallium/drivers/zink/zink_descriptors.c index 4a3051da52f..cc3fdcdee9c 100644 --- a/src/gallium/drivers/zink/zink_descriptors.c +++ b/src/gallium/drivers/zink/zink_descriptors.c @@ -570,7 +570,8 @@ zink_descriptor_program_init(struct zink_context *ctx, struct zink_program *pg) } pg->dd.binding_usage = has_bindings; if (!has_bindings && !push_count && !pg->dd.bindless) { - pg->layout = zink_pipeline_layout_create(screen, pg->dsl, pg->num_dsl, pg->is_compute, 0); + pg->layout = zink_pipeline_layout_create(screen, pg->dsl, pg->num_dsl, pg->is_compute, + pg->uses_shobj ? VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT : 0); if (pg->layout) pg->compat_id = _mesa_hash_data(pg->dsl, pg->num_dsl * sizeof(pg->dsl[0])); return !!pg->layout; @@ -638,7 +639,8 @@ zink_descriptor_program_init(struct zink_context *ctx, struct zink_program *pg) pg->dd.binding_usage |= BITFIELD_MASK(ZINK_DESCRIPTOR_BASE_TYPES); } - pg->layout = zink_pipeline_layout_create(screen, pg->dsl, pg->num_dsl, pg->is_compute, 0); + pg->layout = zink_pipeline_layout_create(screen, pg->dsl, pg->num_dsl, pg->is_compute, + pg->uses_shobj ? VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT : 0); if (!pg->layout) return false; pg->compat_id = _mesa_hash_data(pg->dsl, pg->num_dsl * sizeof(pg->dsl[0])); diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index e932ad2400f..5a0199b2054 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -84,6 +84,9 @@ EXTENSIONS = [ Extension("VK_KHR_maintenance10", alias="maint10", features=True, properties=True), + Extension("VK_KHR_maintenance11", + alias="maint11", + features=True), Extension("VK_KHR_unified_image_layouts", alias="unified_layouts", features=True), Extension("VK_KHR_external_memory"), Extension("VK_KHR_external_memory_fd"), diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 9084c911b38..98cbbfe935b 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -3176,6 +3176,10 @@ init_driver_workarounds(struct zink_screen *screen) if (!screen->resizable_bar) screen->info.have_EXT_host_image_copy = false; + /* required for SSO usage */ + if (!screen->info.have_KHR_maintenance11) + screen->info.have_EXT_shader_object = false; + /* msrtss being enabled for all singlesampled images has a massive memory usage implication on this * driver. temporary, could be removed after the driver handles shadow images better. */ switch (zink_driverid(screen)) {