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 @@
#include <cstddef>
#include <cstdint>
#include <type_traits>
#include <type_traits>
template<typename T> class VkNonDispatchableHandle
{
......@@ -46,7 +46,7 @@ public:
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) \
typedef struct object##_T *object##Ptr; \
typedef VkNonDispatchableHandle<object##Ptr> object; \
template class VkNonDispatchableHandle<object##Ptr>;
template class VkNonDispatchableHandle<object##Ptr>;
#include <vulkan/vulkan.h>
......
......@@ -49,43 +49,38 @@ Driver::~Driver()
bool Driver::loadSwiftShader()
{
#if OS_WINDOWS
#if !defined(STANDALONE)
// The DLL is delay loaded (see BUILD.gn), so we can load
// the correct ones from Chrome's swiftshader subdirectory.
HMODULE libvulkan = LoadLibraryA("swiftshader\\libvulkan.dll");
EXPECT_NE((HMODULE)NULL, libvulkan);
return true;
#elif defined(NDEBUG)
#if !defined(STANDALONE)
// The DLL is delay loaded (see BUILD.gn), so we can load
// the correct ones from Chrome's swiftshader subdirectory.
HMODULE libvulkan = LoadLibraryA("swiftshader\\libvulkan.dll");
EXPECT_NE((HMODULE)NULL, libvulkan);
return true;
#elif defined(NDEBUG)
#if defined(_WIN64)
return load("./build/Release_Win64/vk_swiftshader.dll") ||
return load("./build/Release_x64/vk_swiftshader.dll") ||
#else
return load("./build/Release_Win32/vk_swiftshader.dll") ||
#endif
load("./build/Release/libvk_swiftshader.dll");
#else
#else
#if defined(_WIN64)
return load("./build/Debug_Win64/vk_swiftshader.dll") ||
return load("./build/Debug_x64/vk_swiftshader.dll") ||
#else
return load("./build/Debug_Win32/vk_swiftshader.dll") ||
#endif
load("./build/Debug/libvk_swiftshader.dll");
#endif
#endif
#elif OS_MAC
#if defined(STANDALONE)
return load("./build/Darwin/libvk_swiftshader.dylib");
#else
return load("libvulkan.dylib");
#endif
return load("./build/Darwin/libvk_swiftshader.dylib") ||
load("swiftshader/libvulkan.dylib");
#elif OS_LINUX
#if defined(STANDALONE)
return load("./build/Linux/libvk_swiftshader.so");
#else
return load("libvulkan.so");
#endif
return load("./build/Linux/libvk_swiftshader.so") ||
load("swiftshader/libvulkan.so") ||
load("libvk_swiftshader.so");
#elif OS_ANDROID
return load("libvk_swiftshader.so");
return load("libvk_swiftshader.so");
#else
# error Unimplemented platform
#error Unimplemented platform
#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