diff --git a/src/vulkan/wsi/wsi_common_display.c b/src/vulkan/wsi/wsi_common_display.c index d933b7f608c..3c9f3b1c32b 100644 --- a/src/vulkan/wsi/wsi_common_display.c +++ b/src/vulkan/wsi/wsi_common_display.c @@ -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 }, diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c index e0af6076eba..39e5a51a8c2 100644 --- a/src/vulkan/wsi/wsi_common_wayland.c +++ b/src/vulkan/wsi/wsi_common_wayland.c @@ -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 }, diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c index 6b09d7301f4..8f5ba92ef4f 100644 --- a/src/vulkan/wsi/wsi_common_x11.c +++ b/src/vulkan/wsi/wsi_common_x11.c @@ -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 =