summaryrefslogtreecommitdiffstats
path: root/src/vulkan/wsi/wsi_common_x11.c
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-11-16 09:56:37 -0800
committerJason Ekstrand <[email protected]>2017-12-04 10:04:19 -0800
commit393aa3f6c929fdbcaa599597e28a3206aa09dcc2 (patch)
treee5a4f32c38620b7edb1856d06e2115e914792ca0 /src/vulkan/wsi/wsi_common_x11.c
parent1117f843fe6223a50aeedfd943696ac4a7b4691f (diff)
vulkan/wsi: Move get_images into common code
This moves bits out of all four corners (anv, radv, x11, wayland) and into the wsi common code. We also switch to using an outarray to ensure we get our return code right. Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Chad Versace <[email protected]>
Diffstat (limited to 'src/vulkan/wsi/wsi_common_x11.c')
-rw-r--r--src/vulkan/wsi/wsi_common_x11.c29
1 files changed, 5 insertions, 24 deletions
diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c
index 68cb0355612..8860d8edb6e 100644
--- a/src/vulkan/wsi/wsi_common_x11.c
+++ b/src/vulkan/wsi/wsi_common_x11.c
@@ -648,30 +648,11 @@ struct x11_swapchain {
struct x11_image images[0];
};
-static VkResult
-x11_get_images(struct wsi_swapchain *anv_chain,
- uint32_t* pCount, VkImage *pSwapchainImages)
+static struct wsi_image *
+x11_get_wsi_image(struct wsi_swapchain *wsi_chain, uint32_t image_index)
{
- struct x11_swapchain *chain = (struct x11_swapchain *)anv_chain;
- uint32_t ret_count;
- VkResult result;
-
- if (pSwapchainImages == NULL) {
- *pCount = chain->base.image_count;
- return VK_SUCCESS;
- }
-
- result = VK_SUCCESS;
- ret_count = chain->base.image_count;
- if (chain->base.image_count > *pCount) {
- ret_count = *pCount;
- result = VK_INCOMPLETE;
- }
-
- for (uint32_t i = 0; i < ret_count; i++)
- pSwapchainImages[i] = chain->images[i].base.image;
-
- return result;
+ struct x11_swapchain *chain = (struct x11_swapchain *)wsi_chain;
+ return &chain->images[image_index].base;
}
static VkResult
@@ -1109,7 +1090,7 @@ x11_surface_create_swapchain(VkIcdSurfaceBase *icd_surface,
goto fail_alloc;
chain->base.destroy = x11_swapchain_destroy;
- chain->base.get_images = x11_get_images;
+ chain->base.get_wsi_image = x11_get_wsi_image;
chain->base.acquire_next_image = x11_acquire_next_image;
chain->base.queue_present = x11_queue_present;
chain->base.present_mode = pCreateInfo->presentMode;