Halide 22.0.0 Halide compiler and libraries

Macros | Functions
HalideRuntimeVulkan.h File Reference

Routines specific to the Halide Vulkan runtime. More...

`#include "HalideRuntime.h"`

Go to the source code of this file.

## Macros
#define | HALIDE_RUNTIME_VULKAN
#define | HALIDE_VULKAN_DEFINE_HANDLE(object) typedef struct object##_T *(object);
#define | HALIDE_VULKAN_USE_64_BIT_PTR_DEFINES 0
#define | HALIDE_VULKAN_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t(object);

## Functions
const struct halide_device_interface_t * | halide_vulkan_device_interface ()
int | halide_vulkan_initialize_kernels (void *user_context, void **state_ptr, const char *src, int size)
| These are forward declared here to allow clients to override the Halide Vulkan runtime. More...
int | halide_vulkan_run (void *user_context, void *state_ptr, const char *entry_name, int blocksX, int blocksY, int blocksZ, int threadsX, int threadsY, int threadsZ, int shared_mem_bytes, size_t arg_sizes[], void *args[], int8_t arg_is_buffer[])
void | halide_vulkan_finalize_kernels (void *user_context, void *state_ptr)
int | halide_vulkan_acquire_context (void *user_context, struct halide_vulkan_memory_allocator **allocator, VkInstance *instance, VkDevice *device, VkPhysicalDevice *physical_device, VkQueue *queue, uint32_t *queue_family_index, VkDebugUtilsMessengerEXT *messenger, bool create=true)
int | halide_vulkan_release_context (void *user_context, VkInstance instance, VkDevice device, VkQueue queue, VkDebugUtilsMessengerEXT messenger)
void | halide_vulkan_set_allocation_callbacks (const struct VkAllocationCallbacks *callbacks)
const struct VkAllocationCallbacks * | halide_vulkan_get_allocation_callbacks (void *user_context)
void | halide_vulkan_set_layer_names (const char *n)
const char * | halide_vulkan_get_layer_names (void *user_context)
void | halide_vulkan_set_extension_names (const char *n)
const char * | halide_vulkan_get_extension_names (void *user_context)
void | halide_vulkan_set_device_type (const char *n)
const char * | halide_vulkan_get_device_type (void *user_context)
void | halide_vulkan_set_build_options (const char *n)
const char * | halide_vulkan_get_build_options (void *user_context)

## Detailed Description

Routines specific to the Halide Vulkan runtime.

Definition in file HalideRuntimeVulkan.h.

## Macro Definition Documentation

## ◆ HALIDE_RUNTIME_VULKAN

#define HALIDE_RUNTIME_VULKAN

Definition at line 18 of file HalideRuntimeVulkan.h.

## ◆ HALIDE_VULKAN_DEFINE_HANDLE

#define HALIDE_VULKAN_DEFINE_HANDLE | ( |  | object | ) | typedef struct object##_T *(object);

Definition at line 23 of file HalideRuntimeVulkan.h.

## ◆ HALIDE_VULKAN_USE_64_BIT_PTR_DEFINES

#define HALIDE_VULKAN_USE_64_BIT_PTR_DEFINES 0

Definition at line 29 of file HalideRuntimeVulkan.h.

## ◆ HALIDE_VULKAN_DEFINE_NON_DISPATCHABLE_HANDLE

#define HALIDE_VULKAN_DEFINE_NON_DISPATCHABLE_HANDLE | ( |  | object | ) | typedef uint64_t(object);

Definition at line 37 of file HalideRuntimeVulkan.h.

## Function Documentation

## ◆ halide_vulkan_device_interface()

const struct halide_device_interface_t * halide_vulkan_device_interface | ( |  | ) |

## ◆ halide_vulkan_initialize_kernels()

int halide_vulkan_initialize_kernels | ( | void * | user_context,
|  | void ** | state_ptr,
|  | const char * | src,
|  | int | size
| ) |  |

These are forward declared here to allow clients to override the Halide Vulkan runtime.

Do not call them.

## ◆ halide_vulkan_run()

int halide_vulkan_run | ( | void * | user_context,
|  | void * | state_ptr,
|  | const char * | entry_name,
|  | int | blocksX,
|  | int | blocksY,
|  | int | blocksZ,
|  | int | threadsX,
|  | int | threadsY,
|  | int | threadsZ,
|  | int | shared_mem_bytes,
|  | size_t | arg_sizes[],
|  | void * | args[],
|  | int8_t | arg_is_buffer[]
| ) |  |

## ◆ halide_vulkan_finalize_kernels()

void halide_vulkan_finalize_kernels | ( | void * | user_context,
|  | void * | state_ptr
| ) |  |

## ◆ halide_vulkan_acquire_context()

int halide_vulkan_acquire_context | ( | void * | user_context,
|  | struct halide_vulkan_memory_allocator ** | allocator,
|  | VkInstance * | instance,
|  | VkDevice * | device,
|  | VkPhysicalDevice * | physical_device,
|  | VkQueue * | queue,
|  | uint32_t * | queue_family_index,
|  | VkDebugUtilsMessengerEXT * | messenger,
|  | bool | create = `true`
| ) |  |

Referenced by Halide::Runtime::Internal::Vulkan::VulkanContext::VulkanContext().

## ◆ halide_vulkan_release_context()

int halide_vulkan_release_context | ( | void * | user_context,
|  | VkInstance | instance,
|  | VkDevice | device,
|  | VkQueue | queue,
|  | VkDebugUtilsMessengerEXT | messenger
| ) |  |

Referenced by Halide::Runtime::Internal::Vulkan::VulkanContext::~VulkanContext().

## ◆ halide_vulkan_set_allocation_callbacks()

void halide_vulkan_set_allocation_callbacks | ( | const struct VkAllocationCallbacks * | callbacks | ) |

## ◆ halide_vulkan_get_allocation_callbacks()

const struct VkAllocationCallbacks * halide_vulkan_get_allocation_callbacks | ( | void * | user_context | ) |

Definition at line 1501 of file vulkan_memory.h.

References Halide::Runtime::Internal::Vulkan::custom_allocation_callbacks, and Halide::Runtime::Internal::Vulkan::custom_allocation_callbacks_lock.

## ◆ halide_vulkan_set_layer_names()

void halide_vulkan_set_layer_names | ( | const char * | n | ) |

Definition at line 325 of file vulkan_extensions.h.

References Halide::Runtime::Internal::Vulkan::layer_names_lock.

## ◆ halide_vulkan_get_layer_names()

const char * halide_vulkan_get_layer_names | ( | void * | user_context | ) |

Definition at line 330 of file vulkan_extensions.h.

References Halide::Runtime::Internal::Vulkan::layer_names_lock, and user_context.

## ◆ halide_vulkan_set_extension_names()

void halide_vulkan_set_extension_names | ( | const char * | n | ) |

Definition at line 335 of file vulkan_extensions.h.

References Halide::Runtime::Internal::Vulkan::extension_names_lock.

## ◆ halide_vulkan_get_extension_names()

const char * halide_vulkan_get_extension_names | ( | void * | user_context | ) |

Definition at line 340 of file vulkan_extensions.h.

References Halide::Runtime::Internal::Vulkan::extension_names_lock, and user_context.

## ◆ halide_vulkan_set_device_type()

void halide_vulkan_set_device_type | ( | const char * | n | ) |

Definition at line 345 of file vulkan_extensions.h.

References Halide::Runtime::Internal::Vulkan::device_type_lock.

## ◆ halide_vulkan_get_device_type()

const char * halide_vulkan_get_device_type | ( | void * | user_context | ) |

Definition at line 350 of file vulkan_extensions.h.

References Halide::Runtime::Internal::Vulkan::device_type_lock, and user_context.

## ◆ halide_vulkan_set_build_options()

void halide_vulkan_set_build_options | ( | const char * | n | ) |

Definition at line 355 of file vulkan_extensions.h.

References Halide::Runtime::Internal::Vulkan::build_options_lock.

## ◆ halide_vulkan_get_build_options()

const char * halide_vulkan_get_build_options | ( | void * | user_context | ) |

Definition at line 360 of file vulkan_extensions.h.

References Halide::Runtime::Internal::Vulkan::build_options_lock, and user_context.