From d1357b1e9abd8c57ee931ffda931d76a386cd381 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 5 Dec 2024 09:54:23 +0100 Subject: [PATCH] panvk: expose scalarBlockLayout This just works on Mali, nothing fancy needed. Unfortunately, this triggers a lot of timeouts, presumably due to uncached CPU access to memory. So lots of extra skips here. Reviewed-by: Boris Brezillon Part-of: --- docs/features.txt | 2 +- src/panfrost/ci/panfrost-g52-skips.txt | 14 +++++++++++ src/panfrost/ci/panfrost-g610-skips.txt | 28 +++++++++++++++++++++ src/panfrost/vulkan/panvk_physical_device.c | 3 ++- 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index daf8a0bd6f1..56c8fd7a5c2 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -474,7 +474,7 @@ Vulkan 1.2 -- all DONE: anv, nvk, tu, vn VK_EXT_descriptor_indexing DONE (anv, dzn, lvp, nvk, radv, tu, vn) VK_EXT_host_query_reset DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_EXT_sampler_filter_minmax DONE (anv, lvp, nvk, panvk/v10+, radv, tu, vn) - VK_EXT_scalar_block_layout DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv/gfx7+, tu, vn, v3dv/vc7+) + VK_EXT_scalar_block_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv/gfx7+, tu, vn, v3dv/vc7+) VK_EXT_separate_stencil_usage DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_shader_viewport_index_layer DONE (anv, hasvk, lvp, nvk, radv, tu, vn) diff --git a/src/panfrost/ci/panfrost-g52-skips.txt b/src/panfrost/ci/panfrost-g52-skips.txt index ac97ec33cd5..36220bd6a9a 100644 --- a/src/panfrost/ci/panfrost-g52-skips.txt +++ b/src/panfrost/ci/panfrost-g52-skips.txt @@ -124,6 +124,13 @@ dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_comp_access dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_comp_access_store_cols dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_store_cols +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x4_comp_access +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4 +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3 +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3_store_cols +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4 +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4_comp_access +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4_comp_access_store_cols dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x4 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3 @@ -163,6 +170,9 @@ dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_comp_access dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_comp_access_store_cols dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_store_cols +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4 +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4_store_cols +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4_comp_access_store_cols dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x4_comp_access dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3 @@ -206,6 +216,8 @@ dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_comp_access dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_comp_access_store_cols dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_store_cols +dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4_comp_access_store_cols +dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x3_comp_access_store_cols dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4_comp_access @@ -231,6 +243,8 @@ dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_comp_access dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_comp_access_store_cols dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_store_cols +dEQP-VK.ssbo.phys.layout.random.8bit.scalar.18 +dEQP-VK.ssbo.phys.layout.random.8bit.scalar.78 dEQP-VK.ssbo.phys.layout.random.all_per_block_buffers.22 dEQP-VK.ssbo.phys.layout.random.all_per_block_buffers.22 dEQP-VK.ssbo.phys.layout.random.all_shared_buffer.3 diff --git a/src/panfrost/ci/panfrost-g610-skips.txt b/src/panfrost/ci/panfrost-g610-skips.txt index 0d9540c72f4..5592fdede98 100644 --- a/src/panfrost/ci/panfrost-g610-skips.txt +++ b/src/panfrost/ci/panfrost-g610-skips.txt @@ -2,6 +2,11 @@ dEQP-VK.api.external.fence.sync_fd.export_multiple_times_temporary dEQP-VK.api.external.semaphore.sync_fd.export_multiple_times_temporary dEQP-VK.api.object_management.multithreaded_shared_resources.device_group +dEQP-VK.ssbo.layout.random.8bit.scalar.78 +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4 +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4_comp_access +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4_comp_access_store_cols +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4_store_cols dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4_comp_access dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4_comp_access_store_cols @@ -9,6 +14,12 @@ dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_comp_access dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_comp_access_store_cols dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_store_cols +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4 +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3_comp_access +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3_comp_access_store_cols +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3_store_cols +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4_store_cols +dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4_comp_access dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x4 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3_comp_access @@ -41,6 +52,16 @@ dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_comp_access dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_comp_access_store_cols dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_store_cols +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4 +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4_comp_access +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4_comp_access_store_cols +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4_store_cols +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4 +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4_comp_access +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4_comp_access_store_cols +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4_store_cols +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x3_comp_access +dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x3_store_cols dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x4_comp_access dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3_comp_access @@ -77,6 +98,10 @@ dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_comp_access dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_comp_access_store_cols dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_store_cols +dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4 +dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4_comp_access +dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4_comp_access_store_cols +dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4_store_cols dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3_store_cols dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4_comp_access @@ -97,7 +122,10 @@ dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_comp_access dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_comp_access_store_cols dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_store_cols dEQP-VK.ssbo.phys.layout.random.16bit.nested_structs_arrays.23 +dEQP-VK.ssbo.phys.layout.random.16bit.scalar.78 dEQP-VK.ssbo.phys.layout.random.8bit.nested_structs_arrays_instance_arrays.12 +dEQP-VK.ssbo.phys.layout.random.8bit.scalar.18 +dEQP-VK.ssbo.phys.layout.random.8bit.scalar.78 dEQP-VK.ssbo.phys.layout.random.all_per_block_buffers.22 dEQP-VK.ssbo.phys.layout.random.all_shared_buffer.3 dEQP-VK.ubo.random.all_shared_buffer.48 diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index 335c229e625..72dd2322976 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -250,6 +250,7 @@ get_device_extensions(const struct panvk_physical_device *device, .EXT_private_data = true, .EXT_provoking_vertex = true, .EXT_queue_family_foreign = true, + .EXT_scalar_block_layout = true, .EXT_sampler_filter_minmax = arch >= 10, .EXT_shader_module_identifier = true, .EXT_tooling_info = true, @@ -335,7 +336,7 @@ get_features(const struct panvk_physical_device *device, .runtimeDescriptorArray = false, .samplerFilterMinmax = arch >= 10, - .scalarBlockLayout = false, + .scalarBlockLayout = true, .imagelessFramebuffer = false, .uniformBufferStandardLayout = false, .shaderSubgroupExtendedTypes = false,