mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-17 20:28:05 +02:00
kk: Enable VK_(EXT/KHR)_robustness2 and VK_EXT_pipeline_robustness
Enable all functionality, and make consistent use of non-EXT enum definitions. Reviewed-by: Aitor Camacho <aitor@lunarg.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41313>
This commit is contained in:
parent
cccf953545
commit
829130daad
5 changed files with 27 additions and 18 deletions
|
|
@ -534,7 +534,7 @@ Vulkan 1.4 -- all DONE: anv, hk, lvp, nvk, panvk/v10+, radv/gfx8+, tu/a7xx+, vn
|
|||
VK_KHR_vertex_attribute_divisor DONE (anv, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_EXT_host_image_copy DONE (anv, lvp, nvk/Turing+, panvk, radv/gfx10+, tu, vn)
|
||||
VK_EXT_pipeline_protected_access DONE (anv/gfx12+, radv, vn)
|
||||
VK_EXT_pipeline_robustness DONE (anv, lvp, nvk, panvk, radv, v3dv, tu, vn)
|
||||
VK_EXT_pipeline_robustness DONE (anv, kk, lvp, nvk, panvk, radv, v3dv, tu, vn)
|
||||
|
||||
Khronos extensions that are not part of any Vulkan version:
|
||||
|
||||
|
|
@ -576,7 +576,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||
VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn)
|
||||
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, vn)
|
||||
VK_KHR_ray_tracing_position_fetch DONE (anv, lvp, radv/gfx10.3+, vn)
|
||||
VK_KHR_robustness2 DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_robustness2 DONE (anv, hasvk, hk, kk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_shader_bfloat16 DONE (anv/gfx12.5+, radv/gfx12+, vn)
|
||||
VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn)
|
||||
VK_KHR_shader_constant_data DONE (radv)
|
||||
|
|
@ -680,7 +680,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||
VK_EXT_queue_family_foreign DONE (anv, hasvk, hk, nvk, lvp, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_EXT_rasterization_order_attachment_access DONE (lvp, tu, vn)
|
||||
VK_EXT_rgba10x6_formats DONE (panvk/v11+)
|
||||
VK_EXT_robustness2 DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
|
||||
VK_EXT_robustness2 DONE (anv, hasvk, hk, kk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
|
||||
VK_EXT_sample_locations DONE (anv, hasvk, hk, nvk, radv, tu/a650+, vn, lavapipe)
|
||||
VK_EXT_shader_atomic_float DONE (anv, hasvk, lvp, panvk, radv, tu, vn)
|
||||
VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv, vn)
|
||||
|
|
|
|||
|
|
@ -775,10 +775,10 @@ kk_nir_lower_descriptors(nir_shader *nir,
|
|||
struct lower_descriptors_ctx ctx = {
|
||||
.clamp_desc_array_bounds =
|
||||
rs->storage_buffers !=
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT ||
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED ||
|
||||
rs->uniform_buffers !=
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT ||
|
||||
rs->images != VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT,
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED ||
|
||||
rs->images != VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
|
||||
.ssbo_addr_format = kk_buffer_addr_format(rs->storage_buffers),
|
||||
.ubo_addr_format = kk_buffer_addr_format(rs->uniform_buffers),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -126,10 +126,12 @@ kk_get_device_extensions(const struct kk_instance *instance,
|
|||
.EXT_global_priority = true,
|
||||
.EXT_global_priority_query = true,
|
||||
.EXT_index_type_uint8 = true,
|
||||
.EXT_pipeline_robustness = true,
|
||||
.EXT_vertex_attribute_divisor = true,
|
||||
|
||||
/* Optional extensions */
|
||||
.KHR_calibrated_timestamps = true,
|
||||
.KHR_robustness2 = true,
|
||||
.KHR_shader_maximal_reconvergence = true,
|
||||
.KHR_shader_relaxed_extended_instruction = true,
|
||||
.KHR_shader_subgroup_uniform_control_flow = true,
|
||||
|
|
@ -148,6 +150,7 @@ kk_get_device_extensions(const struct kk_instance *instance,
|
|||
.EXT_multi_draw = true,
|
||||
.EXT_mutable_descriptor_type = true,
|
||||
.EXT_post_depth_coverage = true,
|
||||
.EXT_robustness2 = true,
|
||||
.EXT_shader_atomic_float = true,
|
||||
.EXT_shader_replicated_composites = true,
|
||||
.EXT_shader_subgroup_ballot = true,
|
||||
|
|
@ -288,6 +291,7 @@ kk_get_device_features(
|
|||
/* Vulkan 1.4 */
|
||||
.globalPriorityQuery = true,
|
||||
.indexTypeUint8 = true,
|
||||
.pipelineRobustness = true,
|
||||
.pushDescriptor = true,
|
||||
.shaderSubgroupRotate = true,
|
||||
.shaderSubgroupRotateClustered = true,
|
||||
|
|
@ -297,6 +301,11 @@ kk_get_device_features(
|
|||
/* VK_EXT_mutable_descriptor_type */
|
||||
.mutableDescriptorType = true,
|
||||
|
||||
/* VK_KHR_robustness2 */
|
||||
.robustBufferAccess2 = true,
|
||||
.robustImageAccess2 = true,
|
||||
.nullDescriptor = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
|
||||
|
|
@ -644,13 +653,13 @@ kk_get_device_properties(const struct kk_physical_device *pdev,
|
|||
|
||||
/* VK_EXT_pipeline_robustness */
|
||||
.defaultRobustnessStorageBuffers =
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
|
||||
.defaultRobustnessUniformBuffers =
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
|
||||
.defaultRobustnessVertexInputs =
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
|
||||
.defaultRobustnessImages =
|
||||
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT,
|
||||
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
|
||||
|
||||
/* VK_EXT_physical_device_drm gets populated later */
|
||||
|
||||
|
|
@ -658,7 +667,7 @@ kk_get_device_properties(const struct kk_physical_device *pdev,
|
|||
.provokingVertexModePerPipeline = true,
|
||||
.transformFeedbackPreservesTriangleFanProvokingVertex = true,
|
||||
|
||||
/* VK_EXT_robustness2 */
|
||||
/* VK_KHR_robustness2 */
|
||||
.robustStorageBufferAccessSizeAlignment = KK_SSBO_BOUNDS_CHECK_ALIGNMENT,
|
||||
.robustUniformBufferAccessSizeAlignment = KK_MIN_UBO_ALIGNMENT,
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ static const struct vk_pipeline_robustness_state rs_all_supported = {
|
|||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
|
||||
.storage_buffers =
|
||||
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
|
||||
.images = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT,
|
||||
.images = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
|
||||
};
|
||||
|
||||
static struct spirv_to_nir_options
|
||||
|
|
@ -755,9 +755,9 @@ kk_compile_shader(struct kk_device *dev, struct vk_shader_compile_info *info,
|
|||
}
|
||||
|
||||
static const struct vk_pipeline_robustness_state rs_none = {
|
||||
.uniform_buffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,
|
||||
.storage_buffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,
|
||||
.images = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT,
|
||||
.uniform_buffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
|
||||
.storage_buffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
|
||||
.images = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
|
||||
};
|
||||
|
||||
VkResult
|
||||
|
|
|
|||
|
|
@ -92,10 +92,10 @@ static inline nir_address_format
|
|||
kk_buffer_addr_format(VkPipelineRobustnessBufferBehaviorEXT robustness)
|
||||
{
|
||||
switch (robustness) {
|
||||
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:
|
||||
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED:
|
||||
return nir_address_format_64bit_global_32bit_offset;
|
||||
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:
|
||||
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT:
|
||||
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS:
|
||||
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2:
|
||||
return nir_address_format_64bit_bounded_global;
|
||||
default:
|
||||
UNREACHABLE("Invalid robust buffer access behavior");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue