removing vulkan references from mac builds

This commit is contained in:
Dynamitos
2026-03-16 16:52:43 +01:00
parent 9109baad18
commit 54106e6fef
16 changed files with 50 additions and 52 deletions
+2 -15
View File
@@ -18,22 +18,9 @@
"name": "Editor (Mac)",
"type": "lldb",
"request": "launch",
"program": "${workspaceRoot}/build/Editor",
"program": "${workspaceRoot}/build/external/Seele/Debug/Editor",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}/build",
"environment": [
{
"name": "VK_LAYER_PATH",
"value": "/opt/homebrew/opt/vulkan-validationlayers/share/vulkan/explicit_layer.d"
}
],
"logging": {
"moduleLoad": false
},
"externalConsole": false,
"MIMode": "lldb",
"targetArchitecture": "arm64"
"cwd": "${workspaceRoot}/build/external/Seele/Debug",
},
{
"name": "Editor (Linux)",
+10 -22
View File
@@ -22,14 +22,6 @@ set(CMAKE_TOOLCHAIN_FILE ${EXTERNAL_ROOT}/vcpkg/scripts/buildsystems/vcpkg.cmake
set(CRCPP_ROOT ${EXTERNAL_ROOT}/CRCpp)
set(METAL_ROOT ${EXTERNAL_ROOT}/metal-cpp)
if(WIN32)
set(VCPKG_BASE_FOLDER ${CMAKE_BINARY_DIR}/vcpkg_installed/x64-windows/)
elseif(APPLE)
set(VCPKG_BASE_FOLDER ${CMAKE_BINARY_DIR}/vcpkg_installed/arm64-osx/)
else()
set(VCPKG_BASE_FOLDER ${CMAKE_BINARY_DIR}/vcpkg_installed/x64-linux/)
endif()
set(Boost_NO_WARN_NEW_VERSIONS 1)
project (Seele)
@@ -48,9 +40,12 @@ find_package(Ktx CONFIG REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)
find_package(fmt CONFIG REQUIRED)
find_package(lunasvg CONFIG REQUIRED)
find_package(slang CONFIG REQUIRED)
find_package(metis CONFIG REQUIRED)
find_package(meshoptimizer CONFIG REQUIRED)
find_package(VulkanMemoryAllocator CONFIG REQUIRED)
if(NOT APPLE)
find_package(VulkanMemoryAllocator CONFIG REQUIRED)
endif()
if(UNIX)
find_package(Threads REQUIRED)
@@ -63,8 +58,11 @@ endif()
add_library(Engine SHARED "")
target_include_directories(Engine PRIVATE src/Engine)
target_include_directories(Engine PRIVATE ${VCPKG_BASE_FOLDER}/include/)
target_link_libraries(Engine PUBLIC Vulkan::Vulkan)
if(NOT APPLE)
target_link_libraries(Engine PUBLIC Vulkan::Vulkan)
target_link_libraries(Engine PUBLIC GPUOpen::VulkanMemoryAllocator)
target_link_libraries(Engine PUBLIC slang::slang-glslang)
endif()
target_link_libraries(Engine PUBLIC EnTT::EnTT)
target_link_libraries(Engine PUBLIC glfw)
target_link_libraries(Engine PUBLIC glm::glm)
@@ -77,17 +75,9 @@ target_link_libraries(Engine PUBLIC nlohmann_json::nlohmann_json)
target_link_libraries(Engine PUBLIC crcpp)
target_link_libraries(Engine PUBLIC fmt::fmt)
target_link_libraries(Engine PUBLIC lunasvg::lunasvg)
target_link_libraries(Engine PUBLIC GPUOpen::VulkanMemoryAllocator)
target_link_libraries(Engine PUBLIC metis)
target_link_libraries(Engine PUBLIC meshoptimizer::meshoptimizer)
if(WIN32)
target_link_libraries(Engine PUBLIC ${VCPKG_BASE_FOLDER}/lib/slang.lib)
elseif(APPLE)
target_link_libraries(Engine PUBLIC ${VCPKG_BASE_FOLDER}/debug/lib/libslang.dylib)
else()
target_link_libraries(Engine PUBLIC ${VCPKG_BASE_FOLDER}/lib/libslang.so)
target_link_libraries(Engine PUBLIC ${VCPKG_BASE_FOLDER}/lib/libslang-glslang.so)
endif()
target_link_libraries(Engine PUBLIC slang::slang)
if(APPLE)
target_link_libraries(Engine PUBLIC metal)
@@ -142,8 +132,6 @@ add_subdirectory(src/)
if(WIN32)
add_custom_target(dll_copy ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_RUNTIME_DLLS:Engine> $<TARGET_FILE_DIR:Editor>
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${VCPKG_BASE_FOLDER}/bin/slang.dll $<TARGET_FILE_DIR:Editor>
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${VCPKG_BASE_FOLDER}/bin/slang-glslang.dll $<TARGET_FILE_DIR:Editor>
COMMAND_EXPAND_LISTS
DEPENDS Editor)
elseif(APPLE)
+16
View File
@@ -40,6 +40,17 @@
"CMAKE_INSTALL_PREFIX": "C:/Program Files/Seele"
}
},
{
"name": "debug-mac",
"displayName": "Debug Mac (no ASan)",
"description": "Debug Mac build without sanitizers",
"binaryDir": "${sourceDir}/build",
"generator": "Xcode",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_INSTALL_PREFIX": "C:/Program Files/Seele"
}
},
{
"name": "debug-asan",
"displayName": "Debug (ASan)",
@@ -71,6 +82,11 @@
"displayName": "Debug (no ASan)",
"configurePreset": "debug"
},
{
"name": "debug-mac",
"displayName": "Debug Mac (no ASan)",
"configurePreset": "debug-mac"
},
{
"name": "debug-asan",
"displayName": "Debug (ASan)",
+2 -4
View File
@@ -2,7 +2,6 @@
#include "Asset/AssetRegistry.h"
#include "Asset/TextureAsset.h"
#include "Graphics/Graphics.h"
#include "Graphics/Vulkan/Enums.h"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsign-compare"
@@ -15,7 +14,7 @@
#pragma GCC diagnostic pop
#include "ktx.h"
#include <ThreadPool.h>
#include <fstream>
#include <iostream>
using namespace Seele;
@@ -60,9 +59,8 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) {
int totalWidth = 0, totalHeight = 0, n = 0;
unsigned char* data = stbi_load(args.filePath.string().c_str(), &totalWidth, &totalHeight, &n, 4);
ktxTexture2* kTexture = nullptr;
VkFormat format = VK_FORMAT_R8G8B8A8_SRGB;
ktxTextureCreateInfo createInfo = {
.vkFormat = (uint32)format,
.vkFormat = 43, // rgba8srgb
.baseDepth = 1,
.numLevels = 1,
.numLayers = 1,
+2 -2
View File
@@ -4,11 +4,11 @@
#include "Asset/FontLoader.h"
#include "Asset/MaterialLoader.h"
#include "Asset/MeshLoader.h"
#include "Graphics/Vulkan/Graphics.h"
#include "Asset/TextureLoader.h"
#include "Graphics/Initializer.h"
#include "Material/Material.h"
#include "Graphics/StaticMeshVertexData.h"
#include "Graphics/Vulkan/Graphics.h"
#include "Window/PlayView.h"
#include "Window/WindowManager.h"
#include <fmt/core.h>
@@ -30,7 +30,7 @@ int main() {
#else
std::string libraryEnding = "so";
#endif
std::filesystem::path binaryPath = sourcePath / "bin" / fmt::format("{}.{}", gameName, libraryEnding);
std::filesystem::path binaryPath = sourcePath / "build/Debug" / fmt::format("{}.{}", gameName, libraryEnding);
std::filesystem::path cmakePath = outputPath / "cmake";
if (true) {
graphics = new Vulkan::Graphics();
-1
View File
@@ -1,7 +1,6 @@
#include "TextureAsset.h"
#include "Graphics/Graphics.h"
#include "Graphics/Texture.h"
#include "Graphics/Vulkan/Enums.h"
#include "Window/WindowManager.h"
#include "ktx.h"
+1
View File
@@ -1,5 +1,6 @@
#pragma once
#include <assert.h>
#include <memory>
#include <memory_resource>
#include <memory>
+1
View File
@@ -1,4 +1,5 @@
#pragma once
#include <string>
#include <memory_resource>
#include <map>
#include <string>
+1 -1
View File
@@ -34,7 +34,7 @@ void DescriptorLayout::create() {
MTL::ArgumentDescriptor** objects = new MTL::ArgumentDescriptor*[descriptorBindings.size()];
uint32 mappingCounter = 0;
for (uint32 i = 0; i < descriptorBindings.size(); ++i) {
if (descriptorBindings[i].descriptorType != Gfx::SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER) {
if (descriptorBindings[i].descriptorType != Gfx::SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK) {
plainDescriptor = false;
}
objects[i] = MTL::ArgumentDescriptor::alloc()->init();
+1 -2
View File
@@ -5,7 +5,6 @@
#include "Enums.h"
#include "Graphics.h"
#include "Graphics/Query.h"
#include <vulkan/vulkan_core.h>
using namespace Seele;
using namespace Seele::Metal;
@@ -71,4 +70,4 @@ Gfx::Timestamp TimestampQuery::getResult() {
.name = "Test",
.time = 0,
};
}
}
@@ -11,6 +11,7 @@ CachedDepthPass::CachedDepthPass(Gfx::PGraphics graphics, PScene scene) : Render
.stageFlags = Gfx::SE_SHADER_STAGE_TASK_BIT_EXT | Gfx::SE_SHADER_STAGE_VERTEX_BIT,
.offset = 0,
.size = sizeof(VertexData::DrawCallOffsets),
.name = "pOffsets"
});
if (graphics->supportMeshShading()) {
graphics->getShaderCompiler()->registerRenderPass("CachedDepthPass", Gfx::PassConfig{
@@ -25,6 +25,7 @@ DepthCullingPass::DepthCullingPass(Gfx::PGraphics graphics, PScene scene) : Rend
.stageFlags = Gfx::SE_SHADER_STAGE_TASK_BIT_EXT | Gfx::SE_SHADER_STAGE_VERTEX_BIT,
.offset = 0,
.size = sizeof(VertexData::DrawCallOffsets),
.name = "pOffsets"
});
depthComputeLayout = graphics->createPipelineLayout("DepthComputeLayout");
@@ -34,6 +35,7 @@ DepthCullingPass::DepthCullingPass(Gfx::PGraphics graphics, PScene scene) : Rend
.stageFlags = Gfx::SE_SHADER_STAGE_COMPUTE_BIT,
.offset = 0,
.size = sizeof(MipParam),
.name = "pMipParam"
});
if (graphics->supportMeshShading()) {
@@ -53,6 +53,7 @@ RayTracingPass::RayTracingPass(Gfx::PGraphics graphics, PScene scene) : RenderPa
.stageFlags = Gfx::SE_SHADER_STAGE_RAYGEN_BIT_KHR,
.offset = 0,
.size = sizeof(SampleParams),
.name = "pSamps",
});
graphics->getShaderCompiler()->registerRenderPass("RayTracing", Gfx::PassConfig{
.baseLayout = pipelineLayout,
@@ -16,6 +16,7 @@ ShadowPass::ShadowPass(Gfx::PGraphics graphics, PScene scene) : RenderPass(graph
.stageFlags = Gfx::SE_SHADER_STAGE_TASK_BIT_EXT | Gfx::SE_SHADER_STAGE_VERTEX_BIT,
.offset = 0,
.size = sizeof(VertexData::DrawCallOffsets),
.name = "pOffsets",
});
if (graphics->supportMeshShading()) {
graphics->getShaderCompiler()->registerRenderPass("ShadowPass", Gfx::PassConfig{
@@ -253,7 +254,6 @@ void ShadowPass::render() {
}
graphics->executeCommands(std::move(commands));
graphics->endRenderPass();
graphics->waitDeviceIdle();
}
graphics->endDebugRegion();
}
+1 -1
View File
@@ -134,7 +134,7 @@ void ShaderCompiler::createShaders(ShaderPermutation permutation, Gfx::OPipeline
}
// createInfo.typeParameter.add({Pair<const char*, const char*>("IVertexData", permutation.vertexDataName)});
createInfo.modules.add(permutation.vertexDataName);
// createInfo.dumpIntermediate = true;
createInfo.dumpIntermediate = true;
if (permutation.useMeshShading) {
if (permutation.hasTaskShader) {
+8 -3
View File
@@ -1,8 +1,14 @@
{
"dependencies": [
"vulkan",
{
"name": "vulkan",
"platform": "!osx"
},
{
"name": "vulkan-memory-allocator",
"platform": "!osx"
},
"assimp",
"entt",
"stb",
"entt",
"freetype",
@@ -12,7 +18,6 @@
"nlohmann-json",
"fmt",
"gtest",
"vulkan-memory-allocator",
"lunasvg",
"harfbuzz",
"shader-slang",