1#ifndef HALIDE_RUNTIME_VULKAN_EXTENSIONS_H
2#define HALIDE_RUNTIME_VULKAN_EXTENSIONS_H
50 const char *value =
getenv(
"HL_VK_LAYERS");
51 if (value ==
nullptr) {
52 value =
getenv(
"VK_INSTANCE_LAYERS");
71 const char *name =
getenv(
"HL_VK_EXTENSIONS");
89 const char *name =
getenv(
"HL_VK_DEVICE_TYPE");
107 const char *name =
getenv(
"HL_VK_BUILD_OPTIONS");
125 const char *name =
getenv(
"HL_VK_ALLOC_CONFIG");
159 debug(
user_context) <<
"Vulkan: Missing vkEnumerateInstanceExtensionProperties proc address! Invalid loader?!\n";
163 debug(
user_context) <<
"Vulkan: Checking vkEnumerateInstanceExtensionProperties for extensions ...\n";
181 debug(
user_context) <<
" [" <<
n <<
"]: " << properties->extensionName <<
"\n";
205 "VK_KHR_portability_subset",
216 debug(
user_context) <<
"vk_get_supported_device_extensions\n";
218 debug(
user_context) <<
"Vulkan: Missing vkEnumerateDeviceExtensionProperties proc address! Invalid loader?!\n";
222 debug(
user_context) <<
"Vulkan: Checking vkEnumerateDeviceExtensionProperties for extensions ...\n";
239 debug(
user_context) <<
" [" <<
n <<
"]: " << properties->extensionName <<
"\n";
261 debug(
user_context) <<
"Vulkan: Missing required extension: '" << extension <<
"'!\n";
288 vk_set_layer_names_internal(n);
298 vk_set_extension_names_internal(n);
308 vk_set_device_type_internal(n);
318 vk_set_build_options_internal(n);
328 vk_set_alloc_config_internal(n);
WEAK bool layer_names_initialized
WEAK ScopedSpinLock::AtomicFlag alloc_config_lock
WEAK char build_options[1024]
WEAK char layer_names[1024]
WEAK bool build_options_initialized
WEAK ScopedSpinLock::AtomicFlag extension_names_lock
WEAK bool device_type_initialized
WEAK bool alloc_config_initialized
WEAK ScopedSpinLock::AtomicFlag layer_names_lock
WEAK ScopedSpinLock::AtomicFlag build_options_lock
WEAK char alloc_config[1024]
WEAK char device_type[256]
WEAK bool extension_names_initialized
WEAK ScopedSpinLock::AtomicFlag device_type_lock
WEAK char extension_names[1024]
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.
Internal::ConstantInterval cast(Type t, const Internal::ConstantInterval &a)
Cast operators for ConstantIntervals.
unsigned __INT32_TYPE__ uint32_t
char * getenv(const char *)
bool contains(int32_t x) const
Test if the interval contains a particular value.
uint32_t minimum_capacity
static size_t copy_up_to(char *dst, const char *src, size_t max_chars)
WEAK void halide_vulkan_set_layer_names(const char *n)
WEAK void halide_vulkan_set_build_options(const char *n)
WEAK void halide_vulkan_set_extension_names(const char *n)
WEAK void halide_vulkan_set_device_type(const char *n)
WEAK const char * halide_vulkan_get_alloc_config(void *user_context)
WEAK const char * halide_vulkan_get_layer_names(void *user_context)
WEAK void halide_vulkan_set_alloc_config(const char *n)
WEAK const char * halide_vulkan_get_build_options(void *user_context)
WEAK const char * halide_vulkan_get_extension_names(void *user_context)
WEAK const char * halide_vulkan_get_device_type(void *user_context)