Halide 22.0.0 Halide compiler and libraries

Classes | Functions | Variables
Halide::Runtime::Internal::Vulkan Namespace Reference

## Classes
struct | VulkanCompilationCacheEntry
struct | VulkanCompiledShaderModule
class | VulkanContext
struct | VulkanDispatchData
class | VulkanMemoryAllocator
| Vulkan Memory Allocator class interface for managing large memory requests stored as contiguous blocks of memory, which are then sub-allocated into smaller regions of memory to avoid the excessive cost of vkAllocate and the limited number of available allocation calls through the API. More...
struct | VulkanMemoryConfig
struct | VulkanShaderBinding
struct | VulkanSharedMemoryAllocation
struct | VulkanSpecializationConstant
struct | VulkanWorkgroupSizeBinding

## Functions
WEAK void * | halide_vulkan_get_symbol (void *user_context, const char *name)
void WEAK | vk_load_vulkan_loader_functions (void *user_context)
void WEAK | vk_load_vulkan_instance_functions (void *user_context, VkInstance instance)
void WEAK | vk_unload_vulkan_instance_functions (void *user_context)
void WEAK | vk_load_vulkan_device_functions (void *user_context, VkDevice device)
void WEAK | vk_unload_vulkan_device_functions (void *user_context)

## Variables
halide_vulkan_memory_allocator *WEAK | cached_allocator = nullptr
VkInstance WEAK | cached_instance = VK_NULL_HANDLE
VkDevice WEAK | cached_device = VK_NULL_HANDLE
VkQueue WEAK | cached_queue = VK_NULL_HANDLE
VkPhysicalDevice WEAK | cached_physical_device = VK_NULL_HANDLE
uint32_t WEAK | cached_queue_family_index = 0
VkDebugUtilsMessengerEXT WEAK | cached_messenger = VK_NULL_HANDLE
WEAK halide_mutex | thread_lock
WEAK char | layer_names [1024]
WEAK ScopedSpinLock::AtomicFlag | layer_names_lock = 0
WEAK bool | layer_names_initialized = false
WEAK char | extension_names [1024]
WEAK ScopedSpinLock::AtomicFlag | extension_names_lock = 0
WEAK bool | extension_names_initialized = false
WEAK char | device_type [256]
WEAK ScopedSpinLock::AtomicFlag | device_type_lock = 0
WEAK bool | device_type_initialized = false
WEAK char | build_options [1024]
WEAK ScopedSpinLock::AtomicFlag | build_options_lock = 0
WEAK bool | build_options_initialized = false
WEAK char | alloc_config [1024]
WEAK ScopedSpinLock::AtomicFlag | alloc_config_lock = 0
WEAK bool | alloc_config_initialized = false
WEAK halide_device_interface_t | vulkan_device_interface
WEAK void * | lib_vulkan = nullptr
WEAK ScopedSpinLock::AtomicFlag | custom_allocation_callbacks_lock = 0
WEAK const VkAllocationCallbacks * | custom_allocation_callbacks = nullptr
WEAK VulkanMemoryConfig | memory_allocator_config
WEAK Halide::Internal::GPUCompilationCache< VkDevice, VulkanCompilationCacheEntry * > | compilation_cache

## Function Documentation

## ◆ halide_vulkan_get_symbol()

WEAK void * Halide::Runtime::Internal::Vulkan::halide_vulkan_get_symbol | ( | void * | user_context,
|  | const char * | name
| ) |  |

Definition at line 42 of file vulkan_interface.h.

References debug, getenv(), halide_get_library_symbol(), halide_load_library(), lib_vulkan, Halide::print(), and user_context.

## ◆ vk_load_vulkan_loader_functions()

void WEAK Halide::Runtime::Internal::Vulkan::vk_load_vulkan_loader_functions | ( | void * | user_context | ) |

Definition at line 110 of file vulkan_interface.h.

References debug, and user_context.

## ◆ vk_load_vulkan_instance_functions()

void WEAK Halide::Runtime::Internal::Vulkan::vk_load_vulkan_instance_functions | ( | void * | user_context,
|  | VkInstance | instance
| ) |  |

Definition at line 120 of file vulkan_interface.h.

References debug, and user_context.

## ◆ vk_unload_vulkan_instance_functions()

void WEAK Halide::Runtime::Internal::Vulkan::vk_unload_vulkan_instance_functions | ( | void * | user_context | ) |

Definition at line 130 of file vulkan_interface.h.

## ◆ vk_load_vulkan_device_functions()

void WEAK Halide::Runtime::Internal::Vulkan::vk_load_vulkan_device_functions | ( | void * | user_context,
|  | VkDevice | device
| ) |  |

Definition at line 139 of file vulkan_interface.h.

References debug, and user_context.

## ◆ vk_unload_vulkan_device_functions()

void WEAK Halide::Runtime::Internal::Vulkan::vk_unload_vulkan_device_functions | ( | void * | user_context | ) |

Definition at line 149 of file vulkan_interface.h.

## Variable Documentation

## ◆ cached_allocator

halide_vulkan_memory_allocator* WEAK Halide::Runtime::Internal::Vulkan::cached_allocator = nullptr

Definition at line 22 of file vulkan_context.h.

## ◆ cached_instance

VkInstance WEAK Halide::Runtime::Internal::Vulkan::cached_instance = VK_NULL_HANDLE

Definition at line 25 of file vulkan_context.h.

## ◆ cached_device

VkDevice WEAK Halide::Runtime::Internal::Vulkan::cached_device = VK_NULL_HANDLE

Definition at line 26 of file vulkan_context.h.

## ◆ cached_queue

VkQueue WEAK Halide::Runtime::Internal::Vulkan::cached_queue = VK_NULL_HANDLE

Definition at line 27 of file vulkan_context.h.

## ◆ cached_physical_device

VkPhysicalDevice WEAK Halide::Runtime::Internal::Vulkan::cached_physical_device = VK_NULL_HANDLE

Definition at line 28 of file vulkan_context.h.

## ◆ cached_queue_family_index

uint32_t WEAK Halide::Runtime::Internal::Vulkan::cached_queue_family_index = 0

Definition at line 29 of file vulkan_context.h.

## ◆ cached_messenger

VkDebugUtilsMessengerEXT WEAK Halide::Runtime::Internal::Vulkan::cached_messenger = VK_NULL_HANDLE

Definition at line 30 of file vulkan_context.h.

## ◆ thread_lock

WEAK halide_mutex Halide::Runtime::Internal::Vulkan::thread_lock

Definition at line 33 of file vulkan_context.h.

## ◆ layer_names

WEAK char Halide::Runtime::Internal::Vulkan::layer_names[1024]

Definition at line 15 of file vulkan_extensions.h.

## ◆ layer_names_lock

WEAK ScopedSpinLock::AtomicFlag Halide::Runtime::Internal::Vulkan::layer_names_lock = 0

Definition at line 16 of file vulkan_extensions.h.

Referenced by halide_vulkan_get_layer_names(), and halide_vulkan_set_layer_names().

## ◆ layer_names_initialized

WEAK bool Halide::Runtime::Internal::Vulkan::layer_names_initialized = false

Definition at line 17 of file vulkan_extensions.h.

## ◆ extension_names

WEAK char Halide::Runtime::Internal::Vulkan::extension_names[1024]

Definition at line 19 of file vulkan_extensions.h.

## ◆ extension_names_lock

WEAK ScopedSpinLock::AtomicFlag Halide::Runtime::Internal::Vulkan::extension_names_lock = 0

Definition at line 20 of file vulkan_extensions.h.

Referenced by halide_vulkan_get_extension_names(), and halide_vulkan_set_extension_names().

## ◆ extension_names_initialized

WEAK bool Halide::Runtime::Internal::Vulkan::extension_names_initialized = false

Definition at line 21 of file vulkan_extensions.h.

## ◆ device_type

WEAK char Halide::Runtime::Internal::Vulkan::device_type[256]

Definition at line 23 of file vulkan_extensions.h.

## ◆ device_type_lock

WEAK ScopedSpinLock::AtomicFlag Halide::Runtime::Internal::Vulkan::device_type_lock = 0

Definition at line 24 of file vulkan_extensions.h.

Referenced by halide_vulkan_get_device_type(), and halide_vulkan_set_device_type().

## ◆ device_type_initialized

WEAK bool Halide::Runtime::Internal::Vulkan::device_type_initialized = false

Definition at line 25 of file vulkan_extensions.h.

## ◆ build_options

WEAK char Halide::Runtime::Internal::Vulkan::build_options[1024]

Definition at line 27 of file vulkan_extensions.h.

## ◆ build_options_lock

WEAK ScopedSpinLock::AtomicFlag Halide::Runtime::Internal::Vulkan::build_options_lock = 0

Definition at line 28 of file vulkan_extensions.h.

Referenced by halide_vulkan_get_build_options(), and halide_vulkan_set_build_options().

## ◆ build_options_initialized

WEAK bool Halide::Runtime::Internal::Vulkan::build_options_initialized = false

Definition at line 29 of file vulkan_extensions.h.

## ◆ alloc_config

WEAK char Halide::Runtime::Internal::Vulkan::alloc_config[1024]

Definition at line 31 of file vulkan_extensions.h.

## ◆ alloc_config_lock

WEAK ScopedSpinLock::AtomicFlag Halide::Runtime::Internal::Vulkan::alloc_config_lock = 0

Definition at line 32 of file vulkan_extensions.h.

Referenced by halide_vulkan_get_alloc_config(), and halide_vulkan_set_alloc_config().

## ◆ alloc_config_initialized

WEAK bool Halide::Runtime::Internal::Vulkan::alloc_config_initialized = false

Definition at line 33 of file vulkan_extensions.h.

## ◆ vulkan_device_interface

WEAK halide_device_interface_t Halide::Runtime::Internal::Vulkan::vulkan_device_interface
| extern

## ◆ lib_vulkan

WEAK void* Halide::Runtime::Internal::Vulkan::lib_vulkan = nullptr

Definition at line 40 of file vulkan_interface.h.

Referenced by halide_vulkan_get_symbol().

## ◆ custom_allocation_callbacks_lock

WEAK ScopedSpinLock::AtomicFlag Halide::Runtime::Internal::Vulkan::custom_allocation_callbacks_lock = 0

Definition at line 19 of file vulkan_memory.h.

Referenced by halide_vulkan_get_allocation_callbacks(), and halide_vulkan_set_allocation_callbacks().

## ◆ custom_allocation_callbacks

WEAK const VkAllocationCallbacks* Halide::Runtime::Internal::Vulkan::custom_allocation_callbacks = nullptr

Definition at line 20 of file vulkan_memory.h.

Referenced by halide_vulkan_get_allocation_callbacks(), and halide_vulkan_set_allocation_callbacks().

## ◆ memory_allocator_config

WEAK VulkanMemoryConfig Halide::Runtime::Internal::Vulkan::memory_allocator_config

Definition at line 32 of file vulkan_memory.h.

## ◆ compilation_cache

WEAK Halide::Internal::GPUCompilationCache<VkDevice, VulkanCompilationCacheEntry *> Halide::Runtime::Internal::Vulkan::compilation_cache

Definition at line 75 of file vulkan_resources.h.