lavapipe: EXT_attachment_feedback_loop_layout_dynamic_state
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 1 May 2023 23:16:04 +0000 (19:16 -0400)
committerMarge Bot <emma+marge@anholt.net>
Mon, 15 May 2023 23:15:23 +0000 (23:15 +0000)
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22964>

docs/features.txt
src/gallium/frontends/lavapipe/lvp_device.c
src/gallium/frontends/lavapipe/lvp_execute.c

index 7a3c631..e241143 100644 (file)
@@ -539,7 +539,7 @@ Khronos extensions that are not part of any Vulkan version:
   VK_KHR_xcb_surface                                    DONE (anv, dzn, lvp, radv, tu, v3dv, vn)
   VK_KHR_xlib_surface                                   DONE (anv, dzn, lvp, radv, tu, v3dv, vn)
   VK_EXT_acquire_xlib_display                           DONE (anv, lvp, radv, tu)
-  VK_EXT_attachment_feedback_loop_dynamic_state         DONE (radv)
+  VK_EXT_attachment_feedback_loop_dynamic_state         DONE (lvp, radv)
   VK_EXT_attachment_feedback_loop_layout                DONE (lvp, radv, tu, v3dv)
   VK_EXT_border_color_swizzle                           DONE (anv, lvp, tu, radv/gfx10+, v3dv)
   VK_EXT_buffer_device_address                          DONE (anv/gen8+, radv)
index 60d667d..39a4df0 100644 (file)
@@ -147,6 +147,7 @@ static const struct vk_device_extension_table lvp_device_extensions_supported =
    .ARM_rasterization_order_attachment_access = true,
    .EXT_4444_formats                      = true,
    .EXT_attachment_feedback_loop_layout   = true,
+   .EXT_attachment_feedback_loop_dynamic_state = true,
    .EXT_border_color_swizzle              = true,
    .EXT_calibrated_timestamps             = true,
    .EXT_color_write_enable                = true,
@@ -853,6 +854,12 @@ VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceFeatures2(
          features->depthClipControl = true;
          break;
       }
+      case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
+         VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *features =
+            (VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *)ext;
+         features->attachmentFeedbackLoopDynamicState = true;
+         break;
+      }
       case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
          VkPhysicalDeviceShaderObjectFeaturesEXT *features =
             (VkPhysicalDeviceShaderObjectFeaturesEXT *)ext;
index c217dc4..9781b72 100644 (file)
@@ -4204,6 +4204,7 @@ void lvp_add_enqueue_cmd_entrypoints(struct vk_device_dispatch_table *disp)
    ENQUEUE_CMD(CmdSetShadingRateImageEnableNV)
    ENQUEUE_CMD(CmdSetViewportSwizzleNV)
    ENQUEUE_CMD(CmdSetViewportWScalingEnableNV)
+   ENQUEUE_CMD(CmdSetAttachmentFeedbackLoopEnableEXT)
 
 #undef ENQUEUE_CMD
 }
@@ -4522,6 +4523,8 @@ static void lvp_execute_cmd_buffer(struct lvp_cmd_buffer *cmd_buffer,
       case VK_CMD_BIND_SHADERS_EXT:
          handle_shaders(cmd, state);
          break;
+      case VK_CMD_SET_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:
+         break;
       default:
          fprintf(stderr, "Unsupported command %s\n", vk_cmd_queue_type_names[cmd->type]);
          unreachable("Unsupported command");