diff --git a/docs/features.txt b/docs/features.txt index 3a941b9d6a1..30914e848e7 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -530,6 +530,7 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_maintenance6 DONE (anv, lvp, nvk, radv, tu) VK_KHR_maintenance7 DONE (anv, lvp, nvk, radv) VK_KHR_performance_query DONE (anv, radv/gfx10.3+, tu, v3dv) + VK_KHR_pipeline_binary DONE (radv) VK_KHR_pipeline_executable_properties DONE (anv, nvk, panvk, hasvk, radv, tu, v3dv) VK_KHR_pipeline_library DONE (anv, lvp, nvk, panvk, radv, tu, vn) VK_KHR_present_wait DONE (anv, nvk, radv, tu, x11/display) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index fbb172d2f89..2f37870ee82 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -8,3 +8,4 @@ VK_KHR_maintenance7 on nvk VK_KHR_dynamic_rendering_local_read on nvk GL_ARB_timer_query on Panfrost GL_EXT_disjoint_timer_query on Panfrost +VK_KHR_pipeline_binary on RADV diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 4087ba1f02a..a86952e38bc 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -527,6 +527,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .KHR_map_memory2 = true, .KHR_multiview = true, .KHR_performance_query = radv_perf_query_supported(pdev), + .KHR_pipeline_binary = true, .KHR_pipeline_executable_properties = true, .KHR_pipeline_library = !pdev->use_llvm, /* Hide these behind dri configs for now since we cannot implement it reliably on @@ -1236,6 +1237,9 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc /* VK_KHR_video_maintenance1 */ .videoMaintenance1 = true, + + /* VK_KHR_pipeline_binary */ + .pipelineBinaries = true, }; } @@ -1950,6 +1954,13 @@ radv_get_physical_device_properties(struct radv_physical_device *pdev) p->maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic = MAX_DYNAMIC_UNIFORM_BUFFERS; p->maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic = MAX_DYNAMIC_STORAGE_BUFFERS; p->maxDescriptorSetUpdateAfterBindTotalBuffersDynamic = MAX_DYNAMIC_BUFFERS; + + /* VK_KHR_pipeline_binary */ + p->pipelineBinaryInternalCache = true; + p->pipelineBinaryInternalCacheControl = true; + p->pipelineBinaryPrefersInternalCache = false; + p->pipelineBinaryPrecompiledInternalCache = false; + p->pipelineBinaryCompressedData = false; } static VkResult