diff --git a/docs/features.txt b/docs/features.txt index 94956880a87..82bbeaefaa1 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -535,6 +535,7 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_calibrated_timestamps DONE (anv, nvk, radv, tu/a750+, vn) VK_KHR_compute_shader_derivatives DONE (anv, nvk, radv, tu/a7xx+) VK_KHR_cooperative_matrix DONE (anv, radv/gfx11+) + VK_KHR_depth_clamp_zero_one DONE (vn) VK_KHR_deferred_host_operations DONE (anv, hasvk, lvp, radv) VK_KHR_display DONE (anv, nvk, pvr, radv, tu, v3dv, vn) VK_KHR_display_swapchain not started @@ -592,7 +593,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_depth_clamp_control DONE (anv, hasvk, nvk, radv) VK_EXT_depth_clip_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_depth_clip_enable DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv/vc7+, vn) - VK_EXT_depth_range_unrestricted DONE (anv/gen20+, nvk, radv, lvp) + VK_EXT_depth_range_unrestricted DONE (anv/gen20+, nvk, radv, lvp, vn) VK_EXT_descriptor_buffer DONE (anv, lvp, nvk, radv, tu) VK_EXT_device_address_binding_report DONE (radv, tu) VK_EXT_device_fault DONE (radv) @@ -634,7 +635,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_pci_bus_info DONE (anv, hasvk, nvk, radv, vn) VK_EXT_physical_device_drm DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_pipeline_library_group_handles DONE (anv, radv) - VK_EXT_post_depth_coverage DONE (anv/gfx11+, lvp, nvk, radv/gfx10+, tu) + VK_EXT_post_depth_coverage DONE (anv/gfx11+, lvp, nvk, radv/gfx10+, tu, vn) VK_EXT_primitive_topology_list_restart DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_primitives_generated_query DONE (anv, hasvk, lvp, nvk, radv, tu, vn) VK_EXT_provoking_vertex DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) @@ -684,10 +685,10 @@ Khronos extensions that are not part of any Vulkan version: VK_AMD_shader_image_load_store_lod DONE (radv) VK_AMD_shader_trinary_minmax DONE (radv) VK_AMD_texture_gather_bias_lod DONE (anv, radv) - VK_ARM_rasterization_order_attachment_access DONE (lvp, tu) + VK_ARM_rasterization_order_attachment_access DONE (lvp, tu, vn) VK_EXT_mutable_descriptor_type DONE (anv, lvp, nvk, radv, tu, vn) VK_EXT_swapchain_colorspace DONE (anv, lvp, nvk, radv, tu, v3dv, vn) - VK_EXT_depth_clamp_zero_one DONE (anv, nvk, radv, tu, v3dv/vc7+) + VK_EXT_depth_clamp_zero_one DONE (anv, nvk, radv, tu, v3dv/vc7+, vn) VK_INTEL_shader_integer_functions2 DONE (anv, hasvk, radv) VK_EXT_map_memory_placed DONE (anv, nvk, radv, tu) VK_MESA_image_alignment_control DONE (anv, nvk, radv) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 8ab15627f3d..ede57ef965c 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -152,6 +152,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VkPhysicalDeviceVertexAttributeDivisorFeatures vertex_attribute_divisor; /* KHR */ + VkPhysicalDeviceDepthClampZeroOneFeaturesKHR depth_clamp_zero_one; VkPhysicalDeviceFragmentShadingRateFeaturesKHR fragment_shading_rate; VkPhysicalDeviceShaderClockFeaturesKHR shader_clock; @@ -276,6 +277,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VN_ADD_PNEXT_EXT(feats2, DYNAMIC_RENDERING_LOCAL_READ_FEATURES, local_feats.dynamic_rendering_local_read, exts->KHR_dynamic_rendering_local_read); /* KHR */ + VN_ADD_PNEXT_EXT(feats2, DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR, local_feats.depth_clamp_zero_one, exts->KHR_depth_clamp_zero_one || exts->EXT_depth_clamp_zero_one); VN_ADD_PNEXT_EXT(feats2, FRAGMENT_SHADING_RATE_FEATURES_KHR, local_feats.fragment_shading_rate, exts->KHR_fragment_shading_rate); VN_ADD_PNEXT_EXT(feats2, SHADER_CLOCK_FEATURES_KHR, local_feats.shader_clock, exts->KHR_shader_clock); @@ -300,7 +302,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VN_ADD_PNEXT_EXT(feats2, PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, local_feats.primitive_topology_list_restart, exts->EXT_primitive_topology_list_restart); VN_ADD_PNEXT_EXT(feats2, PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, local_feats.primitives_generated_query, exts->EXT_primitives_generated_query); VN_ADD_PNEXT_EXT(feats2, PROVOKING_VERTEX_FEATURES_EXT, local_feats.provoking_vertex, exts->EXT_provoking_vertex); - VN_ADD_PNEXT_EXT(feats2, RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, local_feats.rasterization_order_attachment_access, exts->EXT_rasterization_order_attachment_access); + VN_ADD_PNEXT_EXT(feats2, RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, local_feats.rasterization_order_attachment_access, exts->EXT_rasterization_order_attachment_access || exts->ARM_rasterization_order_attachment_access); VN_ADD_PNEXT_EXT(feats2, ROBUSTNESS_2_FEATURES_EXT, local_feats.robustness_2, exts->EXT_robustness2); VN_ADD_PNEXT_EXT(feats2, TRANSFORM_FEEDBACK_FEATURES_EXT, local_feats.transform_feedback, exts->EXT_transform_feedback); VN_ADD_PNEXT_EXT(feats2, VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, local_feats.vertex_input_dynamic_state, exts->EXT_vertex_input_dynamic_state); @@ -1154,6 +1156,7 @@ vn_physical_device_get_passthrough_extensions( /* KHR */ .KHR_calibrated_timestamps = true, + .KHR_depth_clamp_zero_one = true, .KHR_fragment_shading_rate = true, .KHR_pipeline_library = true, .KHR_shader_clock = true, @@ -1167,8 +1170,10 @@ vn_physical_device_get_passthrough_extensions( .EXT_conditional_rendering = true, .EXT_conservative_rasterization = true, .EXT_custom_border_color = true, + .EXT_depth_clamp_zero_one = true, .EXT_depth_clip_control = true, .EXT_depth_clip_enable = true, + .EXT_depth_range_unrestricted = true, .EXT_extended_dynamic_state3 = true, .EXT_dynamic_rendering_unused_attachments = true, .EXT_external_memory_acquire_unmodified = true, @@ -1187,6 +1192,7 @@ vn_physical_device_get_passthrough_extensions( .EXT_multi_draw = true, .EXT_mutable_descriptor_type = true, .EXT_non_seamless_cube_map = true, + .EXT_post_depth_coverage = true, .EXT_primitive_topology_list_restart = true, .EXT_primitives_generated_query = true, .EXT_provoking_vertex = true, @@ -1201,6 +1207,7 @@ vn_physical_device_get_passthrough_extensions( .EXT_vertex_input_dynamic_state = true, /* vendor */ + .ARM_rasterization_order_attachment_access = true, .VALVE_mutable_descriptor_type = true, }; }