mirror of https://gitlab.freedesktop.org/mesa/mesa
v3dv: enable VK_EXT_extended_dynamic_state2
Note that we don't support (and clarify on code why) two of the features of this extension: * extendedDynamicState2PatchControlPoints: as we don't support Tessellation Shaders * extendedDynamicState2LogicOp: as supporting it would need to allow compile shader variants after pipeline creation, that we try to avoid as much as possible (and it is not supported right now) Note that those two features are not mandatory for Vulkan 1.3. From spec: "Promotion to Vulkan 1.3 This extension has been partially promoted. The dynamic state enumerants VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT, and VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT; and the corresponding entry points in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. The enumerants and entry points for dynamic logic operation and patch control points are not promoted, nor is the feature structure. Extension interfaces that were promoted remain available as aliases of the core functionality." Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28980>
This commit is contained in:
parent
8a2d7e3830
commit
39a9f68685
|
@ -486,7 +486,7 @@ Vulkan 1.3 -- all DONE: anv, lvp, nvk, radv, tu, vn
|
||||||
VK_KHR_zero_initialize_workgroup_memory DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
VK_KHR_zero_initialize_workgroup_memory DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||||
VK_EXT_4444_formats DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
VK_EXT_4444_formats DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||||
VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||||
VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
|
VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||||
VK_EXT_inline_uniform_block DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
VK_EXT_inline_uniform_block DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||||
VK_EXT_pipeline_creation_cache_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
VK_EXT_pipeline_creation_cache_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||||
VK_EXT_pipeline_creation_feedback DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
VK_EXT_pipeline_creation_feedback DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||||
|
|
|
@ -202,6 +202,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
|
||||||
.EXT_load_store_op_none = true,
|
.EXT_load_store_op_none = true,
|
||||||
.EXT_inline_uniform_block = true,
|
.EXT_inline_uniform_block = true,
|
||||||
.EXT_extended_dynamic_state = true,
|
.EXT_extended_dynamic_state = true,
|
||||||
|
.EXT_extended_dynamic_state2 = true,
|
||||||
.EXT_external_memory_dma_buf = true,
|
.EXT_external_memory_dma_buf = true,
|
||||||
.EXT_host_query_reset = true,
|
.EXT_host_query_reset = true,
|
||||||
.EXT_image_drm_format_modifier = true,
|
.EXT_image_drm_format_modifier = true,
|
||||||
|
@ -412,6 +413,17 @@ get_features(const struct v3dv_physical_device *physical_device,
|
||||||
/* VK_EXT_extended_dynamic_state */
|
/* VK_EXT_extended_dynamic_state */
|
||||||
.extendedDynamicState = true,
|
.extendedDynamicState = true,
|
||||||
|
|
||||||
|
/* VK_EXT_extended_dynamic_state2 */
|
||||||
|
.extendedDynamicState2 = true,
|
||||||
|
/* We don't support extendedDynamicState2LogicOp as that would require
|
||||||
|
* compile shader variants after the pipeline creation.
|
||||||
|
*/
|
||||||
|
.extendedDynamicState2LogicOp = false,
|
||||||
|
/* We don't support extendedDynamicState2PatchControlPoints as we don't
|
||||||
|
* support Tessellation Shaders
|
||||||
|
*/
|
||||||
|
.extendedDynamicState2PatchControlPoints = false,
|
||||||
|
|
||||||
/* VK_KHR_pipeline_executable_properties */
|
/* VK_KHR_pipeline_executable_properties */
|
||||||
.pipelineExecutableInfo = true,
|
.pipelineExecutableInfo = true,
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue