About Social Code
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFaith Ekstrand <faith.ekstrand@collabora.com>2025-10-21 10:38:32 -0400
committerFaith Ekstrand <faith.ekstrand@collabora.com>2025-11-06 11:33:55 -0500
commit4909af6baeb4f62f597384bf775eb9e27aa8d46b (patch)
tree83d212a62e0dfdeda344a9916e1ef37af4e9c19d
parentacd00c07f68aea0f5ab4641f4749c8f49b8927b0 (diff)
panvk: Advertise VK_KHR_pipeline_binary
Closes: https://gitlab.freedesktop.org/panfrost/mesa/-/issues/216 Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38284>
-rw-r--r--src/panfrost/ci/panfrost-g52-fails.txt7
-rw-r--r--src/panfrost/ci/panfrost-g610-fails.txt7
-rw-r--r--src/panfrost/ci/panfrost-g925-fails.txt7
-rw-r--r--src/panfrost/vulkan/panvk_vX_physical_device.c13
4 files changed, 34 insertions, 0 deletions
diff --git a/src/panfrost/ci/panfrost-g52-fails.txt b/src/panfrost/ci/panfrost-g52-fails.txt
index 8ff0de7dd72..ed7649602a8 100644
--- a/src/panfrost/ci/panfrost-g52-fails.txt
+++ b/src/panfrost/ci/panfrost-g52-fails.txt
@@ -426,3 +426,10 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.mu
dEQP-VK.pipeline.fast_linked_library.empty_fs.masked_samples,Fail
dEQP-VK.pipeline.monolithic.empty_fs.masked_samples,Fail
dEQP-VK.pipeline.pipeline_library.empty_fs.masked_samples,Fail
+
+# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/5926
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage_delayed_destroy,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.graphics_tests.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.pipeline_from_get_data.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage_zero_out_feedback_cout,Crash
diff --git a/src/panfrost/ci/panfrost-g610-fails.txt b/src/panfrost/ci/panfrost-g610-fails.txt
index 619cb9d9787..52b8b992f71 100644
--- a/src/panfrost/ci/panfrost-g610-fails.txt
+++ b/src/panfrost/ci/panfrost-g610-fails.txt
@@ -6,6 +6,13 @@ dEQP-VK.image.load_store.without_any_format.buffer.b8g8r8_srgb_minalign_uniform_
dEQP-VK.image.load_store.without_any_format.buffer.r8g8b8_srgb_minalign_uniform,Fail
dEQP-VK.image.load_store.without_any_format.buffer.r8g8b8_srgb_minalign_uniform_linear,Fail
+# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/5926
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.graphics_tests.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.pipeline_from_get_data.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage_delayed_destroy,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage_zero_out_feedback_cout,Crash
+
afbcp-spec@arb_direct_state_access@gettextureimage-formats,Fail
afbcp-spec@arb_direct_state_access@gettextureimage-formats init-by-rendering,Fail
afbcp-spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail
diff --git a/src/panfrost/ci/panfrost-g925-fails.txt b/src/panfrost/ci/panfrost-g925-fails.txt
index d92ad0bb893..3786676d601 100644
--- a/src/panfrost/ci/panfrost-g925-fails.txt
+++ b/src/panfrost/ci/panfrost-g925-fails.txt
@@ -4,6 +4,13 @@ dEQP-VK.image.load_store.without_any_format.buffer.b8g8r8_srgb_minalign_uniform_
dEQP-VK.image.load_store.without_any_format.buffer.r8g8b8_srgb_minalign_uniform,Fail
dEQP-VK.image.load_store.without_any_format.buffer.r8g8b8_srgb_minalign_uniform_linear,Fail
+# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/5926
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.graphics_tests.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.pipeline_from_get_data.vertex_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage_zero_out_feedback_cout,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_fragment_stage_delayed_destroy,Crash
+
# deqp-vk: ../src/panfrost/vulkan/panvk_image.c:346: panvk_image_get_mod_from_list: Assertion `!"Invalid modifier"' failed.
dEQP-VK.wsi.wayland.swapchain.create.image_extent,Crash
diff --git a/src/panfrost/vulkan/panvk_vX_physical_device.c b/src/panfrost/vulkan/panvk_vX_physical_device.c
index bfed7e22ed7..37941c8a1f8 100644
--- a/src/panfrost/vulkan/panvk_vX_physical_device.c
+++ b/src/panfrost/vulkan/panvk_vX_physical_device.c
@@ -86,6 +86,7 @@ panvk_per_arch(get_physical_device_extensions)(
.KHR_maintenance9 = true,
.KHR_map_memory2 = true,
.KHR_multiview = true,
+ .KHR_pipeline_binary = true,
.KHR_pipeline_executable_properties = true,
.KHR_pipeline_library = true,
.KHR_push_descriptor = true,
@@ -478,6 +479,9 @@ panvk_per_arch(get_physical_device_features)(
*/
.customBorderColorWithoutFormat = PAN_ARCH != 7,
+ /* VK_KHR_pipeline_binary */
+ .pipelineBinaries = true,
+
/* VK_KHR_pipeline_executable_properties */
.pipelineExecutableInfo = true,
@@ -582,6 +586,8 @@ panvk_per_arch(get_physical_device_properties)(
uint64_t os_page_size = 4096;
os_get_page_size(&os_page_size);
+ const bool has_disk_cache = device->vk.disk_cache != NULL;
+
/* Ensure that the max threads count per workgroup is valid for Bifrost */
assert(PAN_ARCH > 8 || device->kmod.props.max_threads_per_wg <= 1024);
@@ -990,6 +996,13 @@ panvk_per_arch(get_physical_device_properties)(
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT,
.identicalMemoryTypeRequirements = true,
+ /* VK_KHR_pipeline_binary */
+ .pipelineBinaryInternalCache = has_disk_cache,
+ .pipelineBinaryInternalCacheControl = has_disk_cache,
+ .pipelineBinaryPrefersInternalCache = has_disk_cache,
+ .pipelineBinaryPrecompiledInternalCache = has_disk_cache,
+ .pipelineBinaryCompressedData = false,
+
/* VK_EXT_robustness2 */
.robustStorageBufferAccessSizeAlignment = 1,
.robustUniformBufferAccessSizeAlignment = 1,