Commit 522d5121 by Nicolas Capens Committed by Nicolas Capens

Simplify Vulkan ICD loading for testing

The STANDALONE preprocessor macro is only for controlling the loading of a delay loaded DLL, on Windows. Change-Id: Ife765f27c7e03c542d7e81d90c09c97e4e2cbe5d Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33248 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarBen Clayton <bclayton@google.com>
parent cd98c739
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
#include <type_traits> #include <type_traits>
template<typename T> class VkNonDispatchableHandle template<typename T> class VkNonDispatchableHandle
{ {
...@@ -46,7 +46,7 @@ public: ...@@ -46,7 +46,7 @@ public:
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) \ #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) \
typedef struct object##_T *object##Ptr; \ typedef struct object##_T *object##Ptr; \
typedef VkNonDispatchableHandle<object##Ptr> object; \ typedef VkNonDispatchableHandle<object##Ptr> object; \
template class VkNonDispatchableHandle<object##Ptr>; template class VkNonDispatchableHandle<object##Ptr>;
#include <vulkan/vulkan.h> #include <vulkan/vulkan.h>
......
...@@ -49,43 +49,38 @@ Driver::~Driver() ...@@ -49,43 +49,38 @@ Driver::~Driver()
bool Driver::loadSwiftShader() bool Driver::loadSwiftShader()
{ {
#if OS_WINDOWS #if OS_WINDOWS
#if !defined(STANDALONE) #if !defined(STANDALONE)
// The DLL is delay loaded (see BUILD.gn), so we can load // The DLL is delay loaded (see BUILD.gn), so we can load
// the correct ones from Chrome's swiftshader subdirectory. // the correct ones from Chrome's swiftshader subdirectory.
HMODULE libvulkan = LoadLibraryA("swiftshader\\libvulkan.dll"); HMODULE libvulkan = LoadLibraryA("swiftshader\\libvulkan.dll");
EXPECT_NE((HMODULE)NULL, libvulkan); EXPECT_NE((HMODULE)NULL, libvulkan);
return true; return true;
#elif defined(NDEBUG) #elif defined(NDEBUG)
#if defined(_WIN64) #if defined(_WIN64)
return load("./build/Release_Win64/vk_swiftshader.dll") || return load("./build/Release_x64/vk_swiftshader.dll") ||
#else #else
return load("./build/Release_Win32/vk_swiftshader.dll") || return load("./build/Release_Win32/vk_swiftshader.dll") ||
#endif #endif
load("./build/Release/libvk_swiftshader.dll"); load("./build/Release/libvk_swiftshader.dll");
#else #else
#if defined(_WIN64) #if defined(_WIN64)
return load("./build/Debug_Win64/vk_swiftshader.dll") || return load("./build/Debug_x64/vk_swiftshader.dll") ||
#else #else
return load("./build/Debug_Win32/vk_swiftshader.dll") || return load("./build/Debug_Win32/vk_swiftshader.dll") ||
#endif #endif
load("./build/Debug/libvk_swiftshader.dll"); load("./build/Debug/libvk_swiftshader.dll");
#endif #endif
#elif OS_MAC #elif OS_MAC
#if defined(STANDALONE) return load("./build/Darwin/libvk_swiftshader.dylib") ||
return load("./build/Darwin/libvk_swiftshader.dylib"); load("swiftshader/libvulkan.dylib");
#else
return load("libvulkan.dylib");
#endif
#elif OS_LINUX #elif OS_LINUX
#if defined(STANDALONE) return load("./build/Linux/libvk_swiftshader.so") ||
return load("./build/Linux/libvk_swiftshader.so"); load("swiftshader/libvulkan.so") ||
#else load("libvk_swiftshader.so");
return load("libvulkan.so");
#endif
#elif OS_ANDROID #elif OS_ANDROID
return load("libvk_swiftshader.so"); return load("libvk_swiftshader.so");
#else #else
# error Unimplemented platform #error Unimplemented platform
#endif #endif
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment