From c89fd405b833dfdb5a741737a13095b1cb690f0e Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Wed, 2 Oct 2024 15:59:52 +0200 Subject: [PATCH] It works now????? --- CMakeLists.txt | 1 - cmake/SuperBuild.cmake | 4 ++-- res/shaders/DepthCullingMesh.slang | 15 ++++++++------- res/shaders/DrawListMesh.slang | 17 +++++++++-------- src/Engine/Graphics/slang-compile.cpp | 2 +- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 294514b..c13b0c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +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) -set(SLANG_ROOT ${EXTERNAL_ROOT}/slang) set(Boost_NO_WARN_NEW_VERSIONS 1) diff --git a/cmake/SuperBuild.cmake b/cmake/SuperBuild.cmake index d737e16..8a33688 100644 --- a/cmake/SuperBuild.cmake +++ b/cmake/SuperBuild.cmake @@ -5,7 +5,7 @@ include (ExternalProject) add_library(slang SHARED IMPORTED) if(WIN32) add_library(slang-glslang SHARED IMPORTED) - set(SLANG_ROOT ${EXTERNAL_ROOT}/slang/build/Release/) + set(SLANG_ROOT ${PROJECT_SOURCE_DIR}/../slang/build/Debug/) set_target_properties(slang-glslang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}bin/slang-glslang.dll) set_target_properties(slang-glslang PROPERTIES IMPORTED_IMPLIB ${SLANG_ROOT}lib/slang.lib) set_target_properties(slang PROPERTIES IMPORTED_LOCATION ${SLANG_ROOT}bin/slang.dll) @@ -26,7 +26,7 @@ elseif(APPLE) DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) endif() target_include_directories(slang INTERFACE - $ + $ $ ) diff --git a/res/shaders/DepthCullingMesh.slang b/res/shaders/DepthCullingMesh.slang index cea1579..d2e07b2 100644 --- a/res/shaders/DepthCullingMesh.slang +++ b/res/shaders/DepthCullingMesh.slang @@ -34,15 +34,16 @@ void meshMain( { uint p = min(i, m.primitiveCount - 1); { - uint local_idx0 = pScene.primitiveIndices[m.primitiveOffset + (p * 3) + 0]; - uint local_idx1 = pScene.primitiveIndices[m.primitiveOffset + (p * 3) + 1]; - uint local_idx2 = pScene.primitiveIndices[m.primitiveOffset + (p * 3) + 2]; - indices[p] = uint3(local_idx0, local_idx1, local_idx2); - PrimitiveAttributes primAttr; + uint baseIndex = m.primitiveOffset + (p * 3); + uint local_idx0 = pScene.primitiveIndices[baseIndex + 0]; + uint local_idx1 = pScene.primitiveIndices[baseIndex + 1]; + uint local_idx2 = pScene.primitiveIndices[baseIndex + 2]; + indices[p] = uint3(local_idx0, local_idx1, local_idx2); + PrimitiveAttributes primAttr; #ifdef VISIBILITY - primAttr.prim = encodePrimitive(meshletId); + primAttr.prim = encodePrimitive(meshletId); #endif - prim[p] = primAttr; + prim[p] = primAttr; } } for(uint i = threadID; i < MAX_VERTICES; i += MESH_GROUP_SIZE) diff --git a/res/shaders/DrawListMesh.slang b/res/shaders/DrawListMesh.slang index d6d5679..5768075 100644 --- a/res/shaders/DrawListMesh.slang +++ b/res/shaders/DrawListMesh.slang @@ -35,16 +35,17 @@ void meshMain( { uint p = min(i, m.primitiveCount - 1); { - uint local_idx0 = pScene.primitiveIndices[m.primitiveOffset + (p * 3) + 0]; - uint local_idx1 = pScene.primitiveIndices[m.primitiveOffset + (p * 3) + 1]; - uint local_idx2 = pScene.primitiveIndices[m.primitiveOffset + (p * 3) + 2]; - indices[p] = uint3(local_idx0, local_idx1, local_idx2); - PrimitiveAttributes primAttr; - primAttr.cull = false;//cull.triangleCulled(p); + uint baseIndex = m.primitiveOffset + (p * 3); + uint local_idx0 = pScene.primitiveIndices[baseIndex + 0]; + uint local_idx1 = pScene.primitiveIndices[baseIndex + 1]; + uint local_idx2 = pScene.primitiveIndices[baseIndex + 2]; + indices[p] = uint3(local_idx0, local_idx1, local_idx2); + PrimitiveAttributes primAttr; + primAttr.cull = false;//cull.triangleCulled(p); #ifdef VISIBILITY - primAttr.prim = encodePrimitive(meshletId); + primAttr.prim = encodePrimitive(meshletId); #endif - prim[p] = primAttr; + prim[p] = primAttr; } } for(uint i = threadID; i < MAX_VERTICES; i += MESH_GROUP_SIZE) diff --git a/src/Engine/Graphics/slang-compile.cpp b/src/Engine/Graphics/slang-compile.cpp index 41f5934..4685009 100644 --- a/src/Engine/Graphics/slang-compile.cpp +++ b/src/Engine/Graphics/slang-compile.cpp @@ -86,7 +86,7 @@ void Seele::beginCompilation(const ShaderCompilationInfo& info, SlangCompileTarg for (const auto& [name, mod] : info.entryPoints) { entryPoints.add(name); slang::IEntryPoint* entry; - moduleMap[mod]->findEntryPointByName(name.c_str(), &entry); + CHECK_RESULT(moduleMap[mod]->findEntryPointByName(name.c_str(), &entry)); components.add(entry); }