Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
nihui committed Nov 8, 2023
1 parent 1fbbe5d commit 0b2a09c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
14 changes: 11 additions & 3 deletions src/simplevk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,19 @@ PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;

int load_vulkan_driver(const char* /*driver_path*/)
{
ncnn::vkEnumerateInstanceExtensionProperties = ::vkEnumerateInstanceExtensionProperties;
ncnn::vkCreateInstance = ::vkCreateInstance;
ncnn::vkGetInstanceProcAddr = ::vkGetInstanceProcAddr;
vkEnumerateInstanceExtensionProperties = ::vkEnumerateInstanceExtensionProperties;
vkCreateInstance = ::vkCreateInstance;
vkGetInstanceProcAddr = ::vkGetInstanceProcAddr;

return 0;
}

int unload_vulkan_driver()
{
vkEnumerateInstanceExtensionProperties = 0;
vkCreateInstance = 0;
vkGetInstanceProcAddr = 0;

return 0;
}

Expand Down Expand Up @@ -629,6 +633,10 @@ int load_vulkan_driver(const char* driver_path)

int unload_vulkan_driver()
{
vkEnumerateInstanceExtensionProperties = 0;
vkCreateInstance = 0;
vkGetInstanceProcAddr = 0;

#if defined _WIN32
if (g_libvulkan)
{
Expand Down
7 changes: 6 additions & 1 deletion src/simplevk.h
Original file line number Diff line number Diff line change
Expand Up @@ -2187,8 +2187,13 @@ extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionPr
extern PFN_vkCreateInstance vkCreateInstance;
extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;

int load_vulkan_driver(const char* driver_path);
// Load vulkan driver dynamic library when driver_path is provided
// Load from env VK_ICD_FILENAMES and NCNN_VULKAN_DRIVER otherwise
// If failed, it will try system libvulkan and well-known library names
// The three vulkan base function pointers will be set on success
int load_vulkan_driver(const char* driver_path = 0);

// Unload vulkan driver library and clear
int unload_vulkan_driver();

} // namespace ncnn
Expand Down

0 comments on commit 0b2a09c

Please sign in to comment.