venus: add VK_EXT_extended_dynamic_state2 extension

Implements all the necessary code in the device initialization
and extension functions.

Signed-off-by: Igor Torrente <igor.torrente@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15428>
This commit is contained in:
Igor Torrente
2022-03-17 10:30:03 -03:00
committed by Marge Bot
parent c80fa97d18
commit 5d33068cd9
3 changed files with 47 additions and 0 deletions
+37
View File
@@ -1527,3 +1527,40 @@ vn_CmdSetViewportWithCount(VkCommandBuffer commandBuffer,
VN_CMD_ENQUEUE(vkCmdSetViewportWithCount, commandBuffer, viewportCount,
pViewports);
}
void
vn_CmdSetDepthBiasEnable(VkCommandBuffer commandBuffer,
VkBool32 depthBiasEnable)
{
VN_CMD_ENQUEUE(vkCmdSetDepthBiasEnable, commandBuffer, depthBiasEnable);
}
void
vn_CmdSetLogicOpEXT(VkCommandBuffer commandBuffer, VkLogicOp logicOp)
{
VN_CMD_ENQUEUE(vkCmdSetLogicOpEXT, commandBuffer, logicOp);
}
void
vn_CmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer,
uint32_t patchControlPoints)
{
VN_CMD_ENQUEUE(vkCmdSetPatchControlPointsEXT, commandBuffer,
patchControlPoints);
}
void
vn_CmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,
VkBool32 primitiveRestartEnable)
{
VN_CMD_ENQUEUE(vkCmdSetPrimitiveRestartEnable, commandBuffer,
primitiveRestartEnable);
}
void
vn_CmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,
VkBool32 rasterizerDiscardEnable)
{
VN_CMD_ENQUEUE(vkCmdSetRasterizerDiscardEnable, commandBuffer,
rasterizerDiscardEnable);
}
+9
View File
@@ -124,6 +124,9 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
VN_ADD_EXT_TO_PNEXT(exts->EXT_extended_dynamic_state,
feats->extended_dynamic_state,
EXTENDED_DYNAMIC_STATE_FEATURES_EXT, features2);
VN_ADD_EXT_TO_PNEXT(exts->EXT_extended_dynamic_state2,
feats->extended_dynamic_state_2,
EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, features2);
VN_ADD_EXT_TO_PNEXT(exts->EXT_image_robustness, feats->image_robustness,
IMAGE_ROBUSTNESS_FEATURES_EXT, features2);
VN_ADD_EXT_TO_PNEXT(exts->EXT_shader_demote_to_helper_invocation,
@@ -939,6 +942,7 @@ vn_physical_device_get_passthrough_extensions(
/* promoted to VK_VERSION_1_3 */
.EXT_4444_formats = true,
.EXT_extended_dynamic_state = true,
.EXT_extended_dynamic_state2 = true,
.EXT_image_robustness = true,
.EXT_shader_demote_to_helper_invocation = true,
@@ -1670,6 +1674,8 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
/* Vulkan 1.3 */
VkPhysicalDevice4444FormatsFeaturesEXT *argb_4444_formats;
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *extended_dynamic_state;
VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
*extended_dynamic_state2;
VkPhysicalDeviceImageRobustnessFeaturesEXT *image_robustness;
VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
*shader_demote_to_helper_invocation;
@@ -1850,6 +1856,9 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
*u.extended_dynamic_state = feats->extended_dynamic_state;
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
*u.extended_dynamic_state2 = feats->extended_dynamic_state_2;
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
*u.image_robustness = feats->image_robustness;
break;
+1
View File
@@ -25,6 +25,7 @@ struct vn_physical_device_features {
/* Vulkan 1.3 */
VkPhysicalDevice4444FormatsFeaturesEXT argb_4444_formats;
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extended_dynamic_state;
VkPhysicalDeviceExtendedDynamicState2FeaturesEXT extended_dynamic_state_2;
VkPhysicalDeviceImageRobustnessFeaturesEXT image_robustness;
VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
shader_demote_to_helper_invocation;