From: Daniel Stone <dani...@collabora.com> Not currently used.
Signed-off-by: Daniel Stone <dani...@collabora.com> --- src/amd/vulkan/radv_wsi.c | 13 +++++++------ src/intel/vulkan/anv_wsi.c | 9 +++++---- src/vulkan/wsi/wsi_common.h | 9 +++++---- src/vulkan/wsi/wsi_common_wayland.c | 11 +++++++---- src/vulkan/wsi/wsi_common_x11.c | 12 ++++++++---- 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/amd/vulkan/radv_wsi.c b/src/amd/vulkan/radv_wsi.c index 9a490e1e76..135808461f 100644 --- a/src/amd/vulkan/radv_wsi.c +++ b/src/amd/vulkan/radv_wsi.c @@ -212,22 +212,23 @@ radv_wsi_image_create(VkDevice device_h, RADV_FROM_HANDLE(radv_device_memory, memory, memory_h); if (!radv_get_memory_fd(device, memory, &fd)) goto fail_alloc_memory; - wsi_image->fd = fd; + wsi_image->fds[0] = fd; } else { - wsi_image->fd = -1; + wsi_image->fds[0] = -1; } surface = &image->surface; wsi_image->image = image_h; wsi_image->memory = memory_h; - wsi_image->size = image->size; - wsi_image->offset = image->offset; + wsi_image->num_planes = 1; + wsi_image->sizes[0] = image->size; + wsi_image->offsets[0] = image->offset; if (device->physical_device->rad_info.chip_class >= GFX9) - wsi_image->row_pitch = + wsi_image->row_pitches[0] = surface->u.gfx9.surf_pitch * surface->bpe; else - wsi_image->row_pitch = + wsi_image->row_pitches[0] = surface->u.legacy.level[0].nblk_x * surface->bpe; return VK_SUCCESS; diff --git a/src/intel/vulkan/anv_wsi.c b/src/intel/vulkan/anv_wsi.c index a1b12e5f72..4454930d45 100644 --- a/src/intel/vulkan/anv_wsi.c +++ b/src/intel/vulkan/anv_wsi.c @@ -265,10 +265,11 @@ anv_wsi_image_create(VkDevice device_h, wsi_image->image = image_h; wsi_image->memory = memory_h; - wsi_image->fd = fd; - wsi_image->size = image->size; - wsi_image->offset = image->offset; - wsi_image->row_pitch = surface->isl.row_pitch; + wsi_image->num_planes = 1; + wsi_image->fds[0] = fd; + wsi_image->sizes[0] = image->size; + wsi_image->offsets[0] = image->offset; + wsi_image->row_pitches[0] = surface->isl.row_pitch; return VK_SUCCESS; fail_alloc_memory: anv_FreeMemory(device_h, memory_h, pAllocator); diff --git a/src/vulkan/wsi/wsi_common.h b/src/vulkan/wsi/wsi_common.h index 1103703b0e..b6c5a438b1 100644 --- a/src/vulkan/wsi/wsi_common.h +++ b/src/vulkan/wsi/wsi_common.h @@ -33,10 +33,11 @@ struct wsi_image_base { VkImage image; VkDeviceMemory memory; - uint32_t size; - uint32_t offset; - uint32_t row_pitch; - int fd; + int num_planes; + uint32_t sizes[4]; + uint32_t offsets[4]; + uint32_t row_pitches[4]; + int fds[4]; }; struct wsi_device; diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c index 36cc4d0821..a76e29d26e 100644 --- a/src/vulkan/wsi/wsi_common_wayland.c +++ b/src/vulkan/wsi/wsi_common_wayland.c @@ -736,15 +736,18 @@ wsi_wl_image_init(struct wsi_wl_swapchain *chain, if (result != VK_SUCCESS) return result; + /* Without passing modifiers, we can't have multi-plane RGB images. */ + assert(image->base.num_planes == 1); + image->buffer = wl_drm_create_prime_buffer(chain->drm_wrapper, - image->base.fd, /* name */ + image->base.fds[0], /* name */ chain->extent.width, chain->extent.height, chain->drm_format, - image->base.offset, - image->base.row_pitch, + image->base.offsets[0], + image->base.row_pitches[0], 0, 0, 0, 0 /* unused */); - close(image->base.fd); + close(image->base.fds[0]); if (!image->buffer) goto fail_image; diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c index 997255913c..f9954d6e37 100644 --- a/src/vulkan/wsi/wsi_common_x11.c +++ b/src/vulkan/wsi/wsi_common_x11.c @@ -987,18 +987,22 @@ x11_image_init(VkDevice device_h, struct x11_swapchain *chain, struct wsi_image_base *image_ws = chain->base.needs_linear_copy ? &image->linear_base : &image->base; + + /* Without passing modifiers, we can't have multi-plane RGB images. */ + assert(image_ws->num_planes == 1); + cookie = xcb_dri3_pixmap_from_buffer_checked(chain->conn, image->pixmap, chain->window, - image_ws->size, + image_ws->sizes[0], pCreateInfo->imageExtent.width, pCreateInfo->imageExtent.height, - image_ws->row_pitch, + image_ws->row_pitches[0], chain->depth, bpp, - image_ws->fd); + image_ws->fds[0]); xcb_discard_reply(chain->conn, cookie.sequence); - image_ws->fd = -1; /* XCB has now taken ownership of the FD */ + image_ws->fds[0] = -1; /* XCB has now taken ownership of the FD */ int fence_fd = xshmfence_alloc_shm(); if (fence_fd < 0) -- 2.13.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev