From 4201613de1a9fd77dcb3a61fc7561c79afc8ae16 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Fri, 24 Oct 2025 22:46:45 -0700 Subject: [PATCH] venus: enable sparse resource support on lavapipe Now that lavapipe sparse resource support on external memory has been fixed, expose sparse resource support from venus on lavapipe. Meanwhile, make remaining failures explicit (failed in lavapipe as well). This CL also drops an obsolete comment and updates expectations from full nightly runs. Reviewed-by: Christian Gmeiner Part-of: --- src/virtio/ci/venus-fails.txt | 6 ++++++ src/virtio/ci/venus-flakes.txt | 3 +++ src/virtio/ci/venus-skips.txt | 14 ++++++++++++-- src/virtio/vulkan/vn_physical_device.c | 11 ----------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/virtio/ci/venus-fails.txt b/src/virtio/ci/venus-fails.txt index 952dbba7fa4..5232be12555 100644 --- a/src/virtio/ci/venus-fails.txt +++ b/src/virtio/ci/venus-fails.txt @@ -147,3 +147,9 @@ dEQP-VK.spirv_assembly.instruction.graphics.float16.arithmetic_3.acosh_vert,Cras dEQP-VK.spirv_assembly.instruction.graphics.float16.arithmetic_4.sin_frag,Crash dEQP-VK.spirv_assembly.instruction.graphics.float_controls2.fp16.input_args.sin_testedWithout_NotNaN_arg1_nan_arg2_one_res_nan_exec_vert,Crash dEQP-VK.spirv_assembly.instruction.graphics.float_controls2.fp16.input_args.sinh_testedWithout_NotInf_arg1_minusInf_arg2_unused_res_minusInf_deco_frag,Crash + +# Failed with native lavapipe as well with "Non-standard block shape used" +dEQP-VK.sparse_resources.image_block_shapes.2d.g8b8g8r8_422_unorm.samples_1,Fail +dEQP-VK.sparse_resources.image_block_shapes.2d.b8g8r8g8_422_unorm.samples_1,Fail +dEQP-VK.sparse_resources.image_block_shapes.2d_array.g8b8g8r8_422_unorm.samples_1,Fail +dEQP-VK.sparse_resources.image_block_shapes.2d_array.b8g8r8g8_422_unorm.samples_1,Fail diff --git a/src/virtio/ci/venus-flakes.txt b/src/virtio/ci/venus-flakes.txt index fe74bed61f5..cfaff8c4c20 100644 --- a/src/virtio/ci/venus-flakes.txt +++ b/src/virtio/ci/venus-flakes.txt @@ -8,3 +8,6 @@ dEQP-VK.transform_feedback.primitives_generated_query.get.*reset.* dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_image.2d.linear.remaining_array_layers.b10g11r11_ufloat_pack32 dEQP-VK.dynamic_rendering.graphics_pipeline_library.suballocation.formats.a8b8g8r8_unorm_pack32.input.load.store.self_dep_clear_draw +dEQP-VK.dynamic_rendering.primary_cmd_buff.suballocation.formats.a8b8g8r8_unorm_pack32.input.clear.store.self_dep_draw + +dEQP-VK.image.host_image_copy.draw_r32g32b32a32_sfloat_r32g32b32a32_sfloat.host_transition_host_copy.memory_to_image.transfer_src_transfer_dst.shader_read_only_optimal.optimal.0_4_4.16x16 diff --git a/src/virtio/ci/venus-skips.txt b/src/virtio/ci/venus-skips.txt index d200444b2f8..d5496e9f1ab 100644 --- a/src/virtio/ci/venus-skips.txt +++ b/src/virtio/ci/venus-skips.txt @@ -7,14 +7,22 @@ dEQP-VK.api.descriptor_pool.repeated_free_reset_long dEQP-VK.api.info.image_format_properties2.2d.linear.g12x4_b12x4r12x4_2plane_422_unorm_3pack16 dEQP-VK.api.info.vulkan1p2.feature_bits_influence dEQP-VK.binding_model.mutable_descriptor.multiple_arrays.constant_size.aliasing.update_copy.mutable_source.normal_source.pool_same_types.update_after_bind.index_constant.comp +dEQP-VK.binding_model.mutable_descriptor.multiple_arrays.constant_size.aliasing.update_write.no_source.no_source.pool_expand_types.pre_update.index_push_constant.comp dEQP-VK.binding_model.mutable_descriptor.multiple_arrays.unbounded.aliasing.update_copy.mutable_source.host_only_source.pool_same_types.update_after_bind.index_constant.comp dEQP-VK.binding_model.mutable_descriptor.multiple_arrays.unbounded.noaliasing.update_copy.mutable_source.normal_source.pool_same_types.pre_update.index_push_constant.comp dEQP-VK.binding_model.mutable_descriptor.multiple_arrays.unbounded.noaliasing.update_copy.nonmutable_source.host_only_source.pool_expand_types.pre_update.index_push_constant.comp +dEQP-VK.glsl.texture_functions.query.texturesize.isampler3d_fragment dEQP-VK.memory.requirements.core.image.regular_tiling_linear dEQP-VK.synchronization.internally_synchronized_objects.pipeline_cache_graphics -dEQP-VK.synchronization.timeline_semaphore.device_host.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm -dEQP-VK.glsl.texture_functions.query.texturesize.isampler3d_fragment dEQP-VK.synchronization.timeline_semaphore.device_host.write_copy_buffer_read_ubo_compute.buffer_16384 +dEQP-VK.synchronization.timeline_semaphore.device_host.write_copy_buffer_to_image_read_copy_image.image_128x128_r16g16b16a16_uint +dEQP-VK.synchronization.timeline_semaphore.device_host.write_copy_image_read_blit_image.image_64x64x8_r32_sfloat +dEQP-VK.synchronization.timeline_semaphore.device_host.write_copy_image_to_buffer_read_ssbo_vertex.buffer_262144 +dEQP-VK.synchronization.timeline_semaphore.device_host.write_image_compute_indirect_read_image_vertex.image_128x128_r8_unorm +dEQP-VK.synchronization.timeline_semaphore.device_host.write_image_compute_read_image_geometry.image_128_r32_uint +dEQP-VK.synchronization.timeline_semaphore.device_host.write_image_vertex_read_copy_image.image_128x128_r16g16b16a16_uint +dEQP-VK.synchronization.timeline_semaphore.device_host.write_ssbo_vertex_read_ssbo_compute_indirect.buffer_262144 +dEQP-VK.synchronization.timeline_semaphore.device_host.write_ssbo_vertex_read_ssbo_tess_control.buffer_262144 dEQP-VK.texture.explicit_lod.2d.sizes.128x128_linear_linear_mipmap_linear_clamp dEQP-VK.texture.explicit_lod.2d.sizes.128x128_linear_linear_mipmap_nearest_clamp dEQP-VK.texture.explicit_lod.2d.sizes.128x128_linear_linear_mipmap_nearest_repeat @@ -37,6 +45,8 @@ dEQP-VK.ubo.random.16bit.all_per_block_buffers.8 dEQP-VK.spirv_assembly.instruction.graphics.8bit_storage.struct_mixed_types.storage_buffer_frag # Timeout in venus-lavapipe-full +dEQP-VK.ray_query.acceleration_structures.dynamic_indexing.sparse_binding_structures.dynamic_indexing +dEQP-VK.ray_tracing_pipeline.acceleration_structures.dynamic_indexing.sparse_binding_structures.dynamic_indexing dEQP-VK.ray_tracing_pipeline.acceleration_structures.dynamic_indexing.traditional_structures.dynamic_indexing dEQP-VK.ray_tracing_pipeline.build.gpu.level_instances.triangles_65536_1_1 dEQP-VK.ray_tracing_pipeline.misc.cullmask_AABB_extrabits diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index a8c734ec9b9..a6630c9f258 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -849,10 +849,6 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev) if (vk_android_get_front_buffer_usage()) props->sharedImage = true; - /* TODO: Fix sparse binding on lavapipe. */ - if (props->driverID == VK_DRIVER_ID_MESA_LLVMPIPE) - physical_dev->sparse_binding_disabled = true; - vn_physical_device_sanitize_properties(physical_dev); } @@ -1584,13 +1580,6 @@ static void vn_physical_device_disable_sparse_binding( struct vn_physical_device *physical_dev) { - /* To support sparse binding with feedback, we require sparse binding queue - * families to also support submiting feedback commands. Any queue - * families that exclusively support sparse binding are filtered out. If a - * device only supports sparse binding with exclusive queue families that - * get filtered out then disable the feature. - */ - struct vk_features *feats = &physical_dev->base.vk.supported_features; feats->sparseBinding = false; feats->sparseResidencyBuffer = false;