venus: add VK_EXT_extended_dynamic_state2 extension
authorIgor Torrente <igor.torrente@collabora.com>
Thu, 17 Mar 2022 13:30:03 +0000 (10:30 -0300)
committerMarge Bot <emma+marge@anholt.net>
Thu, 24 Mar 2022 17:35:43 +0000 (17:35 +0000)
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>

src/virtio/vulkan/vn_command_buffer.c
src/virtio/vulkan/vn_physical_device.c
src/virtio/vulkan/vn_physical_device.h

index 2c78b15..155d23f 100644 (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);
+}
index 3325b39..8d0eb31 100644 (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;
index 7008ed5..1c151c8 100644 (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;