summaryrefslogtreecommitdiffstats
path: root/UnitTests
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2019-12-17 17:50:06 +0000
committerassiduous <assiduous@diligentgraphics.com>2019-12-17 17:50:06 +0000
commit82d456ffb4dde152d9ed6a5c2ffb63202e8441a7 (patch)
treeb33ba9e12addc503dee3aafc7c2d436b99bdee63 /UnitTests
parentEnabled draw command reference in Vulkan (diff)
downloadDiligentCore-82d456ffb4dde152d9ed6a5c2ffb63202e8441a7.tar.gz
DiligentCore-82d456ffb4dde152d9ed6a5c2ffb63202e8441a7.zip
Fixed Core API test crash on the server by dynamically loading vulkan entry points
Diffstat (limited to 'UnitTests')
-rw-r--r--UnitTests/DiligentCoreAPITest/CMakeLists.txt4
-rw-r--r--UnitTests/DiligentCoreAPITest/include/Vulkan/TestingEnvironmentVk.h3
-rw-r--r--UnitTests/DiligentCoreAPITest/include/Vulkan/TestingSwapChainVk.h3
-rw-r--r--UnitTests/DiligentCoreAPITest/src/Vulkan/CreateObjFromNativeResVK.cpp3
-rw-r--r--UnitTests/DiligentCoreAPITest/src/Vulkan/DrawCommandRefenceVk.cpp2
-rw-r--r--UnitTests/DiligentCoreAPITest/src/Vulkan/TestingEnvironmentVk.cpp9
-rw-r--r--UnitTests/DiligentCoreAPITest/src/Vulkan/TestingSwapChainVk.cpp2
7 files changed, 21 insertions, 5 deletions
diff --git a/UnitTests/DiligentCoreAPITest/CMakeLists.txt b/UnitTests/DiligentCoreAPITest/CMakeLists.txt
index 28d19542..9232aefd 100644
--- a/UnitTests/DiligentCoreAPITest/CMakeLists.txt
+++ b/UnitTests/DiligentCoreAPITest/CMakeLists.txt
@@ -95,13 +95,13 @@ if(GL_SUPPORTED)
endif()
if(VULKAN_SUPPORTED)
- target_link_libraries(DiligentCoreAPITest PRIVATE Diligent-GLSLTools ${Vulkan_LIBRARY})
+ target_link_libraries(DiligentCoreAPITest PRIVATE Diligent-GLSLTools)
+ target_include_directories(DiligentCoreAPITest PRIVATE ../../ThirdParty)
endif()
target_include_directories(DiligentCoreAPITest
PRIVATE
include
- ../../ThirdParty/vulkan
)
diff --git a/UnitTests/DiligentCoreAPITest/include/Vulkan/TestingEnvironmentVk.h b/UnitTests/DiligentCoreAPITest/include/Vulkan/TestingEnvironmentVk.h
index c3c34d22..41c8dba7 100644
--- a/UnitTests/DiligentCoreAPITest/include/Vulkan/TestingEnvironmentVk.h
+++ b/UnitTests/DiligentCoreAPITest/include/Vulkan/TestingEnvironmentVk.h
@@ -27,7 +27,8 @@
#include "TestingEnvironment.h"
-#include "vulkan.h"
+#define VK_NO_PROTOTYPES
+#include "vulkan/vulkan.h"
namespace Diligent
{
diff --git a/UnitTests/DiligentCoreAPITest/include/Vulkan/TestingSwapChainVk.h b/UnitTests/DiligentCoreAPITest/include/Vulkan/TestingSwapChainVk.h
index 866af82f..cb7bad57 100644
--- a/UnitTests/DiligentCoreAPITest/include/Vulkan/TestingSwapChainVk.h
+++ b/UnitTests/DiligentCoreAPITest/include/Vulkan/TestingSwapChainVk.h
@@ -23,7 +23,8 @@
#include "TestingSwapChainBase.h"
-#include "vulkan.h"
+#define VK_NO_PROTOTYPES
+#include "vulkan/vulkan.h"
namespace Diligent
{
diff --git a/UnitTests/DiligentCoreAPITest/src/Vulkan/CreateObjFromNativeResVK.cpp b/UnitTests/DiligentCoreAPITest/src/Vulkan/CreateObjFromNativeResVK.cpp
index a003b8c9..b1d65e3a 100644
--- a/UnitTests/DiligentCoreAPITest/src/Vulkan/CreateObjFromNativeResVK.cpp
+++ b/UnitTests/DiligentCoreAPITest/src/Vulkan/CreateObjFromNativeResVK.cpp
@@ -22,7 +22,8 @@
*/
#if VULKAN_SUPPORTED
-# include "vulkan.h"
+# define VK_NO_PROTOTYPES
+# include "vulkan/vulkan.h"
#endif
#include "RenderDeviceVk.h"
diff --git a/UnitTests/DiligentCoreAPITest/src/Vulkan/DrawCommandRefenceVk.cpp b/UnitTests/DiligentCoreAPITest/src/Vulkan/DrawCommandRefenceVk.cpp
index e3f7605c..abb7839f 100644
--- a/UnitTests/DiligentCoreAPITest/src/Vulkan/DrawCommandRefenceVk.cpp
+++ b/UnitTests/DiligentCoreAPITest/src/Vulkan/DrawCommandRefenceVk.cpp
@@ -26,6 +26,8 @@
#include "DeviceContextVk.h"
+#include "volk/volk.h"
+
namespace Diligent
{
diff --git a/UnitTests/DiligentCoreAPITest/src/Vulkan/TestingEnvironmentVk.cpp b/UnitTests/DiligentCoreAPITest/src/Vulkan/TestingEnvironmentVk.cpp
index 6e0d11f7..fa242455 100644
--- a/UnitTests/DiligentCoreAPITest/src/Vulkan/TestingEnvironmentVk.cpp
+++ b/UnitTests/DiligentCoreAPITest/src/Vulkan/TestingEnvironmentVk.cpp
@@ -28,6 +28,9 @@
#include "SPIRVUtils.h"
+#define VOLK_IMPLEMENTATION
+#include "volk/volk.h"
+
namespace Diligent
{
@@ -43,9 +46,15 @@ TestingEnvironmentVk::TestingEnvironmentVk(DeviceType deviceType, ADAPTER_TYPE A
{
InitializeGlslang();
+ // We have to use dynamic Vulkan loader because if an application is statically linked with vulkan-1.lib
+ // and the Vulkan library is not present on the system, the app will instantly crash.
+ volkInitialize();
+
RefCntAutoPtr<IRenderDeviceVk> pRenderDeviceVk{m_pDevice, IID_RenderDeviceVk};
m_vkDevice = pRenderDeviceVk->GetVkDevice();
+ volkLoadInstance(pRenderDeviceVk->GetVkInstance());
+
RefCntAutoPtr<IDeviceContextVk> pContextVk{m_pDeviceContext, IID_DeviceContextVk};
auto* pQeueVk = pContextVk->LockCommandQueue();
diff --git a/UnitTests/DiligentCoreAPITest/src/Vulkan/TestingSwapChainVk.cpp b/UnitTests/DiligentCoreAPITest/src/Vulkan/TestingSwapChainVk.cpp
index 36b1d26e..1b3ee884 100644
--- a/UnitTests/DiligentCoreAPITest/src/Vulkan/TestingSwapChainVk.cpp
+++ b/UnitTests/DiligentCoreAPITest/src/Vulkan/TestingSwapChainVk.cpp
@@ -27,6 +27,8 @@
#include "RenderDeviceVk.h"
#include "DeviceContextVk.h"
+#include "volk/volk.h"
+
namespace Diligent
{