Skip to content

Struct ILLIXR::vulkan::buffer_pool

template <typename T>

ClassList > ILLIXR > vulkan > buffer_pool

Public Types

Type Name
enum image_state

Public Attributes

Type Name
std::vector< std::array< vk_image, 2 > > depth_image_pool
std::vector< T > image_data = {}
std::vector< std::array< vk_image, 2 > > image_pool
std::mutex image_state_mutex = {}
std::vector< image_state > image_states = {}
image_index_t latest_decoded_image = -1

Public Functions

Type Name
buffer_pool (const std::vector< std::array< vk_image, 2 > > & image_pool, const std::vector< std::array< vk_image, 2 > > & depth_image_pool)
std::pair< image_index_t, T > post_processing_acquire_image (image_index_t last_image_index=-1)
void post_processing_release_image (image_index_t image_index)
image_index_t src_acquire_image ()
void src_release_image (image_index_t image_index, T && data)
Release the image after it has been decoded.

Public Types Documentation

enum image_state

enum ILLIXR::vulkan::buffer_pool::image_state {
    FREE,
    SRC_IN_FLIGHT,
    AVAILABLE,
    POST_PROCESSING_IN_FLIGHT
};

Public Attributes Documentation

variable depth_image_pool

std::vector<std::array<vk_image, 2> > ILLIXR::vulkan::buffer_pool< T >::depth_image_pool;

variable image_data

std::vector<T> ILLIXR::vulkan::buffer_pool< T >::image_data;

variable image_pool

std::vector<std::array<vk_image, 2> > ILLIXR::vulkan::buffer_pool< T >::image_pool;

variable image_state_mutex

std::mutex ILLIXR::vulkan::buffer_pool< T >::image_state_mutex;

variable image_states

std::vector<image_state> ILLIXR::vulkan::buffer_pool< T >::image_states;

variable latest_decoded_image

image_index_t ILLIXR::vulkan::buffer_pool< T >::latest_decoded_image;

Public Functions Documentation

function buffer_pool

inline explicit ILLIXR::vulkan::buffer_pool::buffer_pool (
    const std::vector< std::array< vk_image, 2 > > & image_pool,
    const std::vector< std::array< vk_image, 2 > > & depth_image_pool
) 

function post_processing_acquire_image

inline std::pair< image_index_t, T > ILLIXR::vulkan::buffer_pool::post_processing_acquire_image (
    image_index_t last_image_index=-1
) 

function post_processing_release_image

inline void ILLIXR::vulkan::buffer_pool::post_processing_release_image (
    image_index_t image_index
) 

function src_acquire_image

inline image_index_t ILLIXR::vulkan::buffer_pool::src_acquire_image () 

function src_release_image

Release the image after it has been decoded.

inline void ILLIXR::vulkan::buffer_pool::src_release_image (
    image_index_t image_index,
    T && data
) 

It is the caller's responsibility to ensure that the image is in the DECODE_IN_FLIGHT state. Images must be released in order. If an image is released out of order, the previous images will be marked as free.

Parameters:

  • image_index The index of the image to release.


The documentation for this class was generated from the following file /home/friedel/devel/ILLIXR/include/illixr/vk/vulkan_objects.hpp