Monado OpenXR Runtime
Loading...
Searching...
No Matches
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 [3]
 queues - a free list of unique queues
 
struct vk_bundle_queuemain_queue
 Main queue for general work.
 
struct vk_bundle_queuegraphics_queue
 Graphics 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.
 
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

◆ graphics_queue

struct vk_bundle_queue* vk_bundle::graphics_queue

Graphics queue.

Always a graphics queue, even in compute-only mode. In normal mode, aliases with main_queue. In compute-only mode, this is a separate graphics queue.

Referenced by vk_create_device(), vk_init_from_given(), and vk_print_queues_info().

◆ is_tegra

bool vk_bundle::is_tegra

Is the GPU a tegra device.

◆ main_queue

struct vk_bundle_queue* vk_bundle::main_queue

Main queue for general work.

In normal mode, this is a graphics queue. In compute-only mode, this is a compute queue.

May alias with graphics_queue.

Referenced by client_vk_swapchain_create(), image_cleanup(), render_resources::render_resources_init(), vk_cmd_pool::vk_cmd_pool_init(), vk_create_and_submit_fence_native(), vk_create_device(), vk_init_from_given(), and vk_print_queues_info().

◆ 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?

Referenced by vk_create_device().

◆ queues

struct vk_bundle_queue vk_bundle::queues[3]

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, graphics_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?

Referenced by vk_create_device().

◆ timeline_semaphore

bool vk_bundle::timeline_semaphore

Were timeline semaphore requested, available, and enabled?

Referenced by comp_semaphore_create(), vk_can_import_and_export_timeline_semaphore(), vk_create_device(), vk_init_from_given(), and vk_print_features_info().

◆ timestamp_compute_and_graphics

bool vk_bundle::timestamp_compute_and_graphics

Are timestamps available for compute and graphics queues?

Referenced by vk_print_features_info().

◆ timestamp_period

float vk_bundle::timestamp_period

Nanoseconds per gpu tick.

Referenced by render_resources::render_resources_get_duration(), and vk_print_features_info().

◆ timestamp_valid_bits

uint32_t vk_bundle::timestamp_valid_bits

Valid bits in the queue selected.

Referenced by vk_print_features_info().

◆ video_maintenance_1

bool vk_bundle::video_maintenance_1

Was KHR_video_maintenance1 requested, available, and enabled?

Referenced by vk_create_device().


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