diff --git a/docs/features.txt b/docs/features.txt index 4ff10ac2082..46a7985f5b7 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -528,7 +528,7 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_maintenance6 DONE (anv, lvp, nvk, radv, tu) VK_KHR_performance_query DONE (anv, radv/gfx10.3+, tu, v3dv) VK_KHR_pipeline_executable_properties DONE (anv, nvk, panvk, hasvk, radv, tu, v3dv) - VK_KHR_pipeline_library DONE (anv, lvp, nvk, radv, tu, vn) + VK_KHR_pipeline_library DONE (anv, lvp, nvk, panvk, radv, tu, vn) VK_KHR_present_wait DONE (anv, nvk, radv, tu, x11/display) VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, radv, tu, vn) VK_KHR_ray_query DONE (anv/gfx12.5+, lvp, radv/gfx10.3+) @@ -586,7 +586,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_fragment_shader_interlock DONE (anv, radv/gfx9+, vn) VK_EXT_global_priority DONE (anv, hasvk, radv, tu) VK_EXT_global_priority_query DONE (anv, hasvk, radv, tu) - VK_EXT_graphics_pipeline_library DONE (anv, lvp, nvk, radv, tu, vn) + VK_EXT_graphics_pipeline_library DONE (anv, lvp, nvk, panvk, radv, tu, vn) VK_EXT_headless_surface DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_EXT_image_2d_view_of_3d DONE (anv, hasvk, lvp, nvk, radv, tu, vn) VK_EXT_image_compression_control DONE (radv) diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index 64693267ab6..fb184b26ba2 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -70,6 +70,7 @@ get_device_extensions(const struct panvk_physical_device *device, .KHR_descriptor_update_template = true, .KHR_driver_properties = true, .KHR_pipeline_executable_properties = true, + .KHR_pipeline_library = true, .KHR_push_descriptor = true, #ifdef PANVK_USE_WSI_PLATFORM .KHR_swapchain = true, @@ -78,6 +79,7 @@ get_device_extensions(const struct panvk_physical_device *device, .KHR_variable_pointers = true, .EXT_buffer_device_address = true, .EXT_custom_border_color = true, + .EXT_graphics_pipeline_library = true, .EXT_index_type_uint8 = true, .EXT_pipeline_creation_cache_control = true, .EXT_pipeline_creation_feedback = true, @@ -189,6 +191,9 @@ get_features(const struct panvk_physical_device *device, .shaderIntegerDotProduct = false, .maintenance4 = false, + /* VK_EXT_graphics_pipeline_library */ + .graphicsPipelineLibrary = true, + /* VK_EXT_index_type_uint8 */ .indexTypeUint8 = true, @@ -563,6 +568,10 @@ get_device_properties(const struct panvk_instance *instance, /* VK_EXT_custom_border_color */ .maxCustomBorderColorSamplers = 32768, + /* VK_EXT_graphics_pipeline_library */ + .graphicsPipelineLibraryFastLinking = true, + .graphicsPipelineLibraryIndependentInterpolationDecoration = true, + /* VK_KHR_vertex_attribute_divisor */ /* We will have to restrict this a bit for multiview */ .maxVertexAttribDivisor = UINT32_MAX,