About Social Code
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFaith Ekstrand <faith.ekstrand@collabora.com>2025-10-21 10:38:26 -0400
committerMarge Bot <marge-bot@fdo.invalid>2025-11-06 15:27:29 +0000
commit60ad7e8da275a044577f9c60fff02812f0ebd9b4 (patch)
tree25aca3184d99d6caa2bc108375c400348355449f
parent21aafaea165734547753165f6b718f888b0f72ea (diff)
nvk: Advertise VK_KHR_pipeline_binary
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36647>
-rw-r--r--src/nouveau/ci/nvk-ad106-fails.txt14
-rw-r--r--src/nouveau/ci/nvk-ga106-fails.txt15
-rw-r--r--src/nouveau/vulkan/nvk_physical_device.c19
3 files changed, 47 insertions, 1 deletions
diff --git a/src/nouveau/ci/nvk-ad106-fails.txt b/src/nouveau/ci/nvk-ad106-fails.txt
index e69de29bb2d..a3b437549fd 100644
--- a/src/nouveau/ci/nvk-ad106-fails.txt
+++ b/src/nouveau/ci/nvk-ad106-fails.txt
@@ -0,0 +1,14 @@
+# 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_zero_out_feedback_cout,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_geometry_stage_fragment_stage_delayed_destroy,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_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.graphics_tests.vertex_stage_geometry_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.pipeline_from_get_data.vertex_stage_geometry_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.creation_feedback.graphics_tests.vertex_stage_fragment_stage_delayed_destroy,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_geometry_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_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.pipeline_from_get_data.vertex_stage_tessellation_control_stage_tessellation_evaluation_stage_fragment_stage,Crash
diff --git a/src/nouveau/ci/nvk-ga106-fails.txt b/src/nouveau/ci/nvk-ga106-fails.txt
index fa5a85b5988..30e9b998895 100644
--- a/src/nouveau/ci/nvk-ga106-fails.txt
+++ b/src/nouveau/ci/nvk-ga106-fails.txt
@@ -4,3 +4,18 @@ dEQP-VK.pipeline.shader_object_linked_binary.pipeline_cache.robustness2.storage,
dEQP-VK.pipeline.shader_object_linked_spirv.pipeline_cache.robustness2.storage,Fail
dEQP-VK.pipeline.shader_object_unlinked_binary.pipeline_cache.robustness2.storage,Fail
dEQP-VK.pipeline.shader_object_unlinked_spirv.pipeline_cache.robustness2.storage,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.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
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_geometry_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_geometry_stage_fragment_stage_delayed_destroy,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.creation_feedback.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_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.graphics_tests.vertex_stage_geometry_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_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.pipeline_from_get_data.vertex_stage_geometry_stage_fragment_stage,Crash
+dEQP-VK.pipeline.pipeline_library.pipeline_binary.pipeline_from_get_data.vertex_stage_tessellation_control_stage_tessellation_evaluation_stage_fragment_stage,Crash
diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c
index 256ea41f474..96888585ac8 100644
--- a/src/nouveau/vulkan/nvk_physical_device.c
+++ b/src/nouveau/vulkan/nvk_physical_device.c
@@ -160,6 +160,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance,
.KHR_maintenance10 = true,
.KHR_map_memory2 = true,
.KHR_multiview = true,
+ .KHR_pipeline_binary = true,
.KHR_pipeline_executable_properties = true,
.KHR_pipeline_library = true,
#ifdef NVK_USE_WSI_PLATFORM
@@ -499,6 +500,9 @@ nvk_get_device_features(const struct nv_device_info *info,
/* VK_KHR_maintenance10 */
.maintenance10 = true,
+ /* VK_KHR_pipeline_binary */
+ .pipelineBinaries = true,
+
/* VK_KHR_pipeline_executable_properties */
.pipelineExecutableInfo = true,
@@ -1041,6 +1045,13 @@ nvk_get_device_properties(const struct nvk_instance *instance,
/* VK_KHR_compute_shader_derivatives */
.meshAndTaskShaderDerivatives = false,
+ /* VK_KHR_pipeline_binary
+ *
+ * InternalCache properties are set by
+ * nvk_physical_device_init_pipeline_cache()
+ */
+ .pipelineBinaryCompressedData = false,
+
/* VK_EXT_conservative_rasterization */
.primitiveOverestimationSize = info->cls_eng3d >= VOLTA_A ? 1.0f / 512.0f : 0.0,
.maxExtraPrimitiveOverestimationSize = 0.75,
@@ -1235,7 +1246,7 @@ nvk_get_device_properties(const struct nvk_instance *instance,
/* VK_EXT_host_image_copy */
- /* Not sure if there are layout specific things, so for now just reporting
+ /* Not sure if there are layout specific things, so for now just reporting
* all layouts from extensions.
*/
static const VkImageLayout supported_layouts[] = {
@@ -1321,6 +1332,12 @@ nvk_physical_device_init_pipeline_cache(struct nvk_physical_device *pdev)
const uint64_t driver_flags = nvk_physical_device_compiler_flags(pdev);
pdev->vk.disk_cache = disk_cache_create(renderer, timestamp, driver_flags);
+ if (pdev->vk.disk_cache != NULL) {
+ pdev->vk.properties.pipelineBinaryInternalCache = true;
+ pdev->vk.properties.pipelineBinaryInternalCacheControl = true;
+ pdev->vk.properties.pipelineBinaryPrefersInternalCache = true;
+ pdev->vk.properties.pipelineBinaryPrecompiledInternalCache = true;
+ }
#endif
}