venus: Enable VK_EXT_graphics_pipeline_library behind debug flag

Until the performance issues get resolved, enable the extension
if `VN_DEBUG=gpl`.

Also enable the required (and trivial) VK_KHR_pipeline_library.

Signed-off-by: Lina Versace <linyaa@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22419>
This commit is contained in:
Lina Versace 2023-08-10 16:32:27 -07:00
parent a65ac274ac
commit 71599a1a20
5 changed files with 13 additions and 2 deletions

View file

@ -521,7 +521,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_maintenance5 DONE (anv, lvp, radv, tu)
VK_KHR_performance_query DONE (anv/gen8+, radv/gfx10.3+, tu, v3dv)
VK_KHR_pipeline_executable_properties DONE (anv, hasvk, radv, tu, v3dv)
VK_KHR_pipeline_library DONE (anv, lvp, radv, tu)
VK_KHR_pipeline_library DONE (anv, lvp, radv, tu, vn)
VK_KHR_present_wait DONE (anv, radv, tu, x11/display)
VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_KHR_ray_query DONE (anv/gfx12.5+, radv/gfx10.3+)
@ -571,7 +571,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_fragment_shader_interlock DONE (anv/gen9+, 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, radv, tu)
VK_EXT_graphics_pipeline_library DONE (anv, lvp, radv, tu, vn)
VK_EXT_image_2d_view_of_3d DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_image_drm_format_modifier DONE (anv, hasvk, radv/gfx9+, tu, v3dv, vn)
VK_EXT_image_sliced_view_of_3d DONE (anv, nvk, radv/gfx10+)

View file

@ -33,6 +33,7 @@ static const struct debug_control vn_debug_options[] = {
{ "log_ctx_info", VN_DEBUG_LOG_CTX_INFO },
{ "cache", VN_DEBUG_CACHE },
{ "no_sparse", VN_DEBUG_NO_SPARSE },
{ "gpl", VN_DEBUG_GPL },
{ NULL, 0 },
/* clang-format on */
};

View file

@ -106,6 +106,7 @@ enum vn_debug {
VN_DEBUG_LOG_CTX_INFO = 1ull << 5,
VN_DEBUG_CACHE = 1ull << 6,
VN_DEBUG_NO_SPARSE = 1ull << 7,
VN_DEBUG_GPL = 1ull << 8,
};
enum vn_perf {

View file

@ -153,6 +153,8 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
dynamic_rendering_unused_attachments;
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
fragment_shader_interlock;
VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
graphics_pipeline_library;
VkPhysicalDeviceImage2DViewOf3DFeaturesEXT image_2d_view_of_3d;
VkPhysicalDeviceImageViewMinLodFeaturesEXT image_view_min_lod;
VkPhysicalDeviceIndexTypeUint8FeaturesEXT index_type_uint8;
@ -249,6 +251,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
VN_ADD_PNEXT_EXT(feats2, DEPTH_CLIP_ENABLE_FEATURES_EXT, local_feats.depth_clip_enable, exts->EXT_depth_clip_enable);
VN_ADD_PNEXT_EXT(feats2, DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT, local_feats.dynamic_rendering_unused_attachments, exts->EXT_dynamic_rendering_unused_attachments);
VN_ADD_PNEXT_EXT(feats2, FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, local_feats.fragment_shader_interlock, exts->EXT_fragment_shader_interlock);
VN_ADD_PNEXT_EXT(feats2, GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT, local_feats.graphics_pipeline_library, exts->EXT_graphics_pipeline_library);
VN_ADD_PNEXT_EXT(feats2, IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, local_feats.image_2d_view_of_3d, exts->EXT_image_2d_view_of_3d);
VN_ADD_PNEXT_EXT(feats2, IMAGE_VIEW_MIN_LOD_FEATURES_EXT, local_feats.image_view_min_lod, exts->EXT_image_view_min_lod);
VN_ADD_PNEXT_EXT(feats2, INDEX_TYPE_UINT8_FEATURES_EXT, local_feats.index_type_uint8, exts->EXT_index_type_uint8);
@ -421,6 +424,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
/* EXT */
VN_ADD_PNEXT_EXT(props2, CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, props->conservative_rasterization, exts->EXT_conservative_rasterization);
VN_ADD_PNEXT_EXT(props2, CUSTOM_BORDER_COLOR_PROPERTIES_EXT, props->custom_border_color, exts->EXT_custom_border_color);
VN_ADD_PNEXT_EXT(props2, GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, props->graphics_pipeline_library, exts->EXT_graphics_pipeline_library);
VN_ADD_PNEXT_EXT(props2, LINE_RASTERIZATION_PROPERTIES_EXT, props->line_rasterization, exts->EXT_line_rasterization);
VN_ADD_PNEXT_EXT(props2, MULTI_DRAW_PROPERTIES_EXT, props->multi_draw, exts->EXT_multi_draw);
VN_ADD_PNEXT_EXT(props2, PCI_BUS_INFO_PROPERTIES_EXT, props->pci_bus_info, exts->EXT_pci_bus_info);
@ -1077,6 +1081,7 @@ vn_physical_device_get_passthrough_extensions(
.EXT_ycbcr_2plane_444_formats = true,
/* KHR */
.KHR_pipeline_library = true,
.KHR_push_descriptor = true,
.KHR_shader_clock = true,
@ -1091,6 +1096,7 @@ vn_physical_device_get_passthrough_extensions(
.EXT_depth_clip_enable = true,
.EXT_dynamic_rendering_unused_attachments = true,
.EXT_fragment_shader_interlock = true,
.EXT_graphics_pipeline_library = VN_DEBUG(GPL),
.EXT_image_2d_view_of_3d = true,
.EXT_image_drm_format_modifier = true,
.EXT_image_view_min_lod = true,
@ -1732,6 +1738,7 @@ vn_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
/* EXT */
CASE(CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, conservative_rasterization);
CASE(CUSTOM_BORDER_COLOR_PROPERTIES_EXT, custom_border_color);
CASE(GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, graphics_pipeline_library);
CASE(LINE_RASTERIZATION_PROPERTIES_EXT, line_rasterization);
CASE(MULTI_DRAW_PROPERTIES_EXT, multi_draw);
CASE(PROVOKING_VERTEX_PROPERTIES_EXT, provoking_vertex);

View file

@ -30,6 +30,8 @@ struct vn_physical_device_properties {
VkPhysicalDeviceConservativeRasterizationPropertiesEXT
conservative_rasterization;
VkPhysicalDeviceCustomBorderColorPropertiesEXT custom_border_color;
VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
graphics_pipeline_library;
VkPhysicalDeviceLineRasterizationPropertiesEXT line_rasterization;
VkPhysicalDeviceMultiDrawPropertiesEXT multi_draw;
VkPhysicalDevicePCIBusInfoPropertiesEXT pci_bus_info;