COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif()
+add_definitions(-DAPI_NAME="${API_NAME}")
+
# loader: Generic VULKAN ICD loader
# tests: VULKAN tests
if(BUILD_LOADER)
phys_dev_ext.c
)
-add_definitions(-DAPI_NAME="${API_NAME}")
-
# Check for assembler support
set(ASM_FAILURE_MSG "The build will fall back on building with C code\n")
set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG}Note that this may be unsafe, as the C code requires tail-call optimizations to remove")
// query value
LSTATUS ret = RegQueryValueEx(
hkrKey,
- HKR_VK_DRIVER_NAME,
+ LoaderPnpDriverRegistry(),
NULL,
NULL,
NULL,
ret = RegQueryValueEx(
hkrKey,
- HKR_VK_DRIVER_NAME,
+ LoaderPnpDriverRegistry(),
NULL,
&dataType,
pVkDriverPath,
#define SECONDARY_VK_REGISTRY_HIVE HKEY_CURRENT_USER
#define SECONDARY_VK_REGISTRY_HIVE_STR "HKEY_CURRENT_USER"
#define DEFAULT_VK_DRIVERS_INFO "SOFTWARE\\Khronos\\" API_NAME "\\Drivers"
-#ifdef _WIN64
-#define HKR_VK_DRIVER_NAME API_NAME "DriverName"
-#else
-#define HKR_VK_DRIVER_NAME API_NAME "DriverNameWow"
-#endif
#define DEFAULT_VK_DRIVERS_PATH ""
#define DEFAULT_VK_ELAYERS_INFO "SOFTWARE\\Khronos\\" API_NAME "\\ExplicitLayers"
#define DEFAULT_VK_ILAYERS_INFO "SOFTWARE\\Khronos\\" API_NAME "\\ImplicitLayers"
#define RELATIVE_VK_ILAYERS_INFO ""
#define PRINTF_SIZE_T_SPECIFIER "%Iu"
+#if defined(_WIN32)
+// Get the key for the plug n play driver registry
+// The string returned by this function should NOT be freed
+static inline const char *LoaderPnpDriverRegistry() {
+ BOOL is_wow;
+ IsWow64Process(GetCurrentProcess(), &is_wow);
+ return is_wow ? (API_NAME "DriverNameWow") : (API_NAME "DriverName");
+}
+#endif
+
// File IO
static bool loader_platform_file_exists(const char *path) {
if ((_access(path, 0)) == -1)