diff --git a/.gitmodules b/.gitmodules
index b598ae1..140a109 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -5,5 +5,4 @@
path = external/vcpkg
url = https://github.com/Microsoft/vcpkg.git
[submodule "external/slang"]
- path = external/slang
url = https://github.com/shader-slang/slang.git
diff --git a/.vscode/launch.json b/.vscode/launch.json
index de0c603..f9d4c09 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -32,7 +32,12 @@
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}/bin",
- "environment": [],
+ "environment": [
+ {
+ "name": "VK_LAYER_PATH",
+ "value": "/opt/homebrew/opt/vulkan-validationlayers/share/vulkan/explicit_layer.d"
+ }
+ ],
"externalConsole": false,
"MIMode": "lldb",
"targetArchitecture": "arm64"
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cad6820..86f7fa1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -50,6 +50,10 @@ find_package(nlohmann_json CONFIG REQUIRED)
find_package(fmt CONFIG REQUIRED)
find_package(VulkanMemoryAllocator CONFIG REQUIRED)
+if(APPLE)
+ find_library(COCOA_LIBRARY Cocoa)
+endif()
+
if(UNIX)
find_package(Threads REQUIRED)
endif()
@@ -71,9 +75,9 @@ target_link_libraries(Engine PUBLIC assimp::assimp)
target_link_libraries(Engine PUBLIC KTX::ktx)
target_link_libraries(Engine PUBLIC nlohmann_json::nlohmann_json)
target_link_libraries(Engine PUBLIC crcpp)
-target_link_libraries(Engine PUBLIC shader-slang)
target_link_libraries(Engine PUBLIC fmt::fmt)
target_link_libraries(Engine PUBLIC GPUOpen::VulkanMemoryAllocator)
+target_link_libraries(Engine PUBLIC shader-slang)
if(UNIX)
target_link_libraries(Engine PUBLIC Threads::Threads)
target_link_libraries(Engine PUBLIC dl)
diff --git a/cmake/SuperBuild.cmake b/cmake/SuperBuild.cmake
index e03d22e..d0d1a40 100644
--- a/cmake/SuperBuild.cmake
+++ b/cmake/SuperBuild.cmake
@@ -68,28 +68,31 @@ include (ExternalProject)
add_library(shader-slang-glslang SHARED IMPORTED)
add_library(shader-slang SHARED IMPORTED)
if(WIN32)
- set(SLANG_ROOT ${EXTERNAL_ROOT}/vcpkg/packages/shader-slang_x64-windows/)
- set_target_properties(shader-slang-glslang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}/bin/slang-glslang.dll)
- set_target_properties(shader-slang-glslang PROPERTIES IMPORTED_IMPLIB ${SLANG_ROOT}/lib/slang.lib)
- set_target_properties(shader-slang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}/bin/slang.dll)
- set_target_properties(shader-slang PROPERTIES IMPORTED_IMPLIB ${SLANG_ROOT}/lib/slang.lib)
+ set(SLANG_ROOT ${EXTERNAL_ROOT}/slang/bin/windows-x64/release)
+ set_target_properties(shader-slang-glslang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}/slang-glslang.dll)
+ set_target_properties(shader-slang-glslang PROPERTIES IMPORTED_IMPLIB ${SLANG_ROOT}/slang.lib)
+ set_target_properties(shader-slang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}/slang.dll)
+ set_target_properties(shader-slang PROPERTIES IMPORTED_IMPLIB ${SLANG_ROOT}/slang.lib)
target_link_libraries(shader-slang INTERFACE shader-slang-glslang)
install(FILES
- ${SLANG_ROOT}/bin/slang-glslang.dll
- ${SLANG_ROOT}/bin/slang.dll
+ ${SLANG_ROOT}/slang-glslang.dll
+ ${SLANG_ROOT}/slang.dll
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(FILES
- ${SLANG_ROOT}/lib/slang.lib
+ ${SLANG_ROOT}/slang.lib
DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
elseif(APPLE)
- set(SLANG_ROOT ${EXTERNAL_ROOT}/vcpkg/packages/shader-slang_arm64-osx/)
- set_target_properties(shader-slang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}/bin/libslang.dylib)
+ set(SLANG_ROOT ${EXTERNAL_ROOT}/slang/bin/macosx-aarch64/release)
+ set_target_properties(shader-slang-glslang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}/libslang-glslang.dylib)
+ set_target_properties(shader-slang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}/libslang.dylib)
+ target_link_libraries(shader-slang INTERFACE shader-slang-glslang)
install(FILES
- ${SLANG_ROOT}/bin/libslang.dylib
+ ${SLANG_ROOT}/libslang.dylib
+ ${SLANG_ROOT}/libslang-glslang.dylib
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
endif()
target_include_directories(shader-slang INTERFACE
- $
+ $
$
)
#string(TOLOWER release_x64 SLANG_CONFIG)
diff --git a/src/Engine/Graphics/Vulkan/Graphics.cpp b/src/Engine/Graphics/Vulkan/Graphics.cpp
index 48cf4e3..0a09060 100644
--- a/src/Engine/Graphics/Vulkan/Graphics.cpp
+++ b/src/Engine/Graphics/Vulkan/Graphics.cpp
@@ -373,6 +373,7 @@ Array Graphics::getRequiredExtensions()
void Graphics::initInstance(GraphicsInitializer initInfo)
{
glfwInit();
+ assert(glfwVulkanSupported());
VkApplicationInfo appInfo = {
.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO,
.pApplicationName = initInfo.applicationName,
diff --git a/vcpkg.json b/vcpkg.json
index d8fb830..290a6b6 100644
--- a/vcpkg.json
+++ b/vcpkg.json
@@ -10,7 +10,6 @@
"ktx",
"nlohmann-json",
"fmt",
- "shader-slang",
"gtest",
"vulkan-memory-allocator"
]