The Roadmap 2024 milestone is intended to be supported by newer mid-to-high-end devices shipping in 2024 or shortly thereafter across mainstream smartphone, tablet, laptops, console and desktop devices.
Two of the core aims of this roadmap profile are to enable developers to rely on a number of important rasterization and shader features have been available for a long time, but until now have not enjoyed wide support.
Shader features required include smaller types (8/16-bit integers and 16-bit floats), reconvergence guarantees for subgroup ops (apiext:VK_KHR_shader_maximal_reconvergence and apiext:VK_KHR_shader_quad_control), and more consistent floating-point handling (apiext:VK_KHR_shader_float_controls2 and round-to-nearest-even for 32-/16-bit floats). Rasterization features include requiring support for multi-draw indirect, shader draw parameters, 8-bit indices, better line rasterization definitions, and local reads when using dynamic rendering. A few other features have been added opportunistically, in lieu of shipping a Vulkan 1.4 in the same time frame, such as push descriptors and the various minor improvements included in apiext:VK_KHR_maintenance5.
The following core optional features are required to be supported:
-
Vulkan 1.0 Optional Features
-
Vulkan 1.1 Optional Features
-
Vulkan 1.2 Optional Features
The following core increased limits are required:
Limit Name | Unsupported Limit | Core Limit | Profile Limit | Limit Type1 |
---|---|---|---|---|
pname:maxBoundDescriptorSets |
- |
4 |
7 |
min |
pname:maxColorAttachments |
- |
4 |
8 |
min |
pname:timestampComputeAndGraphics |
- |
FALSE |
TRUE |
Boolean |
Limit Name | Unsupported Limit | Core Limit | Profile Limit | Limit Type1 |
---|---|---|---|---|
pname:shaderRoundingModeRTEFloat16 |
- |
FALSE |
TRUE |
Boolean |
pname:shaderRoundingModeRTEFloat32 |
- |
FALSE |
TRUE |
Boolean |
The following extensions are required:
-
apiext:VK_KHR_dynamic_rendering_local_read
-
apiext:VK_KHR_load_store_op_none
-
apiext:VK_KHR_shader_quad_control
-
apiext:VK_KHR_shader_maximal_reconvergence
-
apiext:VK_KHR_shader_subgroup_uniform_control_flow
-
apiext:VK_KHR_shader_subgroup_rotate
-
apiext:VK_KHR_shader_float_controls2
-
apiext:VK_KHR_shader_expect_assume
-
apiext:VK_KHR_line_rasterization
-
apiext:VK_KHR_vertex_attribute_divisor
-
apiext:VK_KHR_index_type_uint8
-
apiext:VK_KHR_map_memory2
-
apiext:VK_KHR_maintenance5
-
apiext:VK_KHR_push_descriptor