vulkan/wsi: Stop using VK_OUTARRAY_MAKE()
authorBoris Brezillon <boris.brezillon@collabora.com>
Wed, 23 Mar 2022 13:06:00 +0000 (14:06 +0100)
committerMarge Bot <emma+marge@anholt.net>
Fri, 25 Mar 2022 11:00:03 +0000 (11:00 +0000)
We're trying to replace VK_OUTARRAY_MAKE() by VK_OUTARRAY_MAKE_TYPED()
so people don't get tempted to use it and make things incompatible with
MSVC (which doesn't support typeof()).

Suggested-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15522>

src/vulkan/wsi/wsi_common_display.c
src/vulkan/wsi/wsi_common_wayland.c
src/vulkan/wsi/wsi_common_x11.c

index d933b7f..3c9f3b1 100644 (file)
@@ -526,11 +526,12 @@ wsi_GetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,
    if (result != VK_SUCCESS)
       goto bail;
 
-   VK_OUTARRAY_MAKE(conn, pProperties, pPropertyCount);
+   VK_OUTARRAY_MAKE_TYPED(VkDisplayProperties2KHR, conn,
+                          pProperties, pPropertyCount);
 
    wsi_for_each_connector(connector, wsi) {
       if (connector->connected) {
-         vk_outarray_append(&conn, prop) {
+         vk_outarray_append_typed(VkDisplayProperties2KHR, &conn, prop) {
             wsi_display_fill_in_display_properties(wsi_device,
                                                    connector,
                                                    prop);
@@ -580,10 +581,11 @@ wsi_GetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,
    if (result != VK_SUCCESS)
       goto bail;
 
-   VK_OUTARRAY_MAKE(conn, pProperties, pPropertyCount);
+   VK_OUTARRAY_MAKE_TYPED(VkDisplayPlanePropertiesKHR, conn,
+                          pProperties, pPropertyCount);
 
    wsi_for_each_connector(connector, wsi) {
-      vk_outarray_append(&conn, prop) {
+      vk_outarray_append_typed(VkDisplayPlanePropertiesKHR, &conn, prop) {
          VkDisplayPlaneProperties2KHR prop2 = {
             .sType = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
          };
@@ -614,10 +616,11 @@ wsi_GetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,
    if (result != VK_SUCCESS)
       goto bail;
 
-   VK_OUTARRAY_MAKE(conn, pProperties, pPropertyCount);
+   VK_OUTARRAY_MAKE_TYPED(VkDisplayPlaneProperties2KHR, conn,
+                          pProperties, pPropertyCount);
 
    wsi_for_each_connector(connector, wsi) {
-      vk_outarray_append(&conn, prop) {
+      vk_outarray_append_typed(VkDisplayPlaneProperties2KHR, &conn, prop) {
          wsi_display_fill_in_display_plane_properties(wsi_device, connector,
                                                       prop);
       }
@@ -644,13 +647,13 @@ wsi_GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,
    struct wsi_display *wsi =
       (struct wsi_display *) wsi_device->wsi[VK_ICD_WSI_PLATFORM_DISPLAY];
 
-   VK_OUTARRAY_MAKE(conn, pDisplays, pDisplayCount);
+   VK_OUTARRAY_MAKE_TYPED(VkDisplayKHR, conn, pDisplays, pDisplayCount);
 
    int c = 0;
 
    wsi_for_each_connector(connector, wsi) {
       if (c == planeIndex && connector->connected) {
-         vk_outarray_append(&conn, display) {
+         vk_outarray_append_typed(VkDisplayKHR, &conn, display) {
             *display = wsi_display_connector_to_handle(connector);
          }
       }
@@ -690,13 +693,14 @@ wsi_GetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,
    struct wsi_display_connector *connector =
       wsi_display_connector_from_handle(display);
 
-   VK_OUTARRAY_MAKE(conn, pProperties, pPropertyCount);
+   VK_OUTARRAY_MAKE_TYPED(VkDisplayModePropertiesKHR, conn,
+                          pProperties, pPropertyCount);
 
    wsi_for_each_display_mode(display_mode, connector) {
       if (!display_mode->valid)
          continue;
 
-      vk_outarray_append(&conn, prop) {
+      vk_outarray_append_typed(VkDisplayModePropertiesKHR, &conn, prop) {
          VkDisplayModeProperties2KHR prop2 = {
             .sType = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
          };
@@ -719,13 +723,14 @@ wsi_GetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,
    struct wsi_display_connector *connector =
       wsi_display_connector_from_handle(display);
 
-   VK_OUTARRAY_MAKE(conn, pProperties, pPropertyCount);
+   VK_OUTARRAY_MAKE_TYPED(VkDisplayModeProperties2KHR, conn,
+                          pProperties, pPropertyCount);
 
    wsi_for_each_display_mode(display_mode, connector) {
       if (!display_mode->valid)
          continue;
 
-      vk_outarray_append(&conn, prop) {
+      vk_outarray_append_typed(VkDisplayModeProperties2KHR, &conn, prop) {
          wsi_display_fill_in_display_mode_properties(wsi_device,
                                                      display_mode, prop);
       }
@@ -983,13 +988,14 @@ wsi_display_surface_get_formats(VkIcdSurfaceBase *icd_surface,
                                 uint32_t *surface_format_count,
                                 VkSurfaceFormatKHR *surface_formats)
 {
-   VK_OUTARRAY_MAKE(out, surface_formats, surface_format_count);
+   VK_OUTARRAY_MAKE_TYPED(VkSurfaceFormatKHR, out,
+                          surface_formats, surface_format_count);
 
    VkFormat sorted_formats[ARRAY_SIZE(available_surface_formats)];
    get_sorted_vk_formats(wsi_device, sorted_formats);
 
    for (unsigned i = 0; i < ARRAY_SIZE(sorted_formats); i++) {
-      vk_outarray_append(&out, f) {
+      vk_outarray_append_typed(VkSurfaceFormatKHR, &out, f) {
          f->format = sorted_formats[i];
          f->colorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
       }
@@ -1005,13 +1011,14 @@ wsi_display_surface_get_formats2(VkIcdSurfaceBase *surface,
                                  uint32_t *surface_format_count,
                                  VkSurfaceFormat2KHR *surface_formats)
 {
-   VK_OUTARRAY_MAKE(out, surface_formats, surface_format_count);
+   VK_OUTARRAY_MAKE_TYPED(VkSurfaceFormat2KHR, out,
+                          surface_formats, surface_format_count);
 
    VkFormat sorted_formats[ARRAY_SIZE(available_surface_formats)];
    get_sorted_vk_formats(wsi_device, sorted_formats);
 
    for (unsigned i = 0; i < ARRAY_SIZE(sorted_formats); i++) {
-      vk_outarray_append(&out, f) {
+      vk_outarray_append_typed(VkSurfaceFormat2KHR, &out, f) {
          assert(f->sType == VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR);
          f->surfaceFormat.format = sorted_formats[i];
          f->surfaceFormat.colorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
@@ -1026,9 +1033,10 @@ wsi_display_surface_get_present_modes(VkIcdSurfaceBase *surface,
                                       uint32_t *present_mode_count,
                                       VkPresentModeKHR *present_modes)
 {
-   VK_OUTARRAY_MAKE(conn, present_modes, present_mode_count);
+   VK_OUTARRAY_MAKE_TYPED(VkPresentModeKHR, conn,
+                          present_modes, present_mode_count);
 
-   vk_outarray_append(&conn, present) {
+   vk_outarray_append_typed(VkPresentModeKHR, &conn, present) {
       *present = VK_PRESENT_MODE_FIFO_KHR;
    }
 
@@ -1043,10 +1051,10 @@ wsi_display_surface_get_present_rectangles(VkIcdSurfaceBase *surface_base,
 {
    VkIcdSurfaceDisplay *surface = (VkIcdSurfaceDisplay *) surface_base;
    wsi_display_mode *mode = wsi_display_mode_from_handle(surface->displayMode);
-   VK_OUTARRAY_MAKE(out, pRects, pRectCount);
+   VK_OUTARRAY_MAKE_TYPED(VkRect2D, out, pRects, pRectCount);
 
    if (wsi_device_matches_drm_fd(wsi_device, mode->connector->wsi->fd)) {
-      vk_outarray_append(&out, rect) {
+      vk_outarray_append_typed(VkRect2D, &out, rect) {
          *rect = (VkRect2D) {
             .offset = { 0, 0 },
             .extent = { mode->hdisplay, mode->vdisplay },
index e0af607..39e5a51 100644 (file)
@@ -780,7 +780,8 @@ wsi_wl_surface_get_formats(VkIcdSurfaceBase *icd_surface,
                            wsi_device->sw))
       return VK_ERROR_SURFACE_LOST_KHR;
 
-   VK_OUTARRAY_MAKE(out, pSurfaceFormats, pSurfaceFormatCount);
+   VK_OUTARRAY_MAKE_TYPED(VkSurfaceFormatKHR, out,
+                          pSurfaceFormats, pSurfaceFormatCount);
 
    struct wsi_wl_format *disp_fmt;
    u_vector_foreach(disp_fmt, &display.formats) {
@@ -791,7 +792,7 @@ wsi_wl_surface_get_formats(VkIcdSurfaceBase *icd_surface,
           !(disp_fmt->flags & WSI_WL_FMT_OPAQUE))
          continue;
 
-      vk_outarray_append(&out, out_fmt) {
+      vk_outarray_append_typed(VkSurfaceFormatKHR, &out, out_fmt) {
          out_fmt->format = disp_fmt->vk_format;
          out_fmt->colorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
       }
@@ -818,7 +819,8 @@ wsi_wl_surface_get_formats2(VkIcdSurfaceBase *icd_surface,
                            wsi_device->sw))
       return VK_ERROR_SURFACE_LOST_KHR;
 
-   VK_OUTARRAY_MAKE(out, pSurfaceFormats, pSurfaceFormatCount);
+   VK_OUTARRAY_MAKE_TYPED(VkSurfaceFormat2KHR, out,
+                          pSurfaceFormats, pSurfaceFormatCount);
 
    struct wsi_wl_format *disp_fmt;
    u_vector_foreach(disp_fmt, &display.formats) {
@@ -829,7 +831,7 @@ wsi_wl_surface_get_formats2(VkIcdSurfaceBase *icd_surface,
           !(disp_fmt->flags & WSI_WL_FMT_OPAQUE))
          continue;
 
-      vk_outarray_append(&out, out_fmt) {
+      vk_outarray_append_typed(VkSurfaceFormat2KHR, &out, out_fmt) {
          out_fmt->surfaceFormat.format = disp_fmt->vk_format;
          out_fmt->surfaceFormat.colorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
       }
@@ -865,9 +867,9 @@ wsi_wl_surface_get_present_rectangles(VkIcdSurfaceBase *surface,
                                       uint32_t* pRectCount,
                                       VkRect2D* pRects)
 {
-   VK_OUTARRAY_MAKE(out, pRects, pRectCount);
+   VK_OUTARRAY_MAKE_TYPED(VkRect2D, out, pRects, pRectCount);
 
-   vk_outarray_append(&out, rect) {
+   vk_outarray_append_typed(VkRect2D, &out, rect) {
       /* We don't know a size so just return the usual "I don't know." */
       *rect = (VkRect2D) {
          .offset = { 0, 0 },
index 6b09d73..8f5ba92 100644 (file)
@@ -745,7 +745,8 @@ x11_surface_get_formats(VkIcdSurfaceBase *surface,
                         uint32_t *pSurfaceFormatCount,
                         VkSurfaceFormatKHR *pSurfaceFormats)
 {
-   VK_OUTARRAY_MAKE(out, pSurfaceFormats, pSurfaceFormatCount);
+   VK_OUTARRAY_MAKE_TYPED(VkSurfaceFormatKHR, out,
+                          pSurfaceFormats, pSurfaceFormatCount);
 
    unsigned count;
    VkFormat sorted_formats[ARRAY_SIZE(formats)];
@@ -753,7 +754,7 @@ x11_surface_get_formats(VkIcdSurfaceBase *surface,
       return VK_ERROR_SURFACE_LOST_KHR;
 
    for (unsigned i = 0; i < count; i++) {
-      vk_outarray_append(&out, f) {
+      vk_outarray_append_typed(VkSurfaceFormatKHR, &out, f) {
          f->format = sorted_formats[i];
          f->colorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
       }
@@ -769,7 +770,8 @@ x11_surface_get_formats2(VkIcdSurfaceBase *surface,
                         uint32_t *pSurfaceFormatCount,
                         VkSurfaceFormat2KHR *pSurfaceFormats)
 {
-   VK_OUTARRAY_MAKE(out, pSurfaceFormats, pSurfaceFormatCount);
+   VK_OUTARRAY_MAKE_TYPED(VkSurfaceFormat2KHR, out,
+                          pSurfaceFormats, pSurfaceFormatCount);
 
    unsigned count;
    VkFormat sorted_formats[ARRAY_SIZE(formats)];
@@ -777,7 +779,7 @@ x11_surface_get_formats2(VkIcdSurfaceBase *surface,
       return VK_ERROR_SURFACE_LOST_KHR;
 
    for (unsigned i = 0; i < count; i++) {
-      vk_outarray_append(&out, f) {
+      vk_outarray_append_typed(VkSurfaceFormat2KHR, &out, f) {
          assert(f->sType == VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR);
          f->surfaceFormat.format = sorted_formats[i];
          f->surfaceFormat.colorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
@@ -812,9 +814,9 @@ x11_surface_get_present_rectangles(VkIcdSurfaceBase *icd_surface,
 {
    xcb_connection_t *conn = x11_surface_get_connection(icd_surface);
    xcb_window_t window = x11_surface_get_window(icd_surface);
-   VK_OUTARRAY_MAKE(out, pRects, pRectCount);
+   VK_OUTARRAY_MAKE_TYPED(VkRect2D, out, pRects, pRectCount);
 
-   vk_outarray_append(&out, rect) {
+   vk_outarray_append_typed(VkRect2D, &out, rect) {
       xcb_generic_error_t *err = NULL;
       xcb_get_geometry_cookie_t geom_cookie = xcb_get_geometry(conn, window);
       xcb_get_geometry_reply_t *geom =