nvk: Advertise VK_KHR_pipeline_binary

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36647>
This commit is contained in:
Faith Ekstrand 2025-10-21 10:38:26 -04:00 committed by Marge Bot
parent 21aafaea16
commit 60ad7e8da2
3 changed files with 47 additions and 1 deletions

View file

@ -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

View file

@ -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

View file

@ -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
}