wsi_wl_image_finish(struct wsi_wl_swapchain *chain, struct wsi_wl_image *image,
const VkAllocationCallbacks* pAllocator)
{
- VkDevice vk_device = anv_device_to_handle(chain->base.device);
+ VkDevice vk_device = chain->base.device;
anv_FreeMemory(vk_device, anv_device_memory_to_handle(image->memory),
pAllocator);
anv_DestroyImage(vk_device, anv_image_to_handle(image->image),
const VkSwapchainCreateInfoKHR *pCreateInfo,
const VkAllocationCallbacks* pAllocator)
{
- VkDevice vk_device = anv_device_to_handle(chain->base.device);
+ VkDevice vk_device = chain->base.device;
+ struct anv_device *device = anv_device_from_handle(vk_device);
VkResult result;
VkImage vk_image;
if (result != VK_SUCCESS)
goto fail_mem;
- int ret = anv_gem_set_tiling(chain->base.device,
+ int ret = anv_gem_set_tiling(device,
image->memory->bo.gem_handle,
surface->isl.row_pitch, I915_TILING_X);
if (ret) {
goto fail_mem;
}
- int fd = anv_gem_handle_to_fd(chain->base.device,
+ int fd = anv_gem_handle_to_fd(device,
image->memory->bo.gem_handle);
if (fd == -1) {
/* FINISHME: Choose a better error. */
const VkAllocationCallbacks *pAllocator)
{
struct wsi_wl_swapchain *chain = (struct wsi_wl_swapchain *)anv_chain;
-
+ struct anv_device *device = anv_device_from_handle(chain->base.device);
for (uint32_t i = 0; i < chain->image_count; i++) {
if (chain->images[i].buffer)
wsi_wl_image_finish(chain, &chain->images[i], pAllocator);
}
- vk_free2(&chain->base.device->alloc, pAllocator, chain);
+ vk_free2(&device->alloc, pAllocator, chain);
return VK_SUCCESS;
}
if (chain == NULL)
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
- chain->base.device = device;
+ chain->base.device = anv_device_to_handle(device);
chain->base.destroy = wsi_wl_swapchain_destroy;
chain->base.get_images = wsi_wl_swapchain_get_images;
chain->base.acquire_next_image = wsi_wl_swapchain_acquire_next_image;
cookie = xcb_free_pixmap(chain->conn, image->pixmap);
xcb_discard_reply(chain->conn, cookie.sequence);
- x11_anv_free_image(anv_device_to_handle(chain->base.device),
- pAllocator,
+ x11_anv_free_image(chain->base.device, pAllocator,
image->image, image->memory);
}
const VkAllocationCallbacks *pAllocator)
{
struct x11_swapchain *chain = (struct x11_swapchain *)anv_chain;
-
+ struct anv_device *device = anv_device_from_handle(chain->base.device);
for (uint32_t i = 0; i < chain->image_count; i++)
x11_image_finish(chain, pAllocator, &chain->images[i]);
xcb_unregister_for_special_event(chain->conn, chain->special_event);
- vk_free2(&chain->base.device->alloc, pAllocator, chain);
+ vk_free2(&device->alloc, pAllocator, chain);
return VK_SUCCESS;
}
if (chain == NULL)
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
- chain->base.device = device;
+ chain->base.device = anv_device_to_handle(device);
chain->base.destroy = x11_swapchain_destroy;
chain->base.get_images = x11_get_images;
chain->base.acquire_next_image = x11_acquire_next_image;