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" ]