mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-08 14:20:30 +01:00
vulkan: enable VK_KHR_shader_expect_assume
This implementation ignores the hints. Acked-by: Caio Oliveira <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27265>
This commit is contained in:
parent
5df7be8017
commit
26c8f13ff5
13 changed files with 42 additions and 0 deletions
|
|
@ -536,6 +536,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, radv/gfx10.3+)
|
||||
VK_KHR_ray_tracing_position_fetch DONE (anv, radv/gfx10.3+)
|
||||
VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, radv, vn)
|
||||
VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_shader_subgroup_rotate DONE (anv, radv)
|
||||
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, radv)
|
||||
VK_KHR_shared_presentable_image not started
|
||||
|
|
|
|||
|
|
@ -2,3 +2,4 @@ VK_KHR_shader_subgroup_rotate on RADV
|
|||
VK_KHR_load_store_op_none on RADV
|
||||
VK_KHR_line_rasterization on RADV
|
||||
VK_KHR_index_type_uint8 on RADV
|
||||
VK_KHR_shader_expect_assume on all Vulkan drivers
|
||||
|
|
|
|||
|
|
@ -500,6 +500,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
|
|||
.KHR_shader_atomic_int64 = true,
|
||||
.KHR_shader_clock = true,
|
||||
.KHR_shader_draw_parameters = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_shader_float16_int8 = true,
|
||||
.KHR_shader_float_controls = true,
|
||||
.KHR_shader_integer_dot_product = true,
|
||||
|
|
@ -1129,6 +1130,9 @@ radv_physical_device_get_features(const struct radv_physical_device *pdevice, st
|
|||
|
||||
/* VK_EXT_shader_object */
|
||||
.shaderObject = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
|
|||
.KHR_multiview = true,
|
||||
.KHR_pipeline_executable_properties = true,
|
||||
.KHR_separate_depth_stencil_layouts = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_shader_float_controls = true,
|
||||
.KHR_shader_non_semantic_info = true,
|
||||
.KHR_sampler_mirror_clamp_to_edge = true,
|
||||
|
|
@ -453,6 +454,9 @@ get_features(const struct v3dv_physical_device *physical_device,
|
|||
/* VK_EXT_subgroup_size_control */
|
||||
.subgroupSizeControl = true,
|
||||
.computeFullSubgroups = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -191,6 +191,7 @@ get_device_extensions(const struct tu_physical_device *device,
|
|||
.KHR_sampler_ycbcr_conversion = true,
|
||||
.KHR_separate_depth_stencil_layouts = true,
|
||||
.KHR_shader_draw_parameters = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_shader_float16_int8 = true,
|
||||
.KHR_shader_float_controls = true,
|
||||
.KHR_shader_integer_dot_product = true,
|
||||
|
|
@ -582,6 +583,9 @@ tu_get_features(struct tu_physical_device *pdevice,
|
|||
|
||||
/* VK_KHR_maintenance5 */
|
||||
features->maintenance5 = true;
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
features->shaderExpectAssume = true;
|
||||
}
|
||||
|
||||
static const struct vk_pipeline_cache_object_ops *const cache_import_ops[] = {
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@ static const struct vk_device_extension_table lvp_device_extensions_supported =
|
|||
.KHR_shader_atomic_int64 = true,
|
||||
.KHR_shader_clock = true,
|
||||
.KHR_shader_draw_parameters = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_shader_float16_int8 = true,
|
||||
.KHR_shader_integer_dot_product = true,
|
||||
.KHR_shader_non_semantic_info = true,
|
||||
|
|
@ -611,6 +612,9 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||
/* maintenance6 */
|
||||
.maintenance6 = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
|
||||
/* VK_AMDX_shader_enqueue */
|
||||
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
.shaderEnqueue = true,
|
||||
|
|
|
|||
|
|
@ -180,6 +180,7 @@ static void pvr_physical_device_get_supported_extensions(
|
|||
.KHR_external_semaphore_fd = PVR_USE_WSI_PLATFORM,
|
||||
.KHR_get_memory_requirements2 = true,
|
||||
.KHR_image_format_list = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_swapchain = PVR_USE_WSI_PLATFORM,
|
||||
.KHR_timeline_semaphore = true,
|
||||
.KHR_uniform_buffer_standard_layout = true,
|
||||
|
|
@ -273,6 +274,8 @@ static void pvr_physical_device_get_supported_features(
|
|||
/* Vulkan 1.3 / VK_EXT_texel_buffer_alignment */
|
||||
.texelBufferAlignment = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -294,6 +294,7 @@ get_device_extensions(const struct anv_physical_device *device,
|
|||
.KHR_shader_atomic_int64 = true,
|
||||
.KHR_shader_clock = true,
|
||||
.KHR_shader_draw_parameters = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_shader_float16_int8 = !device->instance->no_16bit,
|
||||
.KHR_shader_float_controls = true,
|
||||
.KHR_shader_integer_dot_product = true,
|
||||
|
|
@ -888,6 +889,9 @@ get_features(const struct anv_physical_device *pdevice,
|
|||
|
||||
/* VK_EXT_attachment_feedback_loop_dynamic_state */
|
||||
.attachmentFeedbackLoopDynamicState = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
};
|
||||
|
||||
/* The new DOOM and Wolfenstein games require depthBounds without
|
||||
|
|
|
|||
|
|
@ -239,6 +239,7 @@ get_device_extensions(const struct anv_physical_device *device,
|
|||
.KHR_separate_depth_stencil_layouts = true,
|
||||
.KHR_shader_clock = true,
|
||||
.KHR_shader_draw_parameters = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_shader_float16_int8 = device->info.ver >= 8 && !device->instance->no_16bit,
|
||||
.KHR_shader_float_controls = true,
|
||||
.KHR_shader_integer_dot_product = true,
|
||||
|
|
@ -629,6 +630,9 @@ get_features(const struct anv_physical_device *pdevice,
|
|||
|
||||
/* VK_EXT_depth_clip_control */
|
||||
.depthClipControl = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
};
|
||||
|
||||
/* We can't do image stores in vec4 shaders */
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ dzn_physical_device_get_extensions(struct dzn_physical_device *pdev)
|
|||
.KHR_sampler_mirror_clamp_to_edge = true,
|
||||
.KHR_separate_depth_stencil_layouts = true,
|
||||
.KHR_shader_draw_parameters = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_shader_float16_int8 = pdev->options4.Native16BitShaderOpsSupported,
|
||||
.KHR_shader_float_controls = true,
|
||||
.KHR_shader_integer_dot_product = true,
|
||||
|
|
@ -778,6 +779,7 @@ dzn_physical_device_get_features(const struct dzn_physical_device *pdev,
|
|||
.dynamicRendering = true,
|
||||
.shaderIntegerDotProduct = true,
|
||||
.maintenance4 = false,
|
||||
.shaderExpectAssume = true,
|
||||
|
||||
.vertexAttributeInstanceRateDivisor = true,
|
||||
.vertexAttributeInstanceRateZeroDivisor = true,
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance,
|
|||
nvk_use_nak(info),
|
||||
.KHR_shader_clock = true,
|
||||
.KHR_shader_draw_parameters = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_shader_float_controls = true,
|
||||
.KHR_shader_float16_int8 = true,
|
||||
.KHR_shader_integer_dot_product = true,
|
||||
|
|
@ -527,6 +528,9 @@ nvk_get_device_features(const struct nv_device_info *info,
|
|||
|
||||
/* VK_VALVE_mutable_descriptor_type */
|
||||
.mutableDescriptorType = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -158,6 +158,7 @@ panvk_get_device_extensions(const struct panvk_physical_device *device,
|
|||
{
|
||||
*ext = (struct vk_device_extension_table){
|
||||
.KHR_copy_commands2 = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
.KHR_storage_buffer_storage_class = true,
|
||||
.KHR_descriptor_update_template = true,
|
||||
#ifdef PANVK_USE_WSI_PLATFORM
|
||||
|
|
@ -289,6 +290,9 @@ panvk_get_features(const struct panvk_physical_device *device,
|
|||
/* VK_EXT_custom_border_color */
|
||||
.customBorderColors = true,
|
||||
.customBorderColorWithoutFormat = true,
|
||||
|
||||
/* VK_KHR_shader_expect_assume */
|
||||
.shaderExpectAssume = true,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -142,6 +142,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
|
|||
|
||||
/* KHR */
|
||||
VkPhysicalDeviceShaderClockFeaturesKHR shader_clock;
|
||||
VkPhysicalDeviceShaderExpectAssumeFeaturesKHR expect_assume;
|
||||
|
||||
/* EXT */
|
||||
VkPhysicalDeviceBorderColorSwizzleFeaturesEXT border_color_swizzle;
|
||||
|
|
@ -244,6 +245,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
|
|||
|
||||
/* KHR */
|
||||
VN_ADD_PNEXT_EXT(feats2, SHADER_CLOCK_FEATURES_KHR, local_feats.shader_clock, exts->KHR_shader_clock);
|
||||
VN_ADD_PNEXT_EXT(feats2, SHADER_EXPECT_ASSUME_FEATURES_KHR, local_feats.expect_assume, exts->KHR_shader_expect_assume);
|
||||
|
||||
/* EXT */
|
||||
VN_ADD_PNEXT_EXT(feats2, BORDER_COLOR_SWIZZLE_FEATURES_EXT, local_feats.border_color_swizzle, exts->EXT_border_color_swizzle);
|
||||
|
|
@ -1122,6 +1124,7 @@ vn_physical_device_get_passthrough_extensions(
|
|||
.KHR_pipeline_library = true,
|
||||
.KHR_push_descriptor = true,
|
||||
.KHR_shader_clock = true,
|
||||
.KHR_shader_expect_assume = true,
|
||||
|
||||
/* EXT */
|
||||
.EXT_border_color_swizzle = true,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue