Monado OpenXR Runtime
vk_bundle Struct Reference

A bundle of Vulkan functions and objects, used by both Compositor and Compositor client code. More...

#include <vk/vk_helpers.h>

Collaboration diagram for vk_bundle:

Data Fields

enum u_logging_level log_level
 
VkInstance instance
 
uint32_t version
 
VkPhysicalDevice physical_device
 
int physical_device_index
 
VkDevice device
 
struct vk_bundle_queue queues [2]
 queues - a free list of unique queues More...
 
struct vk_bundle_queuemain_queue
 
struct {
external
 
struct {
   bool   timestamp_compute_and_graphics
 Are timestamps available for compute and graphics queues? More...
 
   float   timestamp_period
 Nanoseconds per gpu tick. More...
 
   uint32_t   timestamp_valid_bits
 Valid bits in the queue selected. More...
 
   bool   timeline_semaphore
 Were timeline semaphore requested, available, and enabled? More...
 
   bool   synchronization_2
 Was synchronization2 requested, available, and enabled? More...
 
   bool   present_wait
 Was KHR_present_wait requested, available, and enabled? More...
 
   bool   video_maintenance_1
 Was KHR_video_maintenance1 requested, available, and enabled? More...
 
features
 
struct {
   uint32_t   max_sampler_allocation_count
 Maximum number of sampler objects, as created by vkCreateSampler, which can simultaneously exist on. More...
 
   uint32_t   max_bound_descriptor_sets
 Maximum number of descriptor sets that can be simultaneously used by a pipeline. More...
 
   uint32_t   max_descriptor_set_samplers
 Maximum number of samplers that can be included in a pipeline layout. More...
 
   uint32_t   max_descriptor_set_sampled_images
 Maximum number of sampled images that can be included in a pipeline layout. More...
 
   uint32_t   max_per_stage_descriptor_samplers
 Maximum number of samplers that can be accessible to a single shader stage in a pipeline layout. More...
 
   uint32_t   max_per_stage_descriptor_sampled_images
 Per stage limit on sampled images (includes combined). More...
 
   uint32_t   max_per_stage_descriptor_storage_images
 Per stage limit on storage images. More...
 
limits
 
bool is_tegra
 Is the GPU a tegra device. More...
 
VkDebugReportCallbackEXT debug_report_cb
 
VkPhysicalDeviceMemoryProperties device_memory_props
 
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr
 
PFN_vkCreateInstance vkCreateInstance
 
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties
 

Detailed Description

A bundle of Vulkan functions and objects, used by both Compositor and Compositor client code.

Note that they both have different instances of the object, and thus different VkInstance, etc.

Field Documentation

◆ is_tegra

bool vk_bundle::is_tegra

Is the GPU a tegra device.

◆ max_bound_descriptor_sets

uint32_t vk_bundle::max_bound_descriptor_sets

Maximum number of descriptor sets that can be simultaneously used by a pipeline.

◆ max_descriptor_set_sampled_images

uint32_t vk_bundle::max_descriptor_set_sampled_images

Maximum number of sampled images that can be included in a pipeline layout.

◆ max_descriptor_set_samplers

uint32_t vk_bundle::max_descriptor_set_samplers

Maximum number of samplers that can be included in a pipeline layout.

◆ max_per_stage_descriptor_sampled_images

uint32_t vk_bundle::max_per_stage_descriptor_sampled_images

Per stage limit on sampled images (includes combined).

Referenced by render_max_layers_capable(), and render_resources::render_resources_init().

◆ max_per_stage_descriptor_samplers

uint32_t vk_bundle::max_per_stage_descriptor_samplers

Maximum number of samplers that can be accessible to a single shader stage in a pipeline layout.

Referenced by render_max_layers_capable().

◆ max_per_stage_descriptor_storage_images

uint32_t vk_bundle::max_per_stage_descriptor_storage_images

Per stage limit on storage images.

◆ max_sampler_allocation_count

uint32_t vk_bundle::max_sampler_allocation_count

Maximum number of sampler objects, as created by vkCreateSampler, which can simultaneously exist on.

◆ present_wait

bool vk_bundle::present_wait

Was KHR_present_wait requested, available, and enabled?

◆ queues

struct vk_bundle_queue vk_bundle::queues[2]

queues - a free list of unique queues

One per uniquely identifiable vk queue (family x instance index), duplicate entries must not be stored.

Should not be used directly,

See also
main_queue, encode_queue

Referenced by vk_deinit_mutex(), and vk_init_mutex().

◆ synchronization_2

bool vk_bundle::synchronization_2

Was synchronization2 requested, available, and enabled?

◆ timeline_semaphore

bool vk_bundle::timeline_semaphore

Were timeline semaphore requested, available, and enabled?

Referenced by comp_semaphore_create(), and vk_can_import_and_export_timeline_semaphore().

◆ timestamp_compute_and_graphics

bool vk_bundle::timestamp_compute_and_graphics

Are timestamps available for compute and graphics queues?

◆ timestamp_period

float vk_bundle::timestamp_period

Nanoseconds per gpu tick.

Referenced by render_resources::render_resources_get_duration().

◆ timestamp_valid_bits

uint32_t vk_bundle::timestamp_valid_bits

Valid bits in the queue selected.

◆ video_maintenance_1

bool vk_bundle::video_maintenance_1

Was KHR_video_maintenance1 requested, available, and enabled?


The documentation for this struct was generated from the following file: