Monado OpenXR Runtime
vk_image_allocator.c File Reference

Vulkan image allocator helper. More...

#include "util/u_misc.h"
#include "util/u_logging.h"
#include "util/u_handles.h"
#include "vk/vk_image_allocator.h"
#include <xrt/xrt_handles.h>
#include <unistd.h>
Include dependency graph for vk_image_allocator.c:

Data Structures

struct  format_list_helper
 

Macros

#define CHAIN(STRUCT)
 

Functions

static VkExternalMemoryHandleTypeFlags get_image_memory_handle_type (void)
 
static void add_format_non_dup (struct format_list_helper *flh, VkFormat format)
 
static VkResult create_image (struct vk_bundle *vk, const struct xrt_swapchain_create_info *info, struct vk_image *out_image)
 
static void destroy_image (struct vk_bundle *vk, struct vk_image *image)
 
VkResult vk_ic_allocate (struct vk_bundle *vk, const struct xrt_swapchain_create_info *xscci, uint32_t image_count, struct vk_image_collection *out_vkic)
 Allocates image(s) using the information specified in the swapchain create info. More...
 
VkResult vk_ic_from_natives (struct vk_bundle *vk, const struct xrt_swapchain_create_info *xscci, struct xrt_image_native *native_images, uint32_t image_count, struct vk_image_collection *out_vkic)
 Imports and set images from the given FDs. More...
 
void vk_ic_destroy (struct vk_bundle *vk, struct vk_image_collection *vkic)
 Free all images created on this image collection, doesn't free the struct itself so the caller needs to ensure that. More...
 
VkResult vk_ic_get_handles (struct vk_bundle *vk, struct vk_image_collection *vkic, uint32_t max_handles, xrt_graphics_buffer_handle_t *out_handles)
 Get the native handles (FDs on desktop Linux) for the images, this is a all or nothing function. More...
 

Detailed Description

Vulkan image allocator helper.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m

Macro Definition Documentation

◆ CHAIN

#define CHAIN (   STRUCT)
Value:
do { \
(STRUCT).pNext = next_chain; \
next_chain = (void *)&(STRUCT); \
} while (false)