From e7ba74e2582cca9541ccd8157d9fc258b1eee84a Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Thu, 20 Mar 2025 20:15:38 +0100 Subject: [PATCH 01/12] Adding basic memory resource --- CMakeLists.txt | 2 +- CMakeSettings.json | 126 +++++----- res/shaders/Placeholder.json | 15 ++ src/AssetViewer/main.cpp | 4 +- src/Editor/Asset/MeshLoader.cpp | 2 +- src/Editor/Window/InspectorView.cpp | 2 +- src/Editor/Window/PlayView.cpp | 5 +- src/Engine/Asset/FontAsset.cpp | 16 +- src/Engine/Asset/LevelAsset.cpp | 4 +- src/Engine/Containers/Array.h | 36 +-- src/Engine/Containers/CMakeLists.txt | 3 + src/Engine/Containers/Map.h | 7 +- src/Engine/Containers/MemoryResource.cpp | 34 +++ src/Engine/Containers/MemoryResource.h | 39 ++++ src/Engine/Containers/Pair.h | 8 - src/Engine/Containers/Tree.h | 218 ++++++++++-------- src/Engine/Graphics/CBT/CBT.cpp | 5 +- src/Engine/Graphics/CMakeLists.txt | 2 +- src/Engine/Graphics/Meshlet.cpp | 2 +- src/Engine/Graphics/RenderPass/BasePass.cpp | 12 +- src/Engine/Graphics/RenderPass/BasePass.h | 5 +- src/Engine/Graphics/RenderPass/CMakeLists.txt | 6 +- .../Graphics/RenderPass/CachedDepthPass.cpp | 2 +- .../Graphics/RenderPass/DepthCullingPass.cpp | 2 +- .../Graphics/RenderPass/LightCullingPass.cpp | 7 +- .../Graphics/RenderPass/TerrainRenderer.cpp | 4 +- src/Engine/Graphics/RenderPass/UIPass.cpp | 6 +- src/Engine/Graphics/RenderPass/UIPass.h | 2 +- src/Engine/Graphics/StaticMeshVertexData.cpp | 2 +- src/Engine/Graphics/StaticMeshVertexData.h | 4 +- src/Engine/Graphics/VertexData.cpp | 12 +- src/Engine/Graphics/VertexData.h | 9 +- src/Engine/Graphics/Vulkan/Descriptor.cpp | 4 +- src/Engine/Graphics/Vulkan/Graphics.cpp | 7 +- src/Engine/Graphics/Vulkan/PipelineCache.cpp | 6 +- src/Engine/Graphics/Vulkan/RayTracing.cpp | 2 +- src/Engine/Graphics/slang-compile.cpp | 4 +- src/Engine/Material/Material.cpp | 6 +- src/Engine/Material/ShaderExpression.cpp | 12 +- src/Engine/Physics/BVH.cpp | 8 +- src/Engine/Physics/PhysicsSystem.cpp | 2 +- src/Engine/Scene/LightEnvironment.cpp | 4 +- src/Engine/Scene/Scene.cpp | 8 +- src/Engine/System/MeshUpdater.cpp | 2 +- src/Engine/UI/Element.h | 8 +- src/Engine/UI/Element/Text.h | 2 +- src/Engine/UI/Style/Class.h | 20 +- 47 files changed, 398 insertions(+), 300 deletions(-) create mode 100644 res/shaders/Placeholder.json create mode 100644 src/Engine/Containers/MemoryResource.cpp create mode 100644 src/Engine/Containers/MemoryResource.h diff --git a/CMakeLists.txt b/CMakeLists.txt index f1e4683..b587e18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ 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 ${VCPKG_INSTALLED_DIR}/x64-windows/) + set(VCPKG_BASE_FOLDER ${CMAKE_BINARY_DIR}/vcpkg_installed/x64-windows/) elseif(APPLE) set(VCPKG_BASE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/build/vcpkg_installed/arm64-osx/) endif() diff --git a/CMakeSettings.json b/CMakeSettings.json index 6f611fc..b47945e 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -1,65 +1,65 @@ { - "configurations": [ - { - "name": "Debug", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "configurationType": "Debug", - "generator": "Ninja", - "intelliSenseMode": "windows-msvc-x64", - "inheritEnvironments": [ "msvc_x64" ], - "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", - "buildRoot": "${workspaceRoot}/build", - "installRoot": "C:/Program Files/Seele" - }, - { - "name": "Release", - "generator": "Ninja", - "configurationType": "Release", - "buildRoot": "${workspaceRoot}/build", - "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "msvc_x64" ], - "intelliSenseMode": "windows-msvc-x64", - "installRoot": "C:/Program Files/Seele" - }, - { - "name": "RelWithDebInfo", - "generator": "Ninja", - "configurationType": "RelWithDebInfo", - "buildRoot": "${workspaceRoot}/build", - "installRoot": "C:/Program Files/Seele", - "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "msvc_x64" ], - "intelliSenseMode": "windows-msvc-x64" - }, - { - "name": "AddressSanitizer", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "configurationType": "Debug", - "generator": "Ninja", - "intelliSenseMode": "windows-msvc-x64", - "inheritEnvironments": [ "msvc_x64" ], - "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", - "buildRoot": "${workspaceRoot}/build", - "installRoot": "C:/Program Files/Seele", - "addressSanitizerEnabled": true - }, - { - "name": "MinSizeRel", - "generator": "Ninja", - "configurationType": "MinSizeRel", - "buildRoot": "${workspaceRoot}/build", - "installRoot": "C:/Program Files/Seele", - "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "msvc_x64" ], - "intelliSenseMode": "windows-msvc-x64" - } - ] + "configurations": [ + { + "name": "Debug", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "configurationType": "Debug", + "generator": "Ninja", + "intelliSenseMode": "windows-msvc-x64", + "inheritEnvironments": [ "msvc_x64" ], + "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", + "buildRoot": "${workspaceRoot}/build", + "installRoot": "C:/Program Files/Seele" + }, + { + "name": "Release", + "generator": "Ninja", + "configurationType": "Release", + "buildRoot": "${workspaceRoot}/build", + "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "msvc_x64" ], + "intelliSenseMode": "windows-msvc-x64", + "installRoot": "C:/Program Files/Seele" + }, + { + "name": "RelWithDebInfo", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "buildRoot": "${workspaceRoot}/build", + "installRoot": "C:/Program Files/Seele", + "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "msvc_x64" ], + "intelliSenseMode": "windows-msvc-x64" + }, + { + "name": "AddressSanitizer", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "configurationType": "Debug", + "generator": "Visual Studio 17 2022 Win64", + "intelliSenseMode": "windows-msvc-x64", + "inheritEnvironments": [ "msvc_x64" ], + "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", + "buildRoot": "${workspaceRoot}/build", + "installRoot": "C:/Program Files/Seele", + "addressSanitizerEnabled": true + }, + { + "name": "MinSizeRel", + "generator": "Ninja", + "configurationType": "MinSizeRel", + "buildRoot": "${workspaceRoot}/build", + "installRoot": "C:/Program Files/Seele", + "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "msvc_x64" ], + "intelliSenseMode": "windows-msvc-x64" + } + ] } \ No newline at end of file diff --git a/res/shaders/Placeholder.json b/res/shaders/Placeholder.json new file mode 100644 index 0000000..08d2e12 --- /dev/null +++ b/res/shaders/Placeholder.json @@ -0,0 +1,15 @@ +{ + "name": "Placeholder", + "params": { + }, + "code": [ + { + "exp": "BRDF", + "profile": "BlinnPhong", + "values": { + "baseColor": "float3(0, 1, 0)", + "normal": "float3(0, 0, 1)" + } + } + ] +} \ No newline at end of file diff --git a/src/AssetViewer/main.cpp b/src/AssetViewer/main.cpp index 090fc24..4cd3ad0 100644 --- a/src/AssetViewer/main.cpp +++ b/src/AssetViewer/main.cpp @@ -36,7 +36,7 @@ int main(int, char**) { Array texCoords1(mesh->mNumVertices); if (mesh->HasTextureCoords(2)) abort(); - for (int32 i = 0; i < mesh->mNumVertices; ++i) { + for (uint32 i = 0; i < mesh->mNumVertices; ++i) { positions[i] = Vector(mesh->mVertices[i].x, mesh->mVertices[i].y, mesh->mVertices[i].z); if (mesh->mTextureCoords[0] != nullptr) @@ -65,7 +65,7 @@ int main(int, char**) { return 0.5 * glm::length(glm::cross(p2 - p1, p3 - p1)); }; Array tris(mesh->mNumFaces); - for (int32 faceIndex = 0; faceIndex < mesh->mNumFaces; ++faceIndex) { + for (uint32 faceIndex = 0; faceIndex < mesh->mNumFaces; ++faceIndex) { tris[faceIndex].p[0] = mesh->mFaces[faceIndex].mIndices[0]; tris[faceIndex].p[1] = mesh->mFaces[faceIndex].mIndices[1]; tris[faceIndex].p[2] = mesh->mFaces[faceIndex].mIndices[2]; diff --git a/src/Editor/Asset/MeshLoader.cpp b/src/Editor/Asset/MeshLoader.cpp index a39e896..5063a4b 100644 --- a/src/Editor/Asset/MeshLoader.cpp +++ b/src/Editor/Asset/MeshLoader.cpp @@ -516,7 +516,7 @@ Vector4 MeshLoader::encodeQTangent(Matrix3 m) { void MeshLoader::loadGlobalMeshes(const aiScene* scene, const Array& materials, Array& globalMeshes, Component::Collider& collider) { List> work; - for (int32 meshIndex = 0; meshIndex < scene->mNumMeshes; ++meshIndex) { + for (uint32 meshIndex = 0; meshIndex < scene->mNumMeshes; ++meshIndex) { aiMesh* mesh = scene->mMeshes[meshIndex]; if (!(mesh->mPrimitiveTypes & aiPrimitiveType_TRIANGLE)) continue; diff --git a/src/Editor/Window/InspectorView.cpp b/src/Editor/Window/InspectorView.cpp index 37dcb25..16ea243 100644 --- a/src/Editor/Window/InspectorView.cpp +++ b/src/Editor/Window/InspectorView.cpp @@ -36,7 +36,7 @@ void InspectorView::prepareRender() {} void InspectorView::render() { renderGraph.render(Component::Camera()); } -void InspectorView::applyArea(URect area) {} +void InspectorView::applyArea(URect ) {} void InspectorView::keyCallback(KeyCode, InputAction, KeyModifier) {} diff --git a/src/Editor/Window/PlayView.cpp b/src/Editor/Window/PlayView.cpp index 75506f2..c0627e9 100644 --- a/src/Editor/Window/PlayView.cpp +++ b/src/Editor/Window/PlayView.cpp @@ -49,6 +49,7 @@ void PlayView::keyCallback(KeyCode code, InputAction action, KeyModifier modifie if (code == KeyCode::KEY_R && action == InputAction::RELEASE) { getGlobals().useRayTracing = !getGlobals().useRayTracing; } - //if (code == KeyCode::KEY_B && action == InputAction::RELEASE && modifier & KeyModifier::MOD_CONTROL) { - //} + if (code == KeyCode::KEY_H && action == InputAction::RELEASE) { + MemoryManager::printAllocations(); + } } diff --git a/src/Engine/Asset/FontAsset.cpp b/src/Engine/Asset/FontAsset.cpp index 4d6709c..8498c9e 100644 --- a/src/Engine/Asset/FontAsset.cpp +++ b/src/Engine/Asset/FontAsset.cpp @@ -28,16 +28,16 @@ void FontAsset::load(ArchiveBuffer& buffer) { } void FontAsset::loadFace() { - FT_Error error = FT_New_Memory_Face(ft, (unsigned char*)ttfFile.data(), ttfFile.size(), 0, &ft_face); + FT_Error error = FT_New_Memory_Face(ft, (unsigned char*)ttfFile.data(), (uint32)ttfFile.size(), 0, &ft_face); assert(!error); - blob = hb_blob_create(ttfFile.data(), ttfFile.size(), HB_MEMORY_MODE_DUPLICATE, nullptr, nullptr); + blob = hb_blob_create(ttfFile.data(), (uint32)ttfFile.size(), HB_MEMORY_MODE_DUPLICATE, nullptr, nullptr); hb_face = hb_face_create(blob, 0); hb_font = hb_font_create(hb_face); } UVector2 FontAsset::shapeText(std::string_view view, uint32 fontSize, Array& render) { loadGlyphs(fontSize); hb_buffer_t* buf = hb_buffer_create(); - hb_buffer_add_utf8(buf, view.data(), view.size(), 0, -1); + hb_buffer_add_utf8(buf, view.data(), (uint32)view.size(), 0, -1); hb_buffer_set_language(buf, hb_language_from_string("en", -1)); hb_buffer_set_script(buf, HB_SCRIPT_LATIN); hb_buffer_set_direction(buf, HB_DIRECTION_LTR); @@ -52,10 +52,10 @@ UVector2 FontAsset::shapeText(std::string_view view, uint32 fontSize, Arraynum_glyphs; ++i) { + for (int i = 0; i < ft_face->num_glyphs; ++i) { assert(FT_Load_Glyph(ft_face, i, FT_LOAD_RENDER) == 0); FontAsset::Glyph& glyph = fontSizes[fontSize].glyphs[i]; glyph.size = IVector2(ft_face->glyph->bitmap.width, ft_face->glyph->bitmap.rows); diff --git a/src/Engine/Asset/LevelAsset.cpp b/src/Engine/Asset/LevelAsset.cpp index 27ce4c8..c0d5a5e 100644 --- a/src/Engine/Asset/LevelAsset.cpp +++ b/src/Engine/Asset/LevelAsset.cpp @@ -9,6 +9,6 @@ LevelAsset::LevelAsset(std::string_view folderPath, std::string_view name) : Ass LevelAsset::~LevelAsset() {} -void LevelAsset::save(ArchiveBuffer& buffer) const { } +void LevelAsset::save(ArchiveBuffer&) const { } -void LevelAsset::load(ArchiveBuffer& buffer) { } +void LevelAsset::load(ArchiveBuffer&) { } diff --git a/src/Engine/Containers/Array.h b/src/Engine/Containers/Array.h index 14482dd..c62a4cc 100644 --- a/src/Engine/Containers/Array.h +++ b/src/Engine/Containers/Array.h @@ -1,6 +1,7 @@ #pragma once -#include "EngineTypes.h" #include "Concepts.h" +#include "EngineTypes.h" +#include "MemoryResource.h" #include #include #include @@ -12,7 +13,7 @@ #endif namespace Seele { -template > struct Array { +template struct Array { public: template class IteratorBase { public: @@ -67,7 +68,7 @@ template > s }; using value_type = T; - using allocator_type = Allocator; + using allocator_type = std::pmr::polymorphic_allocator; using size_type = std::size_t; using difference_type = std::ptrdiff_t; using pointer = T*; @@ -82,12 +83,8 @@ template > s using reverse_iterator = std::reverse_iterator; using const_reverse_iterator = std::reverse_iterator; - constexpr Array() noexcept(noexcept(Allocator())) : arraySize(0), allocated(DEFAULT_ALLOC_SIZE), allocator(Allocator()) { - _data = allocateArray(DEFAULT_ALLOC_SIZE); - assert(_data != nullptr); - } - - constexpr explicit Array(const allocator_type& alloc) noexcept : arraySize(0), allocated(DEFAULT_ALLOC_SIZE), allocator(alloc) { + constexpr Array(const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) noexcept + : arraySize(0), allocated(DEFAULT_ALLOC_SIZE), allocator(alloc) { _data = allocateArray(DEFAULT_ALLOC_SIZE); assert(_data != nullptr); } @@ -138,7 +135,8 @@ template > s assert(_data != nullptr); std::uninitialized_copy(other.begin(), other.end(), begin()); } - constexpr Array(const Array& other, const Allocator& alloc) : arraySize(other.arraySize), allocated(other.allocated), allocator(alloc) { + constexpr Array(const Array& other, const allocator_type& alloc) + : arraySize(other.arraySize), allocated(other.allocated), allocator(alloc) { _data = allocateArray(other.allocated); assert(_data != nullptr); std::uninitialized_copy(other.begin(), other.end(), begin()); @@ -150,7 +148,7 @@ template > s other.allocated = 0; other.arraySize = 0; } - constexpr Array(Array&& other, const Allocator& alloc) noexcept + constexpr Array(Array&& other, const allocator_type& alloc) noexcept : arraySize(std::move(other.arraySize)), allocated(std::move(other.allocated)), allocator(alloc) { _data = allocateArray(other.allocated); std::uninitialized_move(other.begin(), other.end(), begin()); @@ -179,8 +177,8 @@ template > s } return *this; } - Array& operator=(Array&& other) noexcept(std::allocator_traits::propagate_on_container_move_assignment::value || - std::allocator_traits::is_always_equal::value) { + Array& operator=(Array&& other) noexcept(std::allocator_traits::propagate_on_container_move_assignment::value || + std::allocator_traits::is_always_equal::value) { if (this != &other) { if (_data != nullptr) { clear(); @@ -294,7 +292,7 @@ template > s requires std::predicate constexpr void remove_if(Pred&& pred, bool keepOrder = true) { Iterator it; - while((it = find(pred)) != end()) { + while ((it = find(pred)) != end()) { erase(it, keepOrder); } } @@ -389,7 +387,11 @@ template > s assert(result != nullptr); return result; } - void deallocateArray(T* ptr, size_type size) { if(ptr == nullptr) return; allocator.deallocate(ptr, size); } + void deallocateArray(T* ptr, size_type size) { + if (ptr == nullptr) + return; + allocator.deallocate(ptr, size); + } template T& addInternal(Type&& t) noexcept { if (arraySize == allocated) { size_type newSize = arraySize + 1; @@ -449,7 +451,7 @@ template > s allocator_type allocator; }; -template constexpr bool operator==(const Array& lhs, const Array& rhs) { +template constexpr bool operator==(const Array& lhs, const Array& rhs) { if (lhs.size() != rhs.size()) { return false; } @@ -461,7 +463,7 @@ template constexpr bool operator==(const Array constexpr auto operator<=>(const Array& lhs, const Array& rhs) { +template constexpr auto operator<=>(const Array& lhs, const Array& rhs) { return std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()); } diff --git a/src/Engine/Containers/CMakeLists.txt b/src/Engine/Containers/CMakeLists.txt index 75715e1..a0bb38e 100644 --- a/src/Engine/Containers/CMakeLists.txt +++ b/src/Engine/Containers/CMakeLists.txt @@ -3,6 +3,8 @@ target_sources(Engine Array.h List.h Map.h + MemoryResource.h + MemoryResource.cpp Pair.h Set.h Tree.h) @@ -13,6 +15,7 @@ target_sources(Engine Array.h List.h Map.h + MemoryResource.h Pair.h Set.h Tree.h) \ No newline at end of file diff --git a/src/Engine/Containers/Map.h b/src/Engine/Containers/Map.h index 6a17412..566ed4b 100644 --- a/src/Engine/Containers/Map.h +++ b/src/Engine/Containers/Map.h @@ -5,12 +5,11 @@ #include "Tree.h" #include - namespace Seele { template struct _KeyFun { const KeyType& operator()(const PairType& pair) const { return pair.key; } }; -template , typename Allocator = std::pmr::polymorphic_allocator>> +template , typename Allocator = std::pmr::polymorphic_allocator>> struct Map : public Tree, _KeyFun>, Compare, Allocator> { using Super = Tree, _KeyFun>, Compare, Allocator>; using key_type = Super::key_type; @@ -35,8 +34,8 @@ struct Map : public Tree, _KeyFun>, Compare, Allocat : Super(comp, alloc) {} constexpr explicit Map(const Allocator& alloc) noexcept(noexcept(Compare())) : Super(alloc) {} constexpr Map(std::initializer_list> init) : Super(init) {} - constexpr mapped_type& operator[](const key_type& key) { - auto [it, inserted] = Super::insert(Pair(key, V())); + constexpr mapped_type& operator[](const key_type& key) { + auto [it, _] = Super::insert(Pair(key)); return it->value; } constexpr const mapped_type& operator[](const key_type& key) const { return Super::find(key)->value; } diff --git a/src/Engine/Containers/MemoryResource.cpp b/src/Engine/Containers/MemoryResource.cpp new file mode 100644 index 0000000..51d31f4 --- /dev/null +++ b/src/Engine/Containers/MemoryResource.cpp @@ -0,0 +1,34 @@ +#include "MemoryResource.h" +#include "Map.h" +#include + +using namespace Seele; + +std::mutex allocationMutex; +std::map allocationCounters; +std::mutex resourcesMutex; +std::map debugResources; + +std::atomic_uint64_t& MemoryManager::getAllocationCounter(const std::string& name) { + std::unique_lock l(allocationMutex); + return allocationCounters[name]; +} + +void MemoryManager::printAllocations() { + std::unique_lock l(allocationMutex); + for (const auto& [name, counter] : allocationCounters) { + if (name.empty()) + { + std::cout << name << ": " << counter << std::endl; + } + else + { + std::cout << name << ": " << counter << std::endl; + } + } +} + +debug_resource* debug_resource::get(const std::string& name) { + std::unique_lock l(resourcesMutex); + return &debugResources[name]; +} \ No newline at end of file diff --git a/src/Engine/Containers/MemoryResource.h b/src/Engine/Containers/MemoryResource.h new file mode 100644 index 0000000..0a58f57 --- /dev/null +++ b/src/Engine/Containers/MemoryResource.h @@ -0,0 +1,39 @@ +#pragma once +#include + +namespace Seele { +class MemoryManager { + public: + static std::atomic_uint64_t& getAllocationCounter(const std::string& name); + static void printAllocations(); + + private: +}; + +class debug_resource : public std::pmr::memory_resource { + public: + static debug_resource* get(const std::string& name); + debug_resource() : name(""), upstream(std::pmr::get_default_resource()), counter(MemoryManager::getAllocationCounter(name)) {} + debug_resource(std::string name, std::pmr::memory_resource* up = std::pmr::get_default_resource()) + : name(name), upstream(up), counter(MemoryManager::getAllocationCounter(name)) {} + debug_resource(const debug_resource& other) = delete; + debug_resource& operator=(const debug_resource& other) = delete; + + void* do_allocate(size_t bytes, size_t alignment) override { + counter += bytes; + return upstream->allocate(bytes, alignment); + } + + void do_deallocate(void* ptr, size_t bytes, size_t alignment) override { + upstream->deallocate(ptr, bytes, alignment); + counter -= bytes; + } + + bool do_is_equal(const std::pmr::memory_resource& other) const noexcept override { return this == &other; } + + private: + std::string name; + std::pmr::memory_resource* upstream; + std::atomic_uint64_t& counter; +}; +} // namespace Seele \ No newline at end of file diff --git a/src/Engine/Containers/Pair.h b/src/Engine/Containers/Pair.h index 45cb210..ac9121d 100644 --- a/src/Engine/Containers/Pair.h +++ b/src/Engine/Containers/Pair.h @@ -3,14 +3,6 @@ namespace Seele { template struct Pair { public: - constexpr Pair() : key(K()), value(V()) {} - constexpr Pair(const K& key, const V& value) : key(key), value(value) {} - template constexpr Pair(U1&& x, U2&& y) : key(std::forward(x)), value(std::forward(y)) {} - Pair(const Pair& other) = default; - Pair(Pair&& other) = default; - ~Pair() {} - Pair& operator=(const Pair& other) = default; - Pair& operator=(Pair&& other) = default; constexpr friend bool operator<(const Pair& left, const Pair& right) { return left.key < right.key || (!(right.key < left.key) && left.value < right.value); } diff --git a/src/Engine/Containers/Tree.h b/src/Engine/Containers/Tree.h index 5daf90a..bc099bb 100644 --- a/src/Engine/Containers/Tree.h +++ b/src/Engine/Containers/Tree.h @@ -1,15 +1,21 @@ #pragma once -#include "Pair.h" #include "Array.h" +#include "Pair.h" +#include #include - +#include namespace Seele { template struct Tree { protected: struct Node { - Node(Node* left, Node* right, const NodeData& nodeData) : leftChild(left), rightChild(right), data(nodeData) {} - Node(Node* left, Node* right, NodeData&& nodeData) : leftChild(left), rightChild(right), data(std::move(nodeData)) {} + Node(const NodeData& data) + : data(data) + {} + Node(NodeData&& data) + : data(std::move(data)) {} + + Node* parent = nullptr; Node* leftChild; Node* rightChild; NodeData data; @@ -17,79 +23,6 @@ template ::template rebind_alloc; public: - template class IteratorBase { - public: - using iterator_category = std::bidirectional_iterator_tag; - using value_type = IterType; - using difference_type = std::ptrdiff_t; - using reference = IterType&; - using pointer = IterType*; - - constexpr IteratorBase(Node* x = nullptr, Array&& beginIt = Array()) : node(x), traversal(std::move(beginIt)) {} - constexpr IteratorBase(const IteratorBase& i) : node(i.node), traversal(i.traversal) {} - constexpr IteratorBase(IteratorBase&& i) noexcept : node(std::move(i.node)), traversal(std::move(i.traversal)) {} - constexpr IteratorBase& operator=(const IteratorBase& other) { - if (this != &other) { - node = other.node; - traversal = other.traversal; - } - return *this; - } - constexpr IteratorBase& operator=(IteratorBase&& other) noexcept { - if (this != &other) { - node = std::move(other.node); - traversal = std::move(other.traversal); - } - return *this; - } - constexpr reference operator*() const { return node->data; } - constexpr pointer operator->() const { return &(node->data); } - constexpr bool operator!=(const IteratorBase& other) { return node != other.node; } - constexpr bool operator==(const IteratorBase& other) { return node == other.node; } - constexpr std::strong_ordering operator<=>(const IteratorBase& other) { return node <=> other.node; } - constexpr IteratorBase& operator++() { - node = node->rightChild; - while (node != nullptr && node->leftChild != nullptr) { - traversal.add(node); - node = node->leftChild; - } - if (node == nullptr && traversal.size() > 0) { - node = traversal.back(); - traversal.pop(); - } - return *this; - } - constexpr IteratorBase& operator--() { - node = node->leftChild; - while (node != nullptr && node->rightChild != nullptr) { - traversal.add(node); - node = node->rightchild; - } - if (node == nullptr && traversal.size() > 0) { - node = traversal.back(); - traversal.pop(); - } - return *this; - } - constexpr IteratorBase operator--(int) { - IteratorBase tmp(*this); - --*this; - return tmp; - } - constexpr IteratorBase operator++(int) { - IteratorBase tmp(*this); - ++*this; - return tmp; - } - Node* getNode() { return node; } - - private: - Node* node; - Array traversal; - }; - using Iterator = IteratorBase; - using ConstIterator = IteratorBase; - using key_type = KeyType; using value_type = NodeData; using allocator_type = Allocator; @@ -100,6 +33,95 @@ template ::pointer; using const_pointer = std::allocator_traits::const_pointer; + class ConstIterator { + public: + using iterator_category = std::bidirectional_iterator_tag; + using value_type = value_type; + using difference_type = difference_type; + using pointer = const_pointer; + using reference = const value_type&; + + constexpr ConstIterator(Node* x = nullptr) : node(x) {} + constexpr ConstIterator(const ConstIterator& i) = default; + constexpr ConstIterator(ConstIterator&& i) noexcept = default; + constexpr ConstIterator& operator=(const ConstIterator& other) = default; + constexpr ConstIterator& operator=(ConstIterator&& other) noexcept = default; + constexpr reference operator*() const noexcept { return node->data; } + constexpr pointer operator->() const noexcept { return std::pointer_traits::pointer_to(**this); } + constexpr bool operator==(const ConstIterator& other) { return node == other.node; } + constexpr bool operator!=(const ConstIterator& other) { return node != other.node; } + constexpr std::strong_ordering operator<=>(const ConstIterator& other) { return node <=> other.node; } + constexpr ConstIterator& operator++() noexcept { + node = node->rightChild; + while (node != nullptr && node->leftChild != nullptr) { + node = node->leftChild; + } + if (node == nullptr && node->parent != nullptr) { + node = node->parent; + } + return *this; + } + constexpr ConstIterator& operator--() { + node = node->leftChild; + while (node != nullptr && node->rightChild != nullptr) { + node = node->rightchild; + } + if (node == nullptr && node->parent != nullptr) { + node = node->parent; + } + return *this; + } + constexpr ConstIterator operator--(int) { + ConstIterator tmp(*this); + --*this; + return tmp; + } + constexpr ConstIterator operator++(int) { + ConstIterator tmp(*this); + ++*this; + return tmp; + } + + Node* getNode() { return node; } + + protected: + Node* node; + }; + + class Iterator : public ConstIterator { + public: + using value_type = value_type; + using difference_type = difference_type; + using pointer = pointer; + using reference = value_type&; + + constexpr Iterator(Node* x = nullptr) : ConstIterator(x) {} + constexpr Iterator(const Iterator& i) = default; + constexpr Iterator(Iterator&& i) noexcept = default; + constexpr Iterator& operator=(const Iterator& other) = default; + constexpr Iterator& operator=(Iterator&& other) noexcept = default; + constexpr reference operator*() const noexcept { return const_cast(ConstIterator::operator*()); } + constexpr pointer operator->() const noexcept { return std::pointer_traits::pointer_to(**this); } + constexpr Iterator& operator++() noexcept { + ConstIterator::operator++(); + return *this; + } + constexpr Iterator& operator--() noexcept { + ConstIterator::operator--(); + return *this; + } + constexpr Iterator& operator++(int) noexcept { + Iterator tmp = *this; + ConstIterator::operator++(); + return tmp; + } + constexpr Iterator& operator--(int) noexcept { + Iterator tmp = *this; + ConstIterator::operator--(); + return tmp; + } + }; + using iterator = Iterator; using const_iterator = ConstIterator; using reverse_iterator = std::reverse_iterator; @@ -212,12 +234,12 @@ template insert(const NodeData& data) { - auto [r, inserted] = _insert(root, data); + const auto& [r, inserted] = _insert(root, data); root = r; return Pair(iterator(root), inserted); } constexpr Pair insert(NodeData&& data) { - auto [r, inserted] = _insert(root, std::move(data)); + const auto& [r, inserted] = _insert(root, std::move(data)); root = r; return Pair(iterator(root), inserted); } @@ -242,25 +264,20 @@ template beginTraversal; while (begin != nullptr) { - beginTraversal.add(begin); begin = begin->leftChild; } - if (!beginTraversal.empty()) { - begin = beginTraversal.back(); - beginTraversal.pop(); + if (begin->parent != nullptr) { + begin = begin->parent; } - return Iterator(begin, std::move(beginTraversal)); + return Iterator(begin); } constexpr Iterator calcEndIterator() const { - Node* endIndex = root; - Array endTraversal; - while (endIndex != nullptr) { - endTraversal.add(endIndex); - endIndex = endIndex->rightChild; + Node* endNode = root; + while (endNode != nullptr) { + endNode = endNode->rightChild; } - return Iterator(endIndex, std::move(endTraversal)); + return Iterator(endNode); } NodeAlloc alloc; Node* root; @@ -273,20 +290,24 @@ template rightChild; x->rightChild = y->leftChild; + x->rightChild->parent = x; y->leftChild = x; + y->leftChild->parent = y; return y; } Node* rotateRight(Node* x) { Node* y = x->leftChild; x->leftChild = y->rightChild; + x->leftChild->parent = x; y->rightChild = x; + y->rightChild->parent = y; return y; } template Pair _insert(Node* r, NodeDataType&& data) { markIteratorsDirty(); if (r == nullptr) { root = alloc.allocate(1); - std::allocator_traits::construct(alloc, root, nullptr, nullptr, std::forward(data)); + std::allocator_traits::construct(alloc, root, std::forward(data)); _size++; return Pair(root, true); } @@ -296,15 +317,19 @@ template (r, false); Node* newNode = alloc.allocate(1); - std::allocator_traits::construct(alloc, newNode, nullptr, nullptr, std::forward(data)); + std::allocator_traits::construct(alloc, newNode, std::forward(data)); if (comp(keyFun(newNode->data), keyFun(r->data))) { newNode->rightChild = r; + newNode->rightChild->parent = newNode; newNode->leftChild = r->leftChild; + newNode->leftChild->parent = newNode; r->leftChild = nullptr; } else { newNode->leftChild = r; + newNode->leftChild->parent = newNode; newNode->rightChild = r->rightChild; + newNode->rightChild->parent = newNode; r->rightChild = nullptr; } _size++; @@ -329,6 +354,7 @@ template leftChild, key); r->rightChild = temp->rightChild; + r->rightChild->parent = r; } std::allocator_traits::destroy(alloc, temp); alloc.deallocate(temp, 1); @@ -346,13 +372,16 @@ template leftChild->data))) { r->leftChild->leftChild = _splay(r->leftChild->leftChild, key); + r->leftChild->leftChild->parent = r->leftChild; r = rotateRight(r); } else if (comp(keyFun(r->leftChild->data), key)) { r->leftChild->rightChild = _splay(r->leftChild->rightChild, key); + r->leftChild->rightChild->parent = r->leftChild; if (r->leftChild->rightChild != nullptr) { r->leftChild = rotateLeft(r->leftChild); + r->leftChild->parent = r; } } return (r->leftChild == nullptr) ? r : rotateRight(r); @@ -362,12 +391,15 @@ template rightChild->data))) { r->rightChild->leftChild = _splay(r->rightChild->leftChild, key); + r->rightChild->leftChild->parent = r->rightChild; if (r->rightChild->leftChild != nullptr) { r->rightChild = rotateRight(r->rightChild); + r->rightChild->parent = r; } } else if (comp(keyFun(r->rightChild->data), key)) { r->rightChild->rightChild = _splay(r->rightChild->rightChild, key); + r->rightChild->rightChild->parent = r->rightChild; r = rotateLeft(r); } diff --git a/src/Engine/Graphics/CBT/CBT.cpp b/src/Engine/Graphics/CBT/CBT.cpp index 46c7484..33baffc 100644 --- a/src/Engine/Graphics/CBT/CBT.cpp +++ b/src/Engine/Graphics/CBT/CBT.cpp @@ -120,7 +120,7 @@ uint32_t find_msb_64(uint64_t x) { CPUMesh Seele::generateCPUMesh(uint32 cbtNumElements) { CPUMesh result; - result.totalNumElements = edges.size() + cbtNumElements; + result.totalNumElements = (uint32)edges.size() + cbtNumElements; result.heapIDArray.resize(result.totalNumElements); result.neighborsArray.resize(result.totalNumElements); @@ -193,7 +193,6 @@ Matrix3 decodeSubdivisionMatrix(uint64 heapID) { void LebMatrixCache::init(Gfx::PGraphics graphics, uint32 depth) { cacheDepth = depth; uint32 matrixCount = 2ULL << cacheDepth; - Matrix3 m; std::vector table(matrixCount); table[0] = Matrix3({1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f}); for (uint64 heapID = 1ULL; heapID < (2ULL << cacheDepth); ++heapID) { @@ -799,7 +798,7 @@ void MeshUpdater::update(CBTMesh& mesh, Gfx::PDescriptorSet viewParamsSet, Gfx:: } void MeshUpdater::validation(CBTMesh& mesh, Gfx::PUniformBuffer geometryCB) { - uint32 numGroups = (mesh.totalNumElements + WORKGROUP_SIZE - 1) / WORKGROUP_SIZE; + //uint32 numGroups = (mesh.totalNumElements + WORKGROUP_SIZE - 1) / WORKGROUP_SIZE; /*Gfx::PDescriptorSet set = layout->allocateDescriptorSet(); set->updateBuffer(GEOMETRY_CB, 0, geometryCB); diff --git a/src/Engine/Graphics/CMakeLists.txt b/src/Engine/Graphics/CMakeLists.txt index c619c3d..2290016 100644 --- a/src/Engine/Graphics/CMakeLists.txt +++ b/src/Engine/Graphics/CMakeLists.txt @@ -1,4 +1,4 @@ -add_subdirectory(CBT/) +#add_subdirectory(CBT/) target_sources(Engine PRIVATE diff --git a/src/Engine/Graphics/Meshlet.cpp b/src/Engine/Graphics/Meshlet.cpp index 88fb9d1..f3e2cee 100644 --- a/src/Engine/Graphics/Meshlet.cpp +++ b/src/Engine/Graphics/Meshlet.cpp @@ -25,7 +25,7 @@ void buildAdjacency(const uint32 numVerts, const Array& indices, Adjacen triangleOffset += info.trianglesPerVertex[j]; } - uint32 numTriangles = indices.size() / 3; + uint32 numTriangles = (uint32)indices.size() / 3; info.triangleData.resize(triangleOffset); Array offsets = info.indexBufferOffset; for (uint32 k = 0; k < numTriangles; ++k) { diff --git a/src/Engine/Graphics/RenderPass/BasePass.cpp b/src/Engine/Graphics/RenderPass/BasePass.cpp index bf215e2..39d9458 100644 --- a/src/Engine/Graphics/RenderPass/BasePass.cpp +++ b/src/Engine/Graphics/RenderPass/BasePass.cpp @@ -200,8 +200,7 @@ void BasePass::render() { .attachmentCount = 1, }, }; - Gfx::PGraphicsPipeline pipeline = graphics->createGraphicsPipeline(std::move(pipelineInfo)); - command->bindPipeline(pipeline); + command->bindPipeline(graphics->createGraphicsPipeline(std::move(pipelineInfo))); } else { Gfx::LegacyPipelineCreateInfo pipelineInfo = { .vertexShader = collection->vertexShader, @@ -221,8 +220,7 @@ void BasePass::render() { .attachmentCount = 1, }, }; - Gfx::PGraphicsPipeline pipeline = graphics->createGraphicsPipeline(std::move(pipelineInfo)); - command->bindPipeline(pipeline); + command->bindPipeline(graphics->createGraphicsPipeline(std::move(pipelineInfo))); } command->bindDescriptor({viewParamsSet, vertexData->getVertexDataSet(), vertexData->getInstanceDataSet(), scene->getLightEnvironment()->getDescriptorSet(), Material::getDescriptorSet(), opaqueCulling}); @@ -231,7 +229,7 @@ void BasePass::render() { Gfx::SE_SHADER_STAGE_FRAGMENT_BIT, 0, sizeof(VertexData::DrawCallOffsets), &drawCall.offsets); if (graphics->supportMeshShading()) { - command->drawMesh(drawCall.instanceMeshData.size(), 1, 1); + command->drawMesh((uint32)drawCall.instanceMeshData.size(), 1, 1); } else { command->bindIndexBuffer(vertexData->getIndexBuffer()); for (const auto& meshData : drawCall.instanceMeshData) { @@ -252,7 +250,7 @@ void BasePass::render() { { Gfx::ORenderCommand skyboxCommand = graphics->createRenderCommand("SkyboxRender"); skyboxCommand->setViewport(viewport); - skyboxCommand->bindPipeline(pipeline); + skyboxCommand->bindPipeline(skyboxPipeline); skyboxCommand->bindDescriptor({viewParamsSet, skyboxDataSet, textureSet}); skyboxCommand->draw(36, 1, 0, 0); graphics->executeCommands(std::move(skyboxCommand)); @@ -623,6 +621,6 @@ void BasePass::createRenderPass() { .attachmentCount = 1, }, }; - pipeline = graphics->createGraphicsPipeline(std::move(gfxInfo)); + skyboxPipeline = graphics->createGraphicsPipeline(std::move(gfxInfo)); } } diff --git a/src/Engine/Graphics/RenderPass/BasePass.h b/src/Engine/Graphics/RenderPass/BasePass.h index 81507cc..7a2305f 100644 --- a/src/Engine/Graphics/RenderPass/BasePass.h +++ b/src/Engine/Graphics/RenderPass/BasePass.h @@ -2,7 +2,6 @@ #include "MinimalEngine.h" #include "RenderPass.h" #include "WaterRenderer.h" -#include "TerrainRenderer.h" namespace Seele { DECLARE_REF(CameraActor) @@ -56,7 +55,7 @@ class BasePass : public RenderPass { Gfx::PShaderBuffer cullingBuffer; //OWaterRenderer waterRenderer; - OTerrainRenderer terrainRenderer; + //OTerrainRenderer terrainRenderer; // Debug rendering Gfx::OVertexInput debugVertexInput; @@ -74,7 +73,7 @@ class BasePass : public RenderPass { Gfx::OVertexShader vertexShader; Gfx::OFragmentShader fragmentShader; Gfx::OPipelineLayout pipelineLayout; - Gfx::PGraphicsPipeline pipeline; + Gfx::PGraphicsPipeline skyboxPipeline; Gfx::OSampler skyboxSampler; struct SkyboxData { Matrix4 transformMatrix; diff --git a/src/Engine/Graphics/RenderPass/CMakeLists.txt b/src/Engine/Graphics/RenderPass/CMakeLists.txt index 7102259..a5fd61a 100644 --- a/src/Engine/Graphics/RenderPass/CMakeLists.txt +++ b/src/Engine/Graphics/RenderPass/CMakeLists.txt @@ -15,8 +15,8 @@ target_sources(Engine RenderGraphResources.cpp RenderPass.h RenderPass.cpp - TerrainRenderer.h - TerrainRenderer.cpp + #TerrainRenderer.h + #TerrainRenderer.cpp ToneMappingPass.h ToneMappingPass.cpp UIPass.h @@ -38,6 +38,6 @@ target_sources(Engine RenderGraph.h RenderGraphResources.h RenderPass.h - TerrainRenderer.h + #TerrainRenderer.h UIPass.h VisibilityPass.h) \ No newline at end of file diff --git a/src/Engine/Graphics/RenderPass/CachedDepthPass.cpp b/src/Engine/Graphics/RenderPass/CachedDepthPass.cpp index 8b0b44a..91cb737 100644 --- a/src/Engine/Graphics/RenderPass/CachedDepthPass.cpp +++ b/src/Engine/Graphics/RenderPass/CachedDepthPass.cpp @@ -111,7 +111,7 @@ void CachedDepthPass::render() { command->pushConstants(Gfx::SE_SHADER_STAGE_TASK_BIT_EXT | Gfx::SE_SHADER_STAGE_VERTEX_BIT, 0, sizeof(VertexData::DrawCallOffsets), &offsets); if (graphics->supportMeshShading()) { - command->drawMesh(vertexData->getNumInstances(), 1, 1); + command->drawMesh((uint32)vertexData->getNumInstances(), 1, 1); } else { const auto& materials = vertexData->getMaterialData(); for (const auto& materialData : materials) { diff --git a/src/Engine/Graphics/RenderPass/DepthCullingPass.cpp b/src/Engine/Graphics/RenderPass/DepthCullingPass.cpp index 0e6190d..3d72469 100644 --- a/src/Engine/Graphics/RenderPass/DepthCullingPass.cpp +++ b/src/Engine/Graphics/RenderPass/DepthCullingPass.cpp @@ -185,7 +185,7 @@ void DepthCullingPass::render() { command->pushConstants(Gfx::SE_SHADER_STAGE_TASK_BIT_EXT | Gfx::SE_SHADER_STAGE_VERTEX_BIT, 0, sizeof(VertexData::DrawCallOffsets), &offsets); if (graphics->supportMeshShading()) { - command->drawMesh(vertexData->getNumInstances(), 1, 1); + command->drawMesh((uint32)vertexData->getNumInstances(), 1, 1); } else { const auto& materials = vertexData->getMaterialData(); for (const auto& materialData : materials) { diff --git a/src/Engine/Graphics/RenderPass/LightCullingPass.cpp b/src/Engine/Graphics/RenderPass/LightCullingPass.cpp index 099031d..1c999e4 100644 --- a/src/Engine/Graphics/RenderPass/LightCullingPass.cpp +++ b/src/Engine/Graphics/RenderPass/LightCullingPass.cpp @@ -278,7 +278,7 @@ void LightCullingPass::setupFrustums() { frustumBuffer->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT, Gfx::SE_ACCESS_SHADER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT); - Gfx::PDescriptorSet dispatchParamsSet = dispatchParamsLayout->allocateDescriptorSet(); + dispatchParamsSet = dispatchParamsLayout->allocateDescriptorSet(); dispatchParamsSet->updateConstants("numThreadGroups", 0, &numThreadGroups); dispatchParamsSet->updateConstants("numThreads", 0, &numThreads); dispatchParamsSet->updateBuffer(FRUSTUMBUFFER_NAME, 0, frustumBuffer); @@ -292,8 +292,5 @@ void LightCullingPass::setupFrustums() { commands.add(std::move(command)); graphics->executeCommands(std::move(commands)); frustumBuffer->pipelineBarrier(Gfx::SE_ACCESS_SHADER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT, - Gfx::SE_ACCESS_SHADER_READ_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT); - Frustum* frustums = (Frustum*)frustumBuffer->map(); - graphics->waitDeviceIdle(); - + Gfx::SE_ACCESS_SHADER_READ_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT); } diff --git a/src/Engine/Graphics/RenderPass/TerrainRenderer.cpp b/src/Engine/Graphics/RenderPass/TerrainRenderer.cpp index 045a2b4..fdb89ea 100644 --- a/src/Engine/Graphics/RenderPass/TerrainRenderer.cpp +++ b/src/Engine/Graphics/RenderPass/TerrainRenderer.cpp @@ -25,7 +25,7 @@ TerrainRenderer::TerrainRenderer(Gfx::PGraphics graphics, PScene scene, Gfx::PDe plainMesh.gpuCBT.bufferCount = 2; for (uint32 i = 0; i < 2; ++i) { uint32 bufferSize = cbt.bufferSize(i); - uint32 elementSize = cbt.elementSize(i); + //uint32 elementSize = cbt.elementSize(i); plainMesh.gpuCBT.bufferArray[i] = graphics->createShaderBuffer(ShaderBufferCreateInfo{ .sourceData = { @@ -189,7 +189,7 @@ TerrainRenderer::TerrainRenderer(Gfx::PGraphics graphics, PScene scene, Gfx::PDe baseMesh.vertexBuffer->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT, Gfx::SE_ACCESS_SHADER_READ_BIT | Gfx::SE_ACCESS_SHADER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT); - uint32 indexBufferSize = cpuMesh.totalNumElements * sizeof(UVector); + //uint32 indexBufferSize = cpuMesh.totalNumElements * sizeof(UVector); Array indices; for (uint32 i = 0; i < cpuMesh.totalNumElements * 3; ++i) indices.add(i); diff --git a/src/Engine/Graphics/RenderPass/UIPass.cpp b/src/Engine/Graphics/RenderPass/UIPass.cpp index d019e03..0a27bbb 100644 --- a/src/Engine/Graphics/RenderPass/UIPass.cpp +++ b/src/Engine/Graphics/RenderPass/UIPass.cpp @@ -62,9 +62,9 @@ void UIPass::beginFrame(const Component::Camera& cam) { float x = render.position.x; float y = render.position.y; //todo: convert using actual tree depth - uint32 textureIndex = -1ul; + uint32 textureIndex = std::numeric_limits::max(); if (render.backgroundTexture != nullptr) { - textureIndex = usedTextures.size(); + textureIndex = (uint32)usedTextures.size(); usedTextures.add(render.backgroundTexture); } elements.add(RenderElementStyle{ @@ -112,7 +112,7 @@ void UIPass::render() { command->setViewport(viewport); command->bindPipeline(uiPipeline); command->bindDescriptor({viewParamsSet, uiDescriptorSet}); - command->draw(4, elements.size(), 0, 0); + command->draw(4, (uint32)elements.size(), 0, 0); commands.add(std::move(command)); graphics->executeCommands(std::move(commands)); graphics->endRenderPass(); diff --git a/src/Engine/Graphics/RenderPass/UIPass.h b/src/Engine/Graphics/RenderPass/UIPass.h index 55a94ac..2162202 100644 --- a/src/Engine/Graphics/RenderPass/UIPass.h +++ b/src/Engine/Graphics/RenderPass/UIPass.h @@ -42,7 +42,7 @@ class UIPass : public RenderPass { Vector color; float opacity = 1; float z = 0; - uint32 textureIndex = -1ul; + uint32 textureIndex = std::numeric_limits::max(); uint32 pad0; uint32 pad1; }; diff --git a/src/Engine/Graphics/StaticMeshVertexData.cpp b/src/Engine/Graphics/StaticMeshVertexData.cpp index 3457866..6fc802a 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.cpp +++ b/src/Engine/Graphics/StaticMeshVertexData.cpp @@ -245,7 +245,7 @@ void StaticMeshVertexData::updateBuffers() { descriptorSet->updateBuffer(TANGENTS_NAME, 0, tangents); descriptorSet->updateBuffer(BITANGENTS_NAME, 0, biTangents); descriptorSet->updateBuffer(COLORS_NAME, 0, colors); - for (size_t i = 0; i < MAX_TEXCOORDS; ++i) { + for (uint32 i = 0; i < MAX_TEXCOORDS; ++i) { descriptorSet->updateBuffer(TEXCOORDS_NAME, i, texCoords[i]); } descriptorSet->writeChanges(); diff --git a/src/Engine/Graphics/StaticMeshVertexData.h b/src/Engine/Graphics/StaticMeshVertexData.h index ed59ac2..f6e811e 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.h +++ b/src/Engine/Graphics/StaticMeshVertexData.h @@ -5,7 +5,6 @@ #include "VertexData.h" #include "entt/entt.hpp" - namespace Seele { class StaticMeshVertexData : public VertexData { public: @@ -39,7 +38,6 @@ class StaticMeshVertexData : public VertexData { virtual void resizeBuffers() override; virtual void updateBuffers() override; - Gfx::OShaderBuffer positions; constexpr static const char* POSITIONS_NAME = "positions"; Gfx::OShaderBuffer texCoords[MAX_TEXCOORDS]; @@ -52,7 +50,7 @@ class StaticMeshVertexData : public VertexData { constexpr static const char* BITANGENTS_NAME = "biTangents"; Gfx::OShaderBuffer colors; constexpr static const char* COLORS_NAME = "colors"; - Array posData; + Array posData{debug_resource::get("VertexPositions")}; Array texData[MAX_TEXCOORDS]; Array norData; Array tanData; diff --git a/src/Engine/Graphics/VertexData.cpp b/src/Engine/Graphics/VertexData.cpp index fa4e401..d30f3a1 100644 --- a/src/Engine/Graphics/VertexData.cpp +++ b/src/Engine/Graphics/VertexData.cpp @@ -90,7 +90,7 @@ void VertexData::createDescriptors() { Array cullingOffsets; for (auto& mat : materialData) { for (auto& instance : mat.instances) { - instance.offsets.instanceOffset = instanceData.size(); + instance.offsets.instanceOffset = (uint32)instanceData.size(); MaterialOffsets offsets = instance.materialInstance->getMaterialOffsets(); instance.offsets.textureOffset = offsets.textureOffset; instance.offsets.samplerOffset = offsets.samplerOffset; @@ -104,7 +104,7 @@ void VertexData::createDescriptors() { } } for (uint32 i = 0; i < transparentData.size(); ++i) { - transparentData[i].offsets.instanceOffset = instanceData.size(); + transparentData[i].offsets.instanceOffset = (uint32)instanceData.size(); cullingOffsets.add(transparentData[i].cullingOffset); instanceData.add(transparentData[i].instanceData); instanceMeshData.add(transparentData[i].meshData); @@ -139,17 +139,17 @@ void VertexData::createDescriptors() { void VertexData::loadMesh(MeshId id, Array loadedIndices, Array loadedMeshlets) { std::unique_lock l(vertexDataLock); for (auto&& chunk : loadedMeshlets | std::views::chunk(2048)) { - uint32 meshletOffset = meshlets.size(); + uint32 meshletOffset = (uint32)meshlets.size(); AABB meshAABB; uint32 numMeshlets = 0; for (auto&& m : chunk) { numMeshlets++; //... meshAABB = meshAABB.combine(m.boundingBox); - uint32 vertexOffset = vertexIndices.size(); + uint32 vertexOffset = (uint32)vertexIndices.size(); vertexIndices.resize(vertexOffset + m.numVertices); std::memcpy(vertexIndices.data() + vertexOffset, m.uniqueVertices, m.numVertices * sizeof(uint32)); - uint32 primitiveOffset = primitiveIndices.size(); + uint32 primitiveOffset = (uint32)primitiveIndices.size(); primitiveIndices.resize(primitiveOffset + (m.numPrimitives * 3)); std::memcpy(primitiveIndices.data() + primitiveOffset, m.primitiveLayout, m.numPrimitives * 3 * sizeof(uint8)); meshlets.add(MeshletDescription{ @@ -349,7 +349,7 @@ void VertexData::destroy() { } uint32 VertexData::addCullingMapping(MeshId id) { - uint32 result = meshletCount; + uint32 result = (uint32)meshletCount; for (const auto& md : getMeshData(id)) { meshletCount += md.numMeshlets; } diff --git a/src/Engine/Graphics/VertexData.h b/src/Engine/Graphics/VertexData.h index 139fa50..843a3f4 100644 --- a/src/Engine/Graphics/VertexData.h +++ b/src/Engine/Graphics/VertexData.h @@ -8,7 +8,7 @@ #include "Meshlet.h" #include -constexpr uint64 MAX_TEXCOORDS = 8; +constexpr uint32 MAX_TEXCOORDS = 8; namespace Seele { DECLARE_REF(MaterialInstance) @@ -77,10 +77,8 @@ class VertexData { const Array& getTransparentData() const { return transparentData; } const Array& getRayTracingData() const { return rayTracingScene; } const Array& getMeshData(MeshId id) const { return meshData[id]; } - void registerBottomLevelAccelerationStructure(Gfx::PBottomLevelAS blas) { - dataToBuild.add(blas); - } - uint64 getIndicesOffset(uint32 meshletIndex) { return meshlets[meshletIndex].indicesOffset; } + void registerBottomLevelAccelerationStructure(Gfx::PBottomLevelAS blas) { dataToBuild.add(blas); } + uint32 getIndicesOffset(uint32 meshletIndex) { return meshlets[meshletIndex].indicesOffset; } uint64 getNumInstances() const { return instanceData.size(); } static List getList(); static VertexData* findByTypeName(std::string name); @@ -110,6 +108,7 @@ class VertexData { uint32 indicesOffset = 0; }; std::mutex materialDataLock; + debug_resource vertexDataResource = {"VertexData"}; Array materialData; Array transparentData; diff --git a/src/Engine/Graphics/Vulkan/Descriptor.cpp b/src/Engine/Graphics/Vulkan/Descriptor.cpp index 0e2c060..40d209e 100644 --- a/src/Engine/Graphics/Vulkan/Descriptor.cpp +++ b/src/Engine/Graphics/Vulkan/Descriptor.cpp @@ -51,11 +51,11 @@ void DescriptorLayout::create() { constantsSize += gfxBinding.uniformLength; constantsStages |= gfxBinding.shaderStages; } else { - mappings[gfxBinding.name] = { + mappings[gfxBinding.name] = DescriptorMapping{ .binding = (uint32)bindings.size(), .type = cast(gfxBinding.descriptorType), }; - bindings.add({ + bindings.add(VkDescriptorSetLayoutBinding{ .binding = (uint32)bindings.size(), .descriptorType = cast(gfxBinding.descriptorType), .descriptorCount = gfxBinding.descriptorCount, diff --git a/src/Engine/Graphics/Vulkan/Graphics.cpp b/src/Engine/Graphics/Vulkan/Graphics.cpp index dfcefc1..3e66038 100644 --- a/src/Engine/Graphics/Vulkan/Graphics.cpp +++ b/src/Engine/Graphics/Vulkan/Graphics.cpp @@ -321,7 +321,7 @@ Gfx::OPipelineStatisticsQuery Graphics::createPipelineStatisticsQuery(const std: return new PipelineStatisticsQuery(this, name); } -Gfx::OTimestampQuery Graphics::createTimestampQuery(uint64 numTimestamps, const std::string& name) { +Gfx::OTimestampQuery Graphics::createTimestampQuery(uint64, const std::string& name) { return new TimestampQuery(this, name); } @@ -457,9 +457,6 @@ void Graphics::buildBottomLevelAccelerationStructures(Array // For the sake of simplicity we won't stage the vertex data to the GPU memory // Note that the buffer usage flags for buffers consumed by the bottom level acceleration structure require special flags - const VkBufferUsageFlags buffer_usage_flags = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR | - VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; - VkBufferCreateInfo transformBufferInfo = { .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, .pNext = nullptr, @@ -593,7 +590,7 @@ void Graphics::buildBottomLevelAccelerationStructures(Array } PCommand cmd = graphicsCommands->getCommands(); - vkCmdBuildAccelerationStructuresKHR(cmd->getHandle(), buildGeometries.size(), buildGeometries.data(), buildRangePointers.data()); + vkCmdBuildAccelerationStructuresKHR(cmd->getHandle(), (uint32)buildGeometries.size(), buildGeometries.data(), buildRangePointers.data()); cmd->bindResource(PBufferAllocation(transformBuffer)); destructionManager->queueResourceForDestruction(std::move(transformBuffer)); for (auto& scratchAlloc : scratchBuffers) { diff --git a/src/Engine/Graphics/Vulkan/PipelineCache.cpp b/src/Engine/Graphics/Vulkan/PipelineCache.cpp index 15dec29..d28f484 100644 --- a/src/Engine/Graphics/Vulkan/PipelineCache.cpp +++ b/src/Engine/Graphics/Vulkan/PipelineCache.cpp @@ -508,7 +508,7 @@ PRayTracingPipeline PipelineCache::createPipeline(Gfx::RayTracingPipelineCreateI uint32 intersectionIndex = VK_SHADER_UNUSED_KHR; if (hitgroup.anyHitShader != nullptr) { auto anyHit = hitgroup.anyHitShader.cast(); - anyHitIndex = shaderStages.size(); + anyHitIndex = (uint32)shaderStages.size(); shaderStages.add(VkPipelineShaderStageCreateInfo{ .sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, .pNext = nullptr, @@ -521,7 +521,7 @@ PRayTracingPipeline PipelineCache::createPipeline(Gfx::RayTracingPipelineCreateI } if (hitgroup.intersectionShader != nullptr) { auto intersect = hitgroup.intersectionShader.cast(); - intersectionIndex = shaderGroups.size(); + intersectionIndex = (uint32)shaderGroups.size(); shaderStages.add(VkPipelineShaderStageCreateInfo{ .sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, .pNext = nullptr, @@ -674,7 +674,7 @@ PRayTracingPipeline PipelineCache::createPipeline(Gfx::RayTracingPipelineCreateI Gfx::QueueType::GRAPHICS, sbtAlignment); Array sbt(sbtSize); - vkGetRayTracingShaderGroupHandlesKHR(graphics->getDevice(), pipelineHandle, 0, shaderGroups.size(), sbtSize, sbt.data()); + vkGetRayTracingShaderGroupHandlesKHR(graphics->getDevice(), pipelineHandle, 0, (uint32)shaderGroups.size(), sbtSize, sbt.data()); uint64 sbtOffset = 0; Array rayGenSbt(rayGenStride); diff --git a/src/Engine/Graphics/Vulkan/RayTracing.cpp b/src/Engine/Graphics/Vulkan/RayTracing.cpp index 1b4fb4e..dfd6b0d 100644 --- a/src/Engine/Graphics/Vulkan/RayTracing.cpp +++ b/src/Engine/Graphics/Vulkan/RayTracing.cpp @@ -106,7 +106,7 @@ TopLevelAS::TopLevelAS(PGraphics graphics, const Gfx::TopLevelASCreateInfo& crea .pGeometries = &geometry, }; - const uint32 primitiveCount = instances.size(); + const uint32 primitiveCount = (uint32)instances.size(); VkAccelerationStructureBuildSizesInfoKHR buildSizesInfo = { .sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR, diff --git a/src/Engine/Graphics/slang-compile.cpp b/src/Engine/Graphics/slang-compile.cpp index 55d8494..c8f7037 100644 --- a/src/Engine/Graphics/slang-compile.cpp +++ b/src/Engine/Graphics/slang-compile.cpp @@ -77,7 +77,7 @@ void Seele::beginCompilation(const ShaderCompilationInfo& info, SlangCompileTarg }; sessionDesc.compilerOptionEntries = option.data(); - sessionDesc.compilerOptionEntryCount = option.size(); + sessionDesc.compilerOptionEntryCount = (uint32)option.size(); sessionDesc.defaultMatrixLayoutMode = SLANG_MATRIX_LAYOUT_COLUMN_MAJOR; Array macros; for (const auto& [key, val] : info.defines) { @@ -140,7 +140,7 @@ void Seele::beginCompilation(const ShaderCompilationInfo& info, SlangCompileTarg slang::ProgramLayout* signature = specializedComponent->getLayout(0, diagnostics.writeRef()); CHECK_DIAGNOSTICS(); std::cout << info.name << std::endl; - for (size_t i = 0; i < signature->getParameterCount(); ++i) { + for (uint32 i = 0; i < signature->getParameterCount(); ++i) { auto param = signature->getParameterByIndex(i); layout->addMapping(param->getName(), param->getBindingIndex()); //std::cout << param->getName() << ": " << param->getBindingIndex() << std::endl; diff --git a/src/Engine/Material/Material.cpp b/src/Engine/Material/Material.cpp index 7f58c47..f317628 100644 --- a/src/Engine/Material/Material.cpp +++ b/src/Engine/Material/Material.cpp @@ -99,21 +99,21 @@ void Material::updateFloatData(uint32 offset, uint32 numFloats, float* data) { } uint32 Material::addTextures(uint32 numTextures) { - uint32 textureOffset = textures.size(); + uint32 textureOffset = (uint32)textures.size(); textures.resize(textures.size() + numTextures); assert(textures.size() < 512); return textureOffset; } uint32 Material::addSamplers(uint32 numSamplers) { - uint32 samplerOffset = samplers.size(); + uint32 samplerOffset = (uint32)samplers.size(); samplers.resize(samplers.size() + numSamplers); assert(textures.size() < 512); return samplerOffset; } uint32 Material::addFloats(uint32 numFloats) { - uint32 floatOffset = floatData.size(); + uint32 floatOffset = (uint32)floatData.size(); floatData.resize(floatData.size() + numFloats); return floatOffset; } diff --git a/src/Engine/Material/ShaderExpression.cpp b/src/Engine/Material/ShaderExpression.cpp index b626cb4..d2fec09 100644 --- a/src/Engine/Material/ShaderExpression.cpp +++ b/src/Engine/Material/ShaderExpression.cpp @@ -69,7 +69,7 @@ FloatParameter::FloatParameter(std::string name, float data, uint32 index) : Sha FloatParameter::~FloatParameter() {} -void FloatParameter::updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) { +void FloatParameter::updateDescriptorSet(uint32, uint32, uint32 floatOffset) { Material::updateFloatData(floatOffset + index, 1, &data); } @@ -98,7 +98,7 @@ VectorParameter::VectorParameter(std::string name, Vector data, uint32 index) VectorParameter::~VectorParameter() {} -void VectorParameter::updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) { +void VectorParameter::updateDescriptorSet(uint32, uint32, uint32 floatOffset) { Material::updateFloatData(floatOffset + index, 3, (float*) & data); } @@ -125,7 +125,7 @@ TextureParameter::TextureParameter(std::string name, PTextureAsset asset, uint32 TextureParameter::~TextureParameter() {} -void TextureParameter::updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) { +void TextureParameter::updateDescriptorSet(uint32 textureOffset, uint32, uint32) { Material::updateTexture(textureOffset + index, data->getTexture()); } @@ -158,7 +158,7 @@ SamplerParameter::SamplerParameter(std::string name, Gfx::OSampler sampler, uint SamplerParameter::~SamplerParameter() {} -void SamplerParameter::updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) { +void SamplerParameter::updateDescriptorSet(uint32, uint32 samplerOffset, uint32) { Material::updateSampler(samplerOffset + index, data); } @@ -183,9 +183,9 @@ CombinedTextureParameter::CombinedTextureParameter(std::string name, PTextureAss CombinedTextureParameter::~CombinedTextureParameter() {} -void CombinedTextureParameter::updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) { assert(false); } +void CombinedTextureParameter::updateDescriptorSet(uint32 , uint32 , uint32 ) { assert(false); } -std::string CombinedTextureParameter::evaluate(Map& varState) const { return ""; } +std::string CombinedTextureParameter::evaluate(Map&) const { return ""; } void CombinedTextureParameter::save(ArchiveBuffer& buffer) const { ShaderParameter::save(buffer); diff --git a/src/Engine/Physics/BVH.cpp b/src/Engine/Physics/BVH.cpp index eca8b9e..37cf414 100644 --- a/src/Engine/Physics/BVH.cpp +++ b/src/Engine/Physics/BVH.cpp @@ -85,7 +85,7 @@ void BVH::reinsertCollider(entt::entity entity, AABB aabb) { void BVH::removeCollider(entt::entity entity) { int32 nodeIndex = -1; - for (size_t i = 0; i < dynamicNodes.size(); i++) { + for (uint32_t i = 0; i < dynamicNodes.size(); i++) { if (dynamicNodes[i].isLeaf && dynamicNodes[i].owner == entity) { nodeIndex = i; break; @@ -275,7 +275,7 @@ int32 BVH::splitNode(Array aabbs) { } struct { bool operator()(const AABBCenter& lhs, const AABBCenter& rhs) { return lhs.center[longestAxis] < rhs.center[longestAxis]; } - int32 longestAxis; + int32 longestAxis = 0; } compare = {longestAxis}; std::sort(aabbs.begin(), aabbs.end(), compare); @@ -291,7 +291,7 @@ int32 BVH::splitNode(Array aabbs) { return rootIndex; } int32 BVH::allocateNode() { - for (size_t i = 0; i < dynamicNodes.size(); i++) { + for (uint32 i = 0; i < dynamicNodes.size(); i++) { if (!dynamicNodes[i].isValid) { return i; } @@ -309,7 +309,7 @@ void BVH::validateBVH() const { if (dynamicRoot != -1) { assert(dynamicNodes[dynamicRoot].parentIndex == -1); } - for (size_t i = 0; i < dynamicNodes.size(); ++i) { + for (uint32 i = 0; i < dynamicNodes.size(); ++i) { int32 nodeIdx = i; size_t counter = dynamicNodes.size(); if (!dynamicNodes[nodeIdx].isValid) diff --git a/src/Engine/Physics/PhysicsSystem.cpp b/src/Engine/Physics/PhysicsSystem.cpp index 538fede..137fbdf 100644 --- a/src/Engine/Physics/PhysicsSystem.cpp +++ b/src/Engine/Physics/PhysicsSystem.cpp @@ -144,7 +144,7 @@ void PhysicsSystem::writeRigidBody(const Body& body) const { } } -Array PhysicsSystem::integratePhysics(const Array& bodies, const float t0, const float tdelta) const { +Array PhysicsSystem::integratePhysics(const Array& bodies, const float, const float) const { Array result; Array buffer; result.resize(bodies.size()); diff --git a/src/Engine/Scene/LightEnvironment.cpp b/src/Engine/Scene/LightEnvironment.cpp index 52409da..854f141 100644 --- a/src/Engine/Scene/LightEnvironment.cpp +++ b/src/Engine/Scene/LightEnvironment.cpp @@ -57,8 +57,8 @@ void LightEnvironment::commit() { Gfx::SE_ACCESS_SHADER_READ_BIT | Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT | Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT); - uint32 numPointLights = points.size(); - uint32 numDirectionalLights = dirs.size(); + uint32 numPointLights = (uint32)points.size(); + uint32 numDirectionalLights = (uint32)dirs.size(); set->updateConstants("numPointLights", 0, &numPointLights); set->updateBuffer("pointLights", 0, pointLights); set->updateConstants("numDirectionalLights", 0, &numDirectionalLights); diff --git a/src/Engine/Scene/Scene.cpp b/src/Engine/Scene/Scene.cpp index c7ae0ee..9fe59be 100644 --- a/src/Engine/Scene/Scene.cpp +++ b/src/Engine/Scene/Scene.cpp @@ -17,12 +17,6 @@ Scene::Scene(Gfx::PGraphics graphics) : graphics(graphics), lightEnv(new LightEn Scene::~Scene() {} -void Scene::bakeLighting() { - const auto& matData = StaticMeshVertexData::getInstance()->getMaterialData(); - for (const auto& mat : matData) - { - - } -} +void Scene::bakeLighting() {} void Scene::update(float deltaTime) { physics.update(deltaTime); } diff --git a/src/Engine/System/MeshUpdater.cpp b/src/Engine/System/MeshUpdater.cpp index 5940733..748fea0 100644 --- a/src/Engine/System/MeshUpdater.cpp +++ b/src/Engine/System/MeshUpdater.cpp @@ -9,7 +9,7 @@ MeshUpdater::MeshUpdater(PScene scene) : ComponentSystemmeshes.size(); ++i) { comp.meshletOffsets.add(comp.asset->meshes[i]->vertexData->addCullingMapping(comp.asset->meshes[i]->id)); diff --git a/src/Engine/UI/Element.h b/src/Engine/UI/Element.h index bd3922d..6a47bf2 100644 --- a/src/Engine/UI/Element.h +++ b/src/Engine/UI/Element.h @@ -31,10 +31,10 @@ class Element { // calculates the relative positions of the child elements for the applied layout style virtual void layout(UVector2 parentSize) { if (style.maxWidthType == DimensionType::Auto) { - maxDimensions.x = parentSize.x; + maxDimensions.x = (float)parentSize.x; } if (style.maxHeightType == DimensionType::Auto) { - maxDimensions.y = parentSize.y; + maxDimensions.y = (float)parentSize.y; } if (style.widthType == DimensionType::Pixel) { dimensions.x = style.width; @@ -69,7 +69,7 @@ class Element { // create a new line in case the element doesnt fit on the current one anymore, // but keep in current line in case we are still at the start, as a new line wouldnt help here if (cursor.x + child->dimensions.x > maxDimensions.x - child->style.left && cursor.x != 0) { - cursor.x = style.paddingLeft; + cursor.x = (float)style.paddingLeft; cursor.y += lineHeight; lineHeight = 0; } @@ -90,7 +90,7 @@ class Element { if (child->style.position == PositionType::Static || child->style.position == PositionType::Relative) { // create a new line in case we are not already at one if (cursor.x != 0) { - cursor.x = style.paddingLeft; + cursor.x = (float)style.paddingLeft; cursor.y += lineHeight; } child->position.x = cursor.x + child->style.marginLeft; diff --git a/src/Engine/UI/Element/Text.h b/src/Engine/UI/Element/Text.h index f08fb96..6e1d43c 100644 --- a/src/Engine/UI/Element/Text.h +++ b/src/Engine/UI/Element/Text.h @@ -13,7 +13,7 @@ template class Text : public Element { style.outerDisplay = OuterDisplayType::Inline; (classes::apply(style), ...); } - virtual void layout(UVector2 parentSize) override { + virtual void layout(UVector2) override { UVector2 cursor = UVector2(0); dimensions = style.fontFamily->shapeText(text, style.fontSize, glyphRenders); } diff --git a/src/Engine/UI/Style/Class.h b/src/Engine/UI/Style/Class.h index d727fff..23f4129 100644 --- a/src/Engine/UI/Style/Class.h +++ b/src/Engine/UI/Style/Class.h @@ -67,24 +67,24 @@ using BG_Red = BackgroundColorClass; template struct MarginClass { static void apply(UI::Style& s) { - if (ml != -1) + if constexpr (ml != -1) s.marginLeft = ml; - if (mr != -1) + if constexpr (mr != -1) s.marginRight = mr; - if (mt != -1) + if constexpr (mt != -1) s.marginTop = mt; - if (mb != -1) + if constexpr (mb != -1) s.marginBottom = mb; } }; #define DECLARE_MARGIN_CLASSES(x) \ using M_##x = MarginClass; \ - using M_X##x = MarginClass; \ - using M_Y##x = MarginClass<-1u, -1u, x, x>; \ - using M_L##x = MarginClass; \ - using M_R##x = MarginClass<-1u, x, -1u, -1u>; \ - using M_T##x = MarginClass<-1u, -1u, x, -1u>; \ - using M_B##x = MarginClass<-1u, -1u, -1u, x>; + using M_X##x = MarginClass::max(), std::numeric_limits::max()>; \ + using M_Y##x = MarginClass::max(), std::numeric_limits::max(), x, x>; \ + using M_L##x = MarginClass::max(), std::numeric_limits::max(), std::numeric_limits::max()>; \ + using M_R##x = MarginClass::max(), x, std::numeric_limits::max(), std::numeric_limits::max()>; \ + using M_T##x = MarginClass::max(), std::numeric_limits::max(), x, std::numeric_limits::max()>; \ + using M_B##x = MarginClass::max(), std::numeric_limits::max(), std::numeric_limits::max(), x>; DECLARE_MARGIN_CLASSES(0) DECLARE_MARGIN_CLASSES(1) From a91aeab309b9abfccd37b3bbc036c118231e235d Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Tue, 25 Mar 2025 09:17:08 +0100 Subject: [PATCH 02/12] maps dont work --- CMakeLists.txt | 2 +- src/Engine/Asset/AssetRegistry.cpp | 6 ++ src/Engine/Containers/Array.h | 8 +- src/Engine/Containers/MemoryResource.cpp | 29 +++--- src/Engine/Containers/MemoryResource.h | 6 ++ src/Engine/Containers/Tree.h | 106 ++++++++++------------ src/Engine/Graphics/Descriptor.cpp | 4 +- src/Engine/Graphics/Vulkan/Descriptor.cpp | 36 ++++---- tests/Engine/Containers/Array.cpp | 4 +- tests/Engine/Containers/List.cpp | 20 +--- 10 files changed, 103 insertions(+), 118 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b587e18..8cae02e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,7 +140,7 @@ target_compile_options(Engine PUBLIC "$<$:-DENABLE_VALIDATION>") target_compile_options(Engine PUBLIC "$<$:-DSEELE_DEBUG>") add_subdirectory(src/) -#add_subdirectory(tests/) +add_subdirectory(tests/) if(WIN32) add_custom_target(dll_copy ALL diff --git a/src/Engine/Asset/AssetRegistry.cpp b/src/Engine/Asset/AssetRegistry.cpp index 2b563b4..b07d4a0 100644 --- a/src/Engine/Asset/AssetRegistry.cpp +++ b/src/Engine/Asset/AssetRegistry.cpp @@ -7,6 +7,12 @@ #include "MeshAsset.h" #include "SVGAsset.h" #include "TextureAsset.h" +#include "Asset/TextureAsset.h" +#include "Asset/FontAsset.h" +#include "Asset/SVGAsset.h" +#include "Asset/MeshAsset.h" +#include "Asset/MaterialAsset.h" +#include "Asset/MaterialInstanceAsset.h" #include "Window/WindowManager.h" #include #include diff --git a/src/Engine/Containers/Array.h b/src/Engine/Containers/Array.h index c62a4cc..0f2e658 100644 --- a/src/Engine/Containers/Array.h +++ b/src/Engine/Containers/Array.h @@ -88,7 +88,7 @@ template struct Array { _data = allocateArray(DEFAULT_ALLOC_SIZE); assert(_data != nullptr); } - constexpr Array(size_type size, const value_type& value, const allocator_type& alloc = allocator_type()) + constexpr Array(size_type size, const value_type& value, const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) : arraySize(size), allocated(size), allocator(alloc) { _data = allocateArray(size); assert(_data != nullptr); @@ -96,7 +96,7 @@ template struct Array { std::allocator_traits::construct(allocator, &_data[i], value); } } - constexpr explicit Array(size_type size, const allocator_type& alloc = allocator_type()) + constexpr explicit Array(size_type size, const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) : arraySize(size), allocated(size), allocator(alloc) { _data = allocateArray(size); assert(_data != nullptr); @@ -108,14 +108,14 @@ template struct Array { } } } - constexpr Array(std::initializer_list init, const allocator_type& alloc = allocator_type()) + constexpr Array(std::initializer_list init, const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) : arraySize(init.size()), allocated(init.size()), allocator(alloc) { _data = allocateArray(init.size()); assert(_data != nullptr); std::uninitialized_copy(init.begin(), init.end(), begin()); } template Range> - constexpr Array(std::from_range_t, Range&& rg, const allocator_type& alloc = allocator_type()) + constexpr Array(std::from_range_t, Range&& rg, const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) : arraySize(0), allocated(0), allocator(alloc) { if constexpr (std::ranges::sized_range || std::ranges::forward_range) { arraySize = std::ranges::size(rg); diff --git a/src/Engine/Containers/MemoryResource.cpp b/src/Engine/Containers/MemoryResource.cpp index 51d31f4..b549c53 100644 --- a/src/Engine/Containers/MemoryResource.cpp +++ b/src/Engine/Containers/MemoryResource.cpp @@ -4,31 +4,34 @@ using namespace Seele; -std::mutex allocationMutex; -std::map allocationCounters; -std::mutex resourcesMutex; -std::map debugResources; std::atomic_uint64_t& MemoryManager::getAllocationCounter(const std::string& name) { - std::unique_lock l(allocationMutex); - return allocationCounters[name]; + std::unique_lock l(getInstance().allocationMutex); + return getInstance().allocationCounters[name]; } void MemoryManager::printAllocations() { - std::unique_lock l(allocationMutex); - for (const auto& [name, counter] : allocationCounters) { - if (name.empty()) - { + std::unique_lock l(getInstance().allocationMutex); + for (const auto& [name, counter] : getInstance().allocationCounters) { + if (name.empty()) { std::cout << name << ": " << counter << std::endl; - } - else - { + } else { std::cout << name << ": " << counter << std::endl; } } } +MemoryManager& MemoryManager::getInstance() { + static MemoryManager instance; + return instance; +} + debug_resource* debug_resource::get(const std::string& name) { + static std::mutex resourcesMutex; + static std::map debugResources; std::unique_lock l(resourcesMutex); + if (!debugResources.count(name)) { + debugResources.emplace(std::pair(name, debug_resource(name))); + } return &debugResources[name]; } \ No newline at end of file diff --git a/src/Engine/Containers/MemoryResource.h b/src/Engine/Containers/MemoryResource.h index 0a58f57..8faeac4 100644 --- a/src/Engine/Containers/MemoryResource.h +++ b/src/Engine/Containers/MemoryResource.h @@ -1,5 +1,6 @@ #pragma once #include +#include namespace Seele { class MemoryManager { @@ -8,6 +9,9 @@ class MemoryManager { static void printAllocations(); private: + static MemoryManager& getInstance(); + std::mutex allocationMutex; + std::map allocationCounters; }; class debug_resource : public std::pmr::memory_resource { @@ -17,7 +21,9 @@ class debug_resource : public std::pmr::memory_resource { debug_resource(std::string name, std::pmr::memory_resource* up = std::pmr::get_default_resource()) : name(name), upstream(up), counter(MemoryManager::getAllocationCounter(name)) {} debug_resource(const debug_resource& other) = delete; + debug_resource(debug_resource&& other) = default; debug_resource& operator=(const debug_resource& other) = delete; + debug_resource& operator=(debug_resource&& other) = default; void* do_allocate(size_t bytes, size_t alignment) override { counter += bytes; diff --git a/src/Engine/Containers/Tree.h b/src/Engine/Containers/Tree.h index bc099bb..b094948 100644 --- a/src/Engine/Containers/Tree.h +++ b/src/Engine/Containers/Tree.h @@ -1,23 +1,17 @@ #pragma once #include "Array.h" +#include "List.h" #include "Pair.h" -#include -#include -#include namespace Seele { template struct Tree { protected: struct Node { - Node(const NodeData& data) - : data(data) - {} - Node(NodeData&& data) - : data(std::move(data)) {} + Node(const NodeData& data) : data(data) {} + Node(NodeData&& data) : data(std::move(data)) {} - Node* parent = nullptr; - Node* leftChild; - Node* rightChild; + Node* leftChild = nullptr; + Node* rightChild = nullptr; NodeData data; }; using NodeAlloc = std::allocator_traits::template rebind_alloc; @@ -41,7 +35,7 @@ template && traversal) : node(x), traversal(std::move(traversal)) {} constexpr ConstIterator(const ConstIterator& i) = default; constexpr ConstIterator(ConstIterator&& i) noexcept = default; constexpr ConstIterator& operator=(const ConstIterator& other) = default; @@ -52,22 +46,30 @@ template (const ConstIterator& other) { return node <=> other.node; } constexpr ConstIterator& operator++() noexcept { - node = node->rightChild; - while (node != nullptr && node->leftChild != nullptr) { - node = node->leftChild; + // walk up tree until we can go a single step to the right + while (traversal.size() > 0 && node->rightChild == nullptr) { + node = traversal.back(); + traversal.popBack(); } - if (node == nullptr && node->parent != nullptr) { - node = node->parent; + // if there is a right subtree we havent visited yet + if (node->rightChild != nullptr) { + // go that single step + node = node->rightChild; + // then to the leftmost node of that right subtree + while (node->leftChild != nullptr) { + node = node->leftChild; + } } return *this; } constexpr ConstIterator& operator--() { - node = node->leftChild; - while (node != nullptr && node->rightChild != nullptr) { - node = node->rightchild; + while (node->leftChild == nullptr) { + node = traversal.back(); + traversal.popBack(); } - if (node == nullptr && node->parent != nullptr) { - node = node->parent; + node = node->leftChild; + while (node->rightChild != nullptr) { + node = node->rightChild; } return *this; } @@ -86,6 +88,7 @@ template traversal; }; class Iterator : public ConstIterator { @@ -95,7 +98,7 @@ template && traversal) : ConstIterator(x, std::move(traversal)) {} constexpr Iterator(const Iterator& i) = default; constexpr Iterator(Iterator&& i) noexcept = default; constexpr Iterator& operator=(const Iterator& other) = default; @@ -128,25 +131,26 @@ template ; constexpr Tree() noexcept - : alloc(NodeAlloc()), root(nullptr), beginIt(nullptr), endIt(nullptr), iteratorsDirty(true), _size(0), comp(Compare()) {} + : alloc(NodeAlloc()), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(0), comp(Compare()) {} constexpr explicit Tree(const Compare& comp, const Allocator& alloc = Allocator()) noexcept(noexcept(Allocator())) - : alloc(alloc), root(nullptr), beginIt(nullptr), endIt(nullptr), iteratorsDirty(true), _size(0), comp(comp) {} + : alloc(alloc), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(0), comp(comp) {} constexpr explicit Tree(const Allocator& alloc) noexcept(noexcept(Compare())) - : alloc(alloc), root(nullptr), beginIt(nullptr), endIt(nullptr), iteratorsDirty(true), _size(0), comp(Compare()) {} + : alloc(alloc), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(0), comp(Compare()) {} constexpr Tree(std::initializer_list init) - : alloc(NodeAlloc()), root(nullptr), beginIt(nullptr), endIt(nullptr), iteratorsDirty(true), _size(0), comp(Compare()) { + : alloc(NodeAlloc()), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(0), comp(Compare()) { for (const auto& it : init) { insert(it); } } - constexpr Tree(const Tree& other) : alloc(other.alloc), root(nullptr), iteratorsDirty(true), _size(), comp(other.comp) { + constexpr Tree(const Tree& other) + : alloc(other.alloc), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(), comp(other.comp) { for (const auto& elem : other) { insert(elem); } } constexpr Tree(Tree&& other) noexcept - : alloc(std::move(other.alloc)), root(std::move(other.root)), iteratorsDirty(true), _size(std::move(other._size)), - comp(std::move(other.comp)) { + : alloc(std::move(other.alloc)), root(std::move(other.root)), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), + _size(std::move(other._size)), comp(std::move(other.comp)) { other._size = 0; } constexpr ~Tree() noexcept { clear(); } @@ -217,7 +221,7 @@ template data, key)) { return end(); } - return iterator(root); + return iterator(root, {}); } constexpr iterator find(const key_type& key) const { Node* it = root; @@ -231,21 +235,21 @@ template insert(const NodeData& data) { const auto& [r, inserted] = _insert(root, data); root = r; - return Pair(iterator(root), inserted); + return Pair(iterator(root, {}), inserted); } constexpr Pair insert(NodeData&& data) { const auto& [r, inserted] = _insert(root, std::move(data)); root = r; - return Pair(iterator(root), inserted); + return Pair(iterator(root, {}), inserted); } constexpr iterator remove(const key_type& key) { root = _remove(root, key); - return iterator(root); + return iterator(root, {}); } private: @@ -263,21 +267,22 @@ template leftChild; + Node* beginNode = root; + List traversal; + while (beginNode->leftChild != nullptr) { + traversal.add(beginNode); + beginNode = beginNode->leftChild; } - if (begin->parent != nullptr) { - begin = begin->parent; - } - return Iterator(begin); + return Iterator(beginNode, std::move(traversal)); } constexpr Iterator calcEndIterator() const { Node* endNode = root; + List traversal; while (endNode != nullptr) { + traversal.add(endNode); endNode = endNode->rightChild; } - return Iterator(endNode); + return Iterator(endNode, std::move(traversal)); } NodeAlloc alloc; Node* root; @@ -290,17 +295,13 @@ template rightChild; x->rightChild = y->leftChild; - x->rightChild->parent = x; y->leftChild = x; - y->leftChild->parent = y; return y; } Node* rotateRight(Node* x) { Node* y = x->leftChild; x->leftChild = y->rightChild; - x->leftChild->parent = x; y->rightChild = x; - y->rightChild->parent = y; return y; } template Pair _insert(Node* r, NodeDataType&& data) { @@ -321,15 +322,11 @@ template data), keyFun(r->data))) { newNode->rightChild = r; - newNode->rightChild->parent = newNode; newNode->leftChild = r->leftChild; - newNode->leftChild->parent = newNode; r->leftChild = nullptr; } else { newNode->leftChild = r; - newNode->leftChild->parent = newNode; newNode->rightChild = r->rightChild; - newNode->rightChild->parent = newNode; r->rightChild = nullptr; } _size++; @@ -354,7 +351,6 @@ template leftChild, key); r->rightChild = temp->rightChild; - r->rightChild->parent = r; } std::allocator_traits::destroy(alloc, temp); alloc.deallocate(temp, 1); @@ -372,16 +368,13 @@ template leftChild->data))) { r->leftChild->leftChild = _splay(r->leftChild->leftChild, key); - r->leftChild->leftChild->parent = r->leftChild; r = rotateRight(r); } else if (comp(keyFun(r->leftChild->data), key)) { r->leftChild->rightChild = _splay(r->leftChild->rightChild, key); - r->leftChild->rightChild->parent = r->leftChild; if (r->leftChild->rightChild != nullptr) { r->leftChild = rotateLeft(r->leftChild); - r->leftChild->parent = r; } } return (r->leftChild == nullptr) ? r : rotateRight(r); @@ -391,15 +384,12 @@ template rightChild->data))) { r->rightChild->leftChild = _splay(r->rightChild->leftChild, key); - r->rightChild->leftChild->parent = r->rightChild; if (r->rightChild->leftChild != nullptr) { r->rightChild = rotateRight(r->rightChild); - r->rightChild->parent = r; } } else if (comp(keyFun(r->rightChild->data), key)) { r->rightChild->rightChild = _splay(r->rightChild->rightChild, key); - r->rightChild->rightChild->parent = r->rightChild; r = rotateLeft(r); } diff --git a/src/Engine/Graphics/Descriptor.cpp b/src/Engine/Graphics/Descriptor.cpp index db557dc..4d81705 100644 --- a/src/Engine/Graphics/Descriptor.cpp +++ b/src/Engine/Graphics/Descriptor.cpp @@ -38,6 +38,4 @@ void PipelineLayout::addDescriptorLayout(PDescriptorLayout layout) { descriptorS void PipelineLayout::addPushConstants(const SePushConstantRange& pushConstant) { pushConstants.add(pushConstant); } -void PipelineLayout::addMapping(std::string name, uint32 index) { - parameterMapping[name] = index; -} +void PipelineLayout::addMapping(std::string mappingName, uint32 index) { parameterMapping[mappingName] = index; } diff --git a/src/Engine/Graphics/Vulkan/Descriptor.cpp b/src/Engine/Graphics/Vulkan/Descriptor.cpp index 40d209e..386cc6f 100644 --- a/src/Engine/Graphics/Vulkan/Descriptor.cpp +++ b/src/Engine/Graphics/Vulkan/Descriptor.cpp @@ -199,14 +199,14 @@ DescriptorSet::DescriptorSet(PGraphics graphics, PDescriptorPool owner) DescriptorSet::~DescriptorSet() {} -void DescriptorSet::updateConstants(const std::string& name, uint32 offset, void* data) { - std::memcpy(constantData.data() + owner->getLayout()->mappings[name].constantOffset, (char*)data + offset, +void DescriptorSet::updateConstants(const std::string& mappingName, uint32 offset, void* data) { + std::memcpy(constantData.data() + owner->getLayout()->mappings[mappingName].constantOffset, (char*)data + offset, owner->getLayout()->mappings[name].constantSize); } -void DescriptorSet::updateBuffer(const std::string& name, uint32 index, Gfx::PShaderBuffer shaderBuffer) { +void DescriptorSet::updateBuffer(const std::string& mappingName, uint32 index, Gfx::PShaderBuffer shaderBuffer) { PShaderBuffer vulkanBuffer = shaderBuffer.cast(); - const auto& map = owner->getLayout()->mappings[name]; + const auto& map = owner->getLayout()->mappings[mappingName]; uint32 binding = map.binding; if (boundResources[binding][index] == vulkanBuffer->getAlloc() || vulkanBuffer->getAlloc() == nullptr) { return; @@ -230,9 +230,9 @@ void DescriptorSet::updateBuffer(const std::string& name, uint32 index, Gfx::PSh boundResources[binding][index] = vulkanBuffer->getAlloc(); } -void DescriptorSet::updateBuffer(const std::string& name, uint32 index, Gfx::PVertexBuffer indexBuffer) { +void DescriptorSet::updateBuffer(const std::string& mappingName, uint32 index, Gfx::PVertexBuffer indexBuffer) { PVertexBuffer vulkanBuffer = indexBuffer.cast(); - const auto& map = owner->getLayout()->mappings[name]; + const auto& map = owner->getLayout()->mappings[mappingName]; uint32 binding = map.binding; if (boundResources[binding][index] == vulkanBuffer->getAlloc() || vulkanBuffer->getAlloc() == nullptr) { return; @@ -257,9 +257,9 @@ void DescriptorSet::updateBuffer(const std::string& name, uint32 index, Gfx::PVe boundResources[binding][index] = vulkanBuffer->getAlloc(); } -void DescriptorSet::updateBuffer(const std::string& name, uint32 index, Gfx::PIndexBuffer indexBuffer) { +void DescriptorSet::updateBuffer(const std::string& mappingName, uint32 index, Gfx::PIndexBuffer indexBuffer) { PIndexBuffer vulkanBuffer = indexBuffer.cast(); - const auto& map = owner->getLayout()->mappings[name]; + const auto& map = owner->getLayout()->mappings[mappingName]; uint32 binding = map.binding; if (boundResources[binding][index] == vulkanBuffer->getAlloc() || vulkanBuffer->getAlloc() == nullptr) { return; @@ -284,9 +284,9 @@ void DescriptorSet::updateBuffer(const std::string& name, uint32 index, Gfx::PIn boundResources[binding][index] = vulkanBuffer->getAlloc(); } -void DescriptorSet::updateSampler(const std::string& name, uint32 index, Gfx::PSampler samplerState) { +void DescriptorSet::updateSampler(const std::string& mappingName, uint32 index, Gfx::PSampler samplerState) { PSampler vulkanSampler = samplerState.cast(); - const auto& map = owner->getLayout()->mappings[name]; + const auto& map = owner->getLayout()->mappings[mappingName]; uint32 binding = map.binding; if (boundResources[binding][index] == vulkanSampler->getHandle()) { return; @@ -312,9 +312,9 @@ void DescriptorSet::updateSampler(const std::string& name, uint32 index, Gfx::PS boundResources[binding][index] = vulkanSampler->getHandle(); } -void DescriptorSet::updateTexture(const std::string& name, uint32 index, Gfx::PTexture2D texture) { +void DescriptorSet::updateTexture(const std::string& mappingName, uint32 index, Gfx::PTexture2D texture) { TextureBase* vulkanTexture = texture.cast().getHandle(); - const auto& map = owner->getLayout()->mappings[name]; + const auto& map = owner->getLayout()->mappings[mappingName]; uint32 binding = map.binding; if (boundResources[binding][index] == vulkanTexture->getHandle()) { return; @@ -340,9 +340,9 @@ void DescriptorSet::updateTexture(const std::string& name, uint32 index, Gfx::PT boundResources[binding][index] = vulkanTexture->getHandle(); } -void DescriptorSet::updateTexture(const std::string& name, uint32 index, Gfx::PTexture3D texture) { +void DescriptorSet::updateTexture(const std::string& mappingName, uint32 index, Gfx::PTexture3D texture) { TextureBase* vulkanTexture = texture.cast().getHandle(); - const auto& map = owner->getLayout()->mappings[name]; + const auto& map = owner->getLayout()->mappings[mappingName]; uint32 binding = map.binding; if (boundResources[binding][index] == vulkanTexture->getHandle()) { return; @@ -368,9 +368,9 @@ void DescriptorSet::updateTexture(const std::string& name, uint32 index, Gfx::PT boundResources[binding][index] = vulkanTexture->getHandle(); } -void DescriptorSet::updateTexture(const std::string& name, uint32 index, Gfx::PTextureCube texture) { +void DescriptorSet::updateTexture(const std::string& mappingName, uint32 index, Gfx::PTextureCube texture) { TextureBase* vulkanTexture = texture.cast().getHandle(); - const auto& map = owner->getLayout()->mappings[name]; + const auto& map = owner->getLayout()->mappings[mappingName]; uint32 binding = map.binding; if (boundResources[binding][index] == vulkanTexture->getHandle()) { return; @@ -396,9 +396,9 @@ void DescriptorSet::updateTexture(const std::string& name, uint32 index, Gfx::PT boundResources[binding][index] = vulkanTexture->getHandle(); } -void DescriptorSet::updateAccelerationStructure(const std::string& name, uint32 index, Gfx::PTopLevelAS as) { +void DescriptorSet::updateAccelerationStructure(const std::string& mappingName, uint32 index, Gfx::PTopLevelAS as) { auto tlas = as.cast(); - uint32 binding = owner->getLayout()->mappings[name].binding; + uint32 binding = owner->getLayout()->mappings[mappingName].binding; accelerationInfos.add(VkWriteDescriptorSetAccelerationStructureKHR{ .sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR, .pNext = nullptr, diff --git a/tests/Engine/Containers/Array.cpp b/tests/Engine/Containers/Array.cpp index 9512bcf..2e78b80 100644 --- a/tests/Engine/Containers/Array.cpp +++ b/tests/Engine/Containers/Array.cpp @@ -88,7 +88,7 @@ TEST(ArraySuite, remove_iterator) array.add(3); array.add(4); array.add(5); - array.remove(array.find(1), false); + array.erase(array.find(1), false); ASSERT_EQ(array[0], 5); ASSERT_EQ(array[1], 2); ASSERT_EQ(array[2], 3); @@ -104,7 +104,7 @@ TEST(ArraySuite, remove_iterator_keep_order) array.add(3); array.add(4); array.add(5); - array.remove(array.find(1)); + array.erase(array.find(1)); ASSERT_EQ(array[0], 2); ASSERT_EQ(array[1], 3); ASSERT_EQ(array[2], 4); diff --git a/tests/Engine/Containers/List.cpp b/tests/Engine/Containers/List.cpp index 2d17c4d..ad6f80c 100644 --- a/tests/Engine/Containers/List.cpp +++ b/tests/Engine/Containers/List.cpp @@ -35,22 +35,4 @@ TEST(ListSuite, basic_remove) it = list.remove(it); ASSERT_EQ(*it, 4); ASSERT_EQ(list.size(), 2); -} - -TEST(ListSuite, list_join) -{ - List list1; - List list2; - list1.add(2); - list1.add(1); - list1.add(3); - list1.add(4); - list2.add(5); - list2.add(7); - list2.add(8); - list2.add(6); - list2.add(9); - list1.moveElements(std::move(list2)); - ASSERT_EQ(list1.size(), 9); - ASSERT_EQ(list2.size(), 0); -} +} \ No newline at end of file From edfe34a39413ce57286c82c902a62d5ddd1d6840 Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Tue, 25 Mar 2025 18:10:32 +0100 Subject: [PATCH 03/12] maps work again --- src/Engine/Containers/Tree.h | 241 ++++++++++------------ src/Engine/Graphics/Vulkan/Buffer.cpp | 2 +- src/Engine/Graphics/Vulkan/Descriptor.cpp | 7 +- 3 files changed, 113 insertions(+), 137 deletions(-) diff --git a/src/Engine/Containers/Tree.h b/src/Engine/Containers/Tree.h index b094948..e6a83b6 100644 --- a/src/Engine/Containers/Tree.h +++ b/src/Engine/Containers/Tree.h @@ -7,16 +7,88 @@ namespace Seele { template struct Tree { protected: struct Node { - Node(const NodeData& data) : data(data) {} - Node(NodeData&& data) : data(std::move(data)) {} - - Node* leftChild = nullptr; - Node* rightChild = nullptr; + Node(Node* left, Node* right, const NodeData& nodeData) : leftChild(left), rightChild(right), data(nodeData) {} + Node(Node* left, Node* right, NodeData&& nodeData) : leftChild(left), rightChild(right), data(std::move(nodeData)) {} + Node* leftChild; + Node* rightChild; NodeData data; }; using NodeAlloc = std::allocator_traits::template rebind_alloc; public: + template class IteratorBase { + public: + using iterator_category = std::bidirectional_iterator_tag; + using value_type = IterType; + using difference_type = std::ptrdiff_t; + using reference = IterType&; + using pointer = IterType*; + + constexpr IteratorBase(Node* x = nullptr, Array&& beginIt = Array()) : node(x), traversal(std::move(beginIt)) {} + constexpr IteratorBase(const IteratorBase& i) : node(i.node), traversal(i.traversal) {} + constexpr IteratorBase(IteratorBase&& i) noexcept : node(std::move(i.node)), traversal(std::move(i.traversal)) {} + constexpr IteratorBase& operator=(const IteratorBase& other) { + if (this != &other) { + node = other.node; + traversal = other.traversal; + } + return *this; + } + constexpr IteratorBase& operator=(IteratorBase&& other) noexcept { + if (this != &other) { + node = std::move(other.node); + traversal = std::move(other.traversal); + } + return *this; + } + constexpr reference operator*() const { return node->data; } + constexpr pointer operator->() const { return &(node->data); } + constexpr bool operator!=(const IteratorBase& other) { return node != other.node; } + constexpr bool operator==(const IteratorBase& other) { return node == other.node; } + constexpr std::strong_ordering operator<=>(const IteratorBase& other) { return node <=> other.node; } + constexpr IteratorBase& operator++() { + node = node->rightChild; + while (node != nullptr && node->leftChild != nullptr) { + traversal.add(node); + node = node->leftChild; + } + if (node == nullptr && traversal.size() > 0) { + node = traversal.back(); + traversal.pop(); + } + return *this; + } + constexpr IteratorBase& operator--() { + node = node->leftChild; + while (node != nullptr && node->rightChild != nullptr) { + traversal.add(node); + node = node->rightchild; + } + if (node == nullptr && traversal.size() > 0) { + node = traversal.back(); + traversal.pop(); + } + return *this; + } + constexpr IteratorBase operator--(int) { + IteratorBase tmp(*this); + --*this; + return tmp; + } + constexpr IteratorBase operator++(int) { + IteratorBase tmp(*this); + ++*this; + return tmp; + } + Node* getNode() { return node; } + + private: + Node* node; + Array traversal; + }; + using Iterator = IteratorBase; + using ConstIterator = IteratorBase; + using key_type = KeyType; using value_type = NodeData; using allocator_type = Allocator; @@ -27,130 +99,31 @@ template ::pointer; using const_pointer = std::allocator_traits::const_pointer; - class ConstIterator { - public: - using iterator_category = std::bidirectional_iterator_tag; - using value_type = value_type; - using difference_type = difference_type; - using pointer = const_pointer; - using reference = const value_type&; - - constexpr ConstIterator(Node* x, List&& traversal) : node(x), traversal(std::move(traversal)) {} - constexpr ConstIterator(const ConstIterator& i) = default; - constexpr ConstIterator(ConstIterator&& i) noexcept = default; - constexpr ConstIterator& operator=(const ConstIterator& other) = default; - constexpr ConstIterator& operator=(ConstIterator&& other) noexcept = default; - constexpr reference operator*() const noexcept { return node->data; } - constexpr pointer operator->() const noexcept { return std::pointer_traits::pointer_to(**this); } - constexpr bool operator==(const ConstIterator& other) { return node == other.node; } - constexpr bool operator!=(const ConstIterator& other) { return node != other.node; } - constexpr std::strong_ordering operator<=>(const ConstIterator& other) { return node <=> other.node; } - constexpr ConstIterator& operator++() noexcept { - // walk up tree until we can go a single step to the right - while (traversal.size() > 0 && node->rightChild == nullptr) { - node = traversal.back(); - traversal.popBack(); - } - // if there is a right subtree we havent visited yet - if (node->rightChild != nullptr) { - // go that single step - node = node->rightChild; - // then to the leftmost node of that right subtree - while (node->leftChild != nullptr) { - node = node->leftChild; - } - } - return *this; - } - constexpr ConstIterator& operator--() { - while (node->leftChild == nullptr) { - node = traversal.back(); - traversal.popBack(); - } - node = node->leftChild; - while (node->rightChild != nullptr) { - node = node->rightChild; - } - return *this; - } - constexpr ConstIterator operator--(int) { - ConstIterator tmp(*this); - --*this; - return tmp; - } - constexpr ConstIterator operator++(int) { - ConstIterator tmp(*this); - ++*this; - return tmp; - } - - Node* getNode() { return node; } - - protected: - Node* node; - List traversal; - }; - - class Iterator : public ConstIterator { - public: - using value_type = value_type; - using difference_type = difference_type; - using pointer = pointer; - using reference = value_type&; - - constexpr Iterator(Node* x, List&& traversal) : ConstIterator(x, std::move(traversal)) {} - constexpr Iterator(const Iterator& i) = default; - constexpr Iterator(Iterator&& i) noexcept = default; - constexpr Iterator& operator=(const Iterator& other) = default; - constexpr Iterator& operator=(Iterator&& other) noexcept = default; - constexpr reference operator*() const noexcept { return const_cast(ConstIterator::operator*()); } - constexpr pointer operator->() const noexcept { return std::pointer_traits::pointer_to(**this); } - constexpr Iterator& operator++() noexcept { - ConstIterator::operator++(); - return *this; - } - constexpr Iterator& operator--() noexcept { - ConstIterator::operator--(); - return *this; - } - constexpr Iterator& operator++(int) noexcept { - Iterator tmp = *this; - ConstIterator::operator++(); - return tmp; - } - constexpr Iterator& operator--(int) noexcept { - Iterator tmp = *this; - ConstIterator::operator--(); - return tmp; - } - }; - using iterator = Iterator; using const_iterator = ConstIterator; using reverse_iterator = std::reverse_iterator; using const_reverse_iterator = std::reverse_iterator; constexpr Tree() noexcept - : alloc(NodeAlloc()), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(0), comp(Compare()) {} + : alloc(NodeAlloc()), root(nullptr), beginIt(nullptr), endIt(nullptr), iteratorsDirty(true), _size(0), comp(Compare()) {} constexpr explicit Tree(const Compare& comp, const Allocator& alloc = Allocator()) noexcept(noexcept(Allocator())) - : alloc(alloc), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(0), comp(comp) {} + : alloc(alloc), root(nullptr), beginIt(nullptr), endIt(nullptr), iteratorsDirty(true), _size(0), comp(comp) {} constexpr explicit Tree(const Allocator& alloc) noexcept(noexcept(Compare())) - : alloc(alloc), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(0), comp(Compare()) {} + : alloc(alloc), root(nullptr), beginIt(nullptr), endIt(nullptr), iteratorsDirty(true), _size(0), comp(Compare()) {} constexpr Tree(std::initializer_list init) - : alloc(NodeAlloc()), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(0), comp(Compare()) { + : alloc(NodeAlloc()), root(nullptr), beginIt(nullptr), endIt(nullptr), iteratorsDirty(true), _size(0), comp(Compare()) { for (const auto& it : init) { insert(it); } } - constexpr Tree(const Tree& other) - : alloc(other.alloc), root(nullptr), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), _size(), comp(other.comp) { + constexpr Tree(const Tree& other) : alloc(other.alloc), root(nullptr), iteratorsDirty(true), _size(), comp(other.comp) { for (const auto& elem : other) { insert(elem); } } constexpr Tree(Tree&& other) noexcept - : alloc(std::move(other.alloc)), root(std::move(other.root)), beginIt(nullptr, {}), endIt(nullptr, {}), iteratorsDirty(true), - _size(std::move(other._size)), comp(std::move(other.comp)) { + : alloc(std::move(other.alloc)), root(std::move(other.root)), iteratorsDirty(true), _size(std::move(other._size)), + comp(std::move(other.comp)) { other._size = 0; } constexpr ~Tree() noexcept { clear(); } @@ -221,7 +194,7 @@ template data, key)) { return end(); } - return iterator(root, {}); + return iterator(root); } constexpr iterator find(const key_type& key) const { Node* it = root; @@ -235,21 +208,21 @@ template insert(const NodeData& data) { - const auto& [r, inserted] = _insert(root, data); + auto [r, inserted] = _insert(root, data); root = r; - return Pair(iterator(root, {}), inserted); + return Pair(iterator(root), inserted); } constexpr Pair insert(NodeData&& data) { - const auto& [r, inserted] = _insert(root, std::move(data)); + auto [r, inserted] = _insert(root, std::move(data)); root = r; - return Pair(iterator(root, {}), inserted); + return Pair(iterator(root), inserted); } constexpr iterator remove(const key_type& key) { root = _remove(root, key); - return iterator(root, {}); + return iterator(root); } private: @@ -267,22 +240,26 @@ template traversal; - while (beginNode->leftChild != nullptr) { - traversal.add(beginNode); - beginNode = beginNode->leftChild; + Node* begin = root; + Array beginTraversal; + while (begin != nullptr) { + beginTraversal.add(begin); + begin = begin->leftChild; } - return Iterator(beginNode, std::move(traversal)); + if (!beginTraversal.empty()) { + begin = beginTraversal.back(); + beginTraversal.pop(); + } + return Iterator(begin, std::move(beginTraversal)); } constexpr Iterator calcEndIterator() const { - Node* endNode = root; - List traversal; - while (endNode != nullptr) { - traversal.add(endNode); - endNode = endNode->rightChild; + Node* endIndex = root; + Array endTraversal; + while (endIndex != nullptr) { + endTraversal.add(endIndex); + endIndex = endIndex->rightChild; } - return Iterator(endNode, std::move(traversal)); + return Iterator(endIndex, std::move(endTraversal)); } NodeAlloc alloc; Node* root; @@ -308,7 +285,7 @@ template ::construct(alloc, root, std::forward(data)); + std::allocator_traits::construct(alloc, root, nullptr, nullptr, std::forward(data)); _size++; return Pair(root, true); } @@ -318,7 +295,7 @@ template (r, false); Node* newNode = alloc.allocate(1); - std::allocator_traits::construct(alloc, newNode, std::forward(data)); + std::allocator_traits::construct(alloc, newNode, nullptr, nullptr, std::forward(data)); if (comp(keyFun(newNode->data), keyFun(r->data))) { newNode->rightChild = r; diff --git a/src/Engine/Graphics/Vulkan/Buffer.cpp b/src/Engine/Graphics/Vulkan/Buffer.cpp index 44c3509..c938c5c 100644 --- a/src/Engine/Graphics/Vulkan/Buffer.cpp +++ b/src/Engine/Graphics/Vulkan/Buffer.cpp @@ -102,7 +102,7 @@ void BufferAllocation::updateContents(uint64 regionOffset, uint64 regionSize, vo .flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_MAPPED_BIT, .usage = VMA_MEMORY_USAGE_AUTO, }; - OBufferAllocation staging = new BufferAllocation(graphics, "UpdateStaging", stagingInfo, stagingAlloc, Gfx::QueueType::GRAPHICS); + OBufferAllocation staging = new BufferAllocation(graphics, fmt::format("{0}UpdateStaging", name), stagingInfo, stagingAlloc, Gfx::QueueType::GRAPHICS); uint8* data; VK_CHECK(vmaMapMemory(graphics->getAllocator(), staging->allocation, (void**)&data)); diff --git a/src/Engine/Graphics/Vulkan/Descriptor.cpp b/src/Engine/Graphics/Vulkan/Descriptor.cpp index 386cc6f..2d20d37 100644 --- a/src/Engine/Graphics/Vulkan/Descriptor.cpp +++ b/src/Engine/Graphics/Vulkan/Descriptor.cpp @@ -201,7 +201,7 @@ DescriptorSet::~DescriptorSet() {} void DescriptorSet::updateConstants(const std::string& mappingName, uint32 offset, void* data) { std::memcpy(constantData.data() + owner->getLayout()->mappings[mappingName].constantOffset, (char*)data + offset, - owner->getLayout()->mappings[name].constantSize); + owner->getLayout()->mappings[mappingName].constantSize); } void DescriptorSet::updateBuffer(const std::string& mappingName, uint32 index, Gfx::PShaderBuffer shaderBuffer) { @@ -418,8 +418,7 @@ void DescriptorSet::updateAccelerationStructure(const std::string& mappingName, void DescriptorSet::writeChanges() { if (constantData.size() > 0) { - if (constantsBuffer != nullptr) - { + if (constantsBuffer != nullptr) { graphics->getDestructionManager()->queueResourceForDestruction(std::move(constantsBuffer)); } constantsBuffer = new BufferAllocation(graphics, owner->getLayout()->getName(), @@ -452,7 +451,7 @@ void DescriptorSet::writeChanges() { .pBufferInfo = &bufferInfos.back(), }); } - + if (writeDescriptors.size() > 0) { if (isCurrentlyBound()) { std::cout << "Descriptor currently bound, allocate a new one instead" << std::endl; From 9cce5977c5cb20dd19d2d80262d19b63b06e07da Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Wed, 26 Mar 2025 13:38:48 +0100 Subject: [PATCH 04/12] fixing lots of warnings --- src/AssetViewer/main.cpp | 10 +- src/Benchmark/PlayView.cpp | 5 +- src/Editor/Asset/MeshLoader.cpp | 24 +-- src/Editor/Window/ViewportControl.cpp | 2 +- src/Editor/main.cpp | 2 +- src/Engine/Component/KeyboardInput.h | 16 +- src/Engine/Containers/Array.h | 10 +- src/Engine/Containers/MemoryResource.cpp | 9 +- src/Engine/Containers/MemoryResource.h | 13 +- src/Engine/Containers/Tree.h | 148 ++++++++++-------- src/Engine/Graphics/Buffer.h | 6 +- .../Graphics/RenderPass/RayTracingPass.cpp | 10 +- .../Graphics/RenderPass/ToneMappingPass.cpp | 2 +- .../Graphics/RenderPass/WaterRenderer.cpp | 10 +- .../Graphics/RenderPass/WaterRenderer.h | 4 +- src/Engine/Graphics/StaticMeshVertexData.h | 2 +- src/Engine/Graphics/Vulkan/Buffer.cpp | 12 +- src/Engine/Graphics/Vulkan/Command.h | 17 +- src/Engine/Graphics/Vulkan/Debug.cpp | 4 +- src/Engine/Graphics/Vulkan/Descriptor.cpp | 12 +- src/Engine/Graphics/Vulkan/Descriptor.h | 3 +- src/Engine/Graphics/Vulkan/Graphics.cpp | 4 +- src/Engine/Graphics/Vulkan/PipelineCache.cpp | 30 ++-- src/Engine/Graphics/Vulkan/Query.h | 4 +- src/Engine/Graphics/Vulkan/Resources.cpp | 2 +- src/Engine/Graphics/slang-compile.cpp | 2 +- src/Engine/Math/AABB.h | 4 +- src/Engine/Physics/BVH.cpp | 1 - src/Engine/Physics/BVH.h | 8 +- src/Engine/System/KeyboardInput.cpp | 8 +- src/Engine/System/SystemBase.h | 2 +- src/Engine/Window/GameView.cpp | 1 + tests/Engine/Containers/Map.cpp | 2 +- 33 files changed, 204 insertions(+), 185 deletions(-) diff --git a/src/AssetViewer/main.cpp b/src/AssetViewer/main.cpp index 4cd3ad0..b8d1493 100644 --- a/src/AssetViewer/main.cpp +++ b/src/AssetViewer/main.cpp @@ -74,7 +74,7 @@ int main(int, char**) { uint32 p0 = tris[i].p[0]; uint32 p1 = tris[i].p[1]; uint32 p2 = tris[i].p[2]; - uint32 p3 = positions.size(); + uint32 p3 = (uint32)positions.size(); positions.add(interpolate(positions[p0], positions[p1], positions[p2])); if (mesh->mTextureCoords[0] != nullptr) @@ -102,7 +102,7 @@ int main(int, char**) { //for (uint32 i = 0; i < tris.size(); ++i) { // stats << calcArea(tris[i]) << std::endl; //} - bool tess = false; + //bool tess = false; //while (!tess) { // tess = true; // for (uint32 i = 0; i < tris.size(); ++i) { @@ -143,7 +143,7 @@ int main(int, char**) { mesh->mBitangents = newBit; } - uint32 numFaces = tris.size(); + uint32 numFaces = (uint32)tris.size(); aiFace* newFaces = new aiFace[numFaces]; for (uint32 i = 0; i < numFaces; ++i) { newFaces[i].mNumIndices = 3; @@ -153,10 +153,10 @@ int main(int, char**) { newFaces[i].mIndices[2] = tris[i].p[2]; } - mesh->mNumVertices = positions.size(); + mesh->mNumVertices = (uint32)positions.size(); mesh->mVertices = newPos; mesh->mFaces = newFaces; - mesh->mNumFaces = tris.size(); + mesh->mNumFaces = (uint32)tris.size(); } Assimp::Exporter exporter; diff --git a/src/Benchmark/PlayView.cpp b/src/Benchmark/PlayView.cpp index 3f6cf97..5e7fdfc 100644 --- a/src/Benchmark/PlayView.cpp +++ b/src/Benchmark/PlayView.cpp @@ -28,7 +28,6 @@ PlayView::PlayView(Gfx::PGraphics graphics, PWindow window, const ViewportCreate "VisibilityMS," << std::endl; uint64 start = 0; - uint64 prevBegin = 0; std::this_thread::sleep_for(std::chrono::milliseconds(500)); stats << std::fixed << std::setprecision(0); while (getGlobals().running) { @@ -37,8 +36,8 @@ PlayView::PlayView(Gfx::PGraphics graphics, PWindow window, const ViewportCreate auto baseResults = baseQuery->getResults(); auto lightCullResults = lightCullQuery->getResults(); auto visiblityResults = visibilityQuery->getResults(); - int64 renderBegin = renderTimestamp->getResult().time; - int64 renderEnd = renderTimestamp->getResult().time; + //int64 renderBegin = renderTimestamp->getResult().time; + //int64 renderEnd = renderTimestamp->getResult().time; Map results; for (uint32 i = 0; i < 11; ++i) { auto ts = timestamps->getResult(); diff --git a/src/Editor/Asset/MeshLoader.cpp b/src/Editor/Asset/MeshLoader.cpp index 5063a4b..7bd010b 100644 --- a/src/Editor/Asset/MeshLoader.cpp +++ b/src/Editor/Asset/MeshLoader.cpp @@ -151,7 +151,7 @@ void MeshLoader::loadMaterials(const aiScene* scene, const Array& uint32 uvIndex = 0; aiTextureMapMode mapMode = aiTextureMapMode_Clamp; float blend = std::numeric_limits::max(); - aiTextureOp op; + aiTextureOp op = aiTextureOp_Add; if (material->GetTexture(type, index, &texPath, &mapping, &uvIndex, nullptr, nullptr, nullptr) != AI_SUCCESS) { std::cout << "fuck" << std::endl; } @@ -488,23 +488,23 @@ Vector4 MeshLoader::encodeQTangent(Matrix3 m) { Vector4 r; if (t > 2.9999999) { r = Vector4(0.0, 0.0, 0.0, 1.0); - } else if (t > 0.0000001) { - float s = sqrt(1.0 + t) * 2.0; - r = Vector4(Vector(m[1][2] - m[2][1], m[2][0] - m[0][2], m[0][1] - m[1][0]) / s, s * 0.25); + } else if (t > 0.0000001f) { + float s = sqrt(1.0f + t) * 2.0f; + r = Vector4(Vector(m[1][2] - m[2][1], m[2][0] - m[0][2], m[0][1] - m[1][0]) / s, s * 0.25f); } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) { - float s = sqrt(1.0 + (m[0][0] - (m[1][1] + m[2][2]))) * 2.0; + float s = sqrt(1.0f + (m[0][0] - (m[1][1] + m[2][2]))) * 2.0; r = Vector4(s * 0.25, Vector(m[1][0] - m[0][1], m[2][0] - m[0][2], m[0][2] - m[2][1]) / s); } else if (m[1][1] > m[2][2]) { - float s = sqrt(1.0 + (m[1][1] - (m[0][0] + m[2][2]))) * 2.0; - r = Vector4(Vector(m[1][0] + m[0][1], m[2][1] + m[1][2], m[2][0] - m[0][2]) / s, s * 0.25); + float s = sqrt(1.0f + (m[1][1] - (m[0][0] + m[2][2]))) * 2.0f; + r = Vector4(Vector(m[1][0] + m[0][1], m[2][1] + m[1][2], m[2][0] - m[0][2]) / s, s * 0.25f); r = Vector4(r.x, r.w, r.y, r.z); } else { - float s = sqrt(1.0 + (m[2][2] - (m[0][0] + m[1][1]))) * 2.0; - r = Vector4(Vector(m[2][0] + m[0][2], m[2][1] + m[1][2], m[0][1] - m[1][0]) / s, s * 0.25); + float s = sqrt(1.0f + (m[2][2] - (m[0][0] + m[1][1]))) * 2.0f; + r = Vector4(Vector(m[2][0] + m[0][2], m[2][1] + m[1][2], m[0][1] - m[1][0]) / s, s * 0.25f); r = Vector4(r.x, r.y, r.w, r.z); } r = normalize(r); - const float threshold = 1.0 / 32767.0; + const float threshold = 1.0f / 32767.0f; if (r.w <= threshold) { r = Vector4(Vector(r) * (float)sqrt(1.0 - (threshold * threshold)), (r.w > 0.0) ? threshold : -threshold); } @@ -539,9 +539,9 @@ void MeshLoader::loadGlobalMeshes(const aiScene* scene, const Array biTangents(mesh->mNumVertices); Array colors(mesh->mNumVertices); - for (int32 i = 0; i < mesh->mNumVertices; ++i) { + for (uint32 i = 0; i < mesh->mNumVertices; ++i) { positions[i] = Vector(mesh->mVertices[i].x, mesh->mVertices[i].y, mesh->mVertices[i].z); - for (size_t j = 0; j < MAX_TEXCOORDS; ++j) { + for (uint32 j = 0; j < MAX_TEXCOORDS; ++j) { if (mesh->HasTextureCoords(j)) { texCoords[j][i] = U16Vector2(mesh->mTextureCoords[j][i].x * 65535, mesh->mTextureCoords[j][i].y * 65535); } else { diff --git a/src/Editor/Window/ViewportControl.cpp b/src/Editor/Window/ViewportControl.cpp index 1c5b22c..8cf7bbc 100644 --- a/src/Editor/Window/ViewportControl.cpp +++ b/src/Editor/Window/ViewportControl.cpp @@ -13,7 +13,7 @@ ViewportControl::ViewportControl(const URect& viewportDimensions, Vector initial ViewportControl::~ViewportControl() {} -void ViewportControl::update(Component::Camera& camera, float deltaTime) { +void ViewportControl::update(Component::Camera&, float deltaTime) { float cameraMove = deltaTime * 20; if (keys[KeyCode::KEY_LEFT_SHIFT]) { cameraMove *= 4; diff --git a/src/Editor/main.cpp b/src/Editor/main.cpp index 5f0053f..2d3a7a7 100644 --- a/src/Editor/main.cpp +++ b/src/Editor/main.cpp @@ -36,7 +36,7 @@ Array generateEdges() { UVector(13, 10, 14), UVector(10, 11, 14), UVector(14, 11, 15)}; Array edges; for (auto ind : indices) { - uint32 baseIndex = edges.size(); + uint32 baseIndex = (uint32)edges.size(); edges.add(Halfedge{ind.x, baseIndex + 1, baseIndex + 2, UINT32_MAX}); edges.add(Halfedge{ind.y, baseIndex + 2, baseIndex, UINT32_MAX}); edges.add(Halfedge{ind.z, baseIndex, baseIndex + 1, UINT32_MAX}); diff --git a/src/Engine/Component/KeyboardInput.h b/src/Engine/Component/KeyboardInput.h index 9146c08..d11766c 100644 --- a/src/Engine/Component/KeyboardInput.h +++ b/src/Engine/Component/KeyboardInput.h @@ -5,14 +5,14 @@ namespace Seele { namespace Component { struct KeyboardInput { Seele::StaticArray(Seele::KeyCode::KEY_LAST)> keys; - bool mouse1; - bool mouse2; - float mouseX; - float mouseY; - float deltaX; - float deltaY; - float scrollX; - float scrollY; + bool mouse1 = false; + bool mouse2 = false; + float mouseX = 0.0f; + float mouseY = 0.0f; + float deltaX = 0.0f; + float deltaY = 0.0f; + float scrollX = 0.0f; + float scrollY = 0.0f; }; } // namespace Component } // namespace Seele \ No newline at end of file diff --git a/src/Engine/Containers/Array.h b/src/Engine/Containers/Array.h index 0f2e658..be9e799 100644 --- a/src/Engine/Containers/Array.h +++ b/src/Engine/Containers/Array.h @@ -83,12 +83,12 @@ template struct Array { using reverse_iterator = std::reverse_iterator; using const_reverse_iterator = std::reverse_iterator; - constexpr Array(const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) noexcept + constexpr Array(const allocator_type& alloc = allocator_type()) noexcept : arraySize(0), allocated(DEFAULT_ALLOC_SIZE), allocator(alloc) { _data = allocateArray(DEFAULT_ALLOC_SIZE); assert(_data != nullptr); } - constexpr Array(size_type size, const value_type& value, const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) + constexpr Array(size_type size, const value_type& value, const allocator_type& alloc = allocator_type()) : arraySize(size), allocated(size), allocator(alloc) { _data = allocateArray(size); assert(_data != nullptr); @@ -96,7 +96,7 @@ template struct Array { std::allocator_traits::construct(allocator, &_data[i], value); } } - constexpr explicit Array(size_type size, const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) + constexpr explicit Array(size_type size, const allocator_type& alloc = allocator_type()) : arraySize(size), allocated(size), allocator(alloc) { _data = allocateArray(size); assert(_data != nullptr); @@ -108,14 +108,14 @@ template struct Array { } } } - constexpr Array(std::initializer_list init, const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) + constexpr Array(std::initializer_list init, const allocator_type& alloc = allocator_type()) : arraySize(init.size()), allocated(init.size()), allocator(alloc) { _data = allocateArray(init.size()); assert(_data != nullptr); std::uninitialized_copy(init.begin(), init.end(), begin()); } template Range> - constexpr Array(std::from_range_t, Range&& rg, const allocator_type& alloc = allocator_type(debug_resource::get("Array"))) + constexpr Array(std::from_range_t, Range&& rg, const allocator_type& alloc = allocator_type()) : arraySize(0), allocated(0), allocator(alloc) { if constexpr (std::ranges::sized_range || std::ranges::forward_range) { arraySize = std::ranges::size(rg); diff --git a/src/Engine/Containers/MemoryResource.cpp b/src/Engine/Containers/MemoryResource.cpp index b549c53..5fb97fc 100644 --- a/src/Engine/Containers/MemoryResource.cpp +++ b/src/Engine/Containers/MemoryResource.cpp @@ -5,8 +5,11 @@ using namespace Seele; -std::atomic_uint64_t& MemoryManager::getAllocationCounter(const std::string& name) { +RefPtr MemoryManager::getAllocationCounter(const std::string& name) { std::unique_lock l(getInstance().allocationMutex); + if (!getInstance().allocationCounters.contains(name)) { + getInstance().allocationCounters[name] = new uint64(0); + } return getInstance().allocationCounters[name]; } @@ -14,9 +17,9 @@ void MemoryManager::printAllocations() { std::unique_lock l(getInstance().allocationMutex); for (const auto& [name, counter] : getInstance().allocationCounters) { if (name.empty()) { - std::cout << name << ": " << counter << std::endl; + std::cout << name << ": " << **counter << std::endl; } else { - std::cout << name << ": " << counter << std::endl; + std::cout << name << ": " << **counter << std::endl; } } } diff --git a/src/Engine/Containers/MemoryResource.h b/src/Engine/Containers/MemoryResource.h index 8faeac4..5e58fae 100644 --- a/src/Engine/Containers/MemoryResource.h +++ b/src/Engine/Containers/MemoryResource.h @@ -1,17 +1,18 @@ #pragma once #include #include +#include "MinimalEngine.h" namespace Seele { class MemoryManager { public: - static std::atomic_uint64_t& getAllocationCounter(const std::string& name); + static RefPtr getAllocationCounter(const std::string& name); static void printAllocations(); private: static MemoryManager& getInstance(); std::mutex allocationMutex; - std::map allocationCounters; + std::map> allocationCounters; }; class debug_resource : public std::pmr::memory_resource { @@ -26,13 +27,15 @@ class debug_resource : public std::pmr::memory_resource { debug_resource& operator=(debug_resource&& other) = default; void* do_allocate(size_t bytes, size_t alignment) override { - counter += bytes; +// std::cout << name << " + " << bytes << std::endl; + *counter.getHandle() += bytes; return upstream->allocate(bytes, alignment); } void do_deallocate(void* ptr, size_t bytes, size_t alignment) override { upstream->deallocate(ptr, bytes, alignment); - counter -= bytes; +// std::cout << name << " - " << bytes << std::endl; + *counter.getHandle() -= bytes; } bool do_is_equal(const std::pmr::memory_resource& other) const noexcept override { return this == &other; } @@ -40,6 +43,6 @@ class debug_resource : public std::pmr::memory_resource { private: std::string name; std::pmr::memory_resource* upstream; - std::atomic_uint64_t& counter; + RefPtr counter; }; } // namespace Seele \ No newline at end of file diff --git a/src/Engine/Containers/Tree.h b/src/Engine/Containers/Tree.h index e6a83b6..253feb5 100644 --- a/src/Engine/Containers/Tree.h +++ b/src/Engine/Containers/Tree.h @@ -7,11 +7,25 @@ namespace Seele { template struct Tree { protected: struct Node { + Node() {} Node(Node* left, Node* right, const NodeData& nodeData) : leftChild(left), rightChild(right), data(nodeData) {} Node(Node* left, Node* right, NodeData&& nodeData) : leftChild(left), rightChild(right), data(std::move(nodeData)) {} - Node* leftChild; - Node* rightChild; + Node* leftChild = nullptr; + Node* rightChild = nullptr; + Node* parent = nullptr; NodeData data; + void setLeftChild(Node* child) { + leftChild = child; + if (child != nullptr) { + child->parent = this; + } + } + void setRightChild(Node* child) { + rightChild = child; + if (child != nullptr) { + child->parent = this; + } + } }; using NodeAlloc = std::allocator_traits::template rebind_alloc; @@ -24,49 +38,65 @@ template && beginIt = Array()) : node(x), traversal(std::move(beginIt)) {} - constexpr IteratorBase(const IteratorBase& i) : node(i.node), traversal(i.traversal) {} - constexpr IteratorBase(IteratorBase&& i) noexcept : node(std::move(i.node)), traversal(std::move(i.traversal)) {} + constexpr IteratorBase(Node* x = nullptr) : node(x) {} + constexpr IteratorBase(const IteratorBase& i) : node(i.node) {} + constexpr IteratorBase(IteratorBase&& i) noexcept : node(std::move(i.node)) {} constexpr IteratorBase& operator=(const IteratorBase& other) { if (this != &other) { node = other.node; - traversal = other.traversal; } return *this; } constexpr IteratorBase& operator=(IteratorBase&& other) noexcept { if (this != &other) { node = std::move(other.node); - traversal = std::move(other.traversal); } return *this; } constexpr reference operator*() const { return node->data; } - constexpr pointer operator->() const { return &(node->data); } + constexpr pointer operator->() const { return std::pointer_traits::pointer_to(**this); } constexpr bool operator!=(const IteratorBase& other) { return node != other.node; } constexpr bool operator==(const IteratorBase& other) { return node == other.node; } constexpr std::strong_ordering operator<=>(const IteratorBase& other) { return node <=> other.node; } constexpr IteratorBase& operator++() { - node = node->rightChild; - while (node != nullptr && node->leftChild != nullptr) { - traversal.add(node); - node = node->leftChild; - } - if (node == nullptr && traversal.size() > 0) { - node = traversal.back(); - traversal.pop(); + // if current node has no right subtree + if (node->rightChild == nullptr) { + Node* temp = node; + node = node->parent; + // walk up hierarchy until we were the left subtree of any parent + // this means that that parent is the correct next element + while (node->rightChild == temp) { + temp = node; + node = node->parent; + } + } else { + // if there is a right subtree, descend there + node = node->rightChild; + // and find the leftmost node in that tree + while (node->leftChild != nullptr) { + node = node->leftChild; + } } return *this; } constexpr IteratorBase& operator--() { - node = node->leftChild; - while (node != nullptr && node->rightChild != nullptr) { - traversal.add(node); - node = node->rightchild; - } - if (node == nullptr && traversal.size() > 0) { - node = traversal.back(); - traversal.pop(); + // if current node has no left subtree + if (node->leftChild == nullptr) { + Node* temp = node; + node = node->parent; + // walk up hierarchy until we were the right subtree of any parent + // this means that that parent is the correct next element + while (node->leftChild == temp) { + temp = node; + node = node->parent; + } + } else { + // if there is a left subtree, descend there + node = node->leftChild; + // and find the rightmost node in that tree + while (node->rightChild != nullptr) { + node = node->rightChild; + } } return *this; } @@ -80,11 +110,10 @@ template traversal; }; using Iterator = IteratorBase; using ConstIterator = IteratorBase; @@ -122,8 +151,8 @@ template data)); } root = nullptr; + pseudoRoot.setLeftChild(nullptr); markIteratorsDirty(); } constexpr iterator begin() { @@ -191,6 +222,7 @@ template data, key)) { return end(); } @@ -213,15 +245,18 @@ template insert(const NodeData& data) { auto [r, inserted] = _insert(root, data); root = r; + pseudoRoot.setLeftChild(root); return Pair(iterator(root), inserted); } constexpr Pair insert(NodeData&& data) { auto [r, inserted] = _insert(root, std::move(data)); root = r; + pseudoRoot.setLeftChild(root); return Pair(iterator(root), inserted); } constexpr iterator remove(const key_type& key) { root = _remove(root, key); + pseudoRoot.setLeftChild(root); return iterator(root); } @@ -240,29 +275,18 @@ template beginTraversal; - while (begin != nullptr) { - beginTraversal.add(begin); + // start at pseudoroot so that if no regular nodes exist begin == end + Node* begin = const_cast(&pseudoRoot); + while (begin != nullptr && begin->leftChild != nullptr) { begin = begin->leftChild; } - if (!beginTraversal.empty()) { - begin = beginTraversal.back(); - beginTraversal.pop(); - } - return Iterator(begin, std::move(beginTraversal)); - } - constexpr Iterator calcEndIterator() const { - Node* endIndex = root; - Array endTraversal; - while (endIndex != nullptr) { - endTraversal.add(endIndex); - endIndex = endIndex->rightChild; - } - return Iterator(endIndex, std::move(endTraversal)); + return Iterator(begin); } + constexpr Iterator calcEndIterator() const { return Iterator(const_cast(&pseudoRoot)); } NodeAlloc alloc; Node* root; + // where the end iterator points to + Node pseudoRoot; Iterator beginIt; Iterator endIt; bool iteratorsDirty; @@ -271,14 +295,14 @@ template rightChild; - x->rightChild = y->leftChild; - y->leftChild = x; + x->setRightChild(y->leftChild); + y->setLeftChild(x); return y; } Node* rotateRight(Node* x) { Node* y = x->leftChild; - x->leftChild = y->rightChild; - y->rightChild = x; + x->setLeftChild(y->rightChild); + y->setRightChild(x); return y; } template Pair _insert(Node* r, NodeDataType&& data) { @@ -298,13 +322,13 @@ template ::construct(alloc, newNode, nullptr, nullptr, std::forward(data)); if (comp(keyFun(newNode->data), keyFun(r->data))) { - newNode->rightChild = r; - newNode->leftChild = r->leftChild; - r->leftChild = nullptr; + newNode->setRightChild(r); + newNode->setLeftChild(r->leftChild); + r->setLeftChild(nullptr); } else { - newNode->leftChild = r; - newNode->rightChild = r->rightChild; - r->rightChild = nullptr; + newNode->setLeftChild(r); + newNode->setRightChild(r->rightChild); + r->setRightChild(nullptr); } _size++; return Pair(newNode, true); @@ -327,7 +351,7 @@ template leftChild, key); - r->rightChild = temp->rightChild; + r->setRightChild(temp->rightChild); } std::allocator_traits::destroy(alloc, temp); alloc.deallocate(temp, 1); @@ -344,11 +368,11 @@ template leftChild->data))) { - r->leftChild->leftChild = _splay(r->leftChild->leftChild, key); + r->leftChild->setLeftChild(_splay(r->leftChild->leftChild, key)); r = rotateRight(r); } else if (comp(keyFun(r->leftChild->data), key)) { - r->leftChild->rightChild = _splay(r->leftChild->rightChild, key); + r->leftChild->setRightChild(_splay(r->leftChild->rightChild, key)); if (r->leftChild->rightChild != nullptr) { r->leftChild = rotateLeft(r->leftChild); @@ -360,13 +384,13 @@ template rightChild->data))) { - r->rightChild->leftChild = _splay(r->rightChild->leftChild, key); + r->rightChild->setLeftChild(_splay(r->rightChild->leftChild, key)); if (r->rightChild->leftChild != nullptr) { - r->rightChild = rotateRight(r->rightChild); + r->setRightChild(rotateRight(r->rightChild)); } } else if (comp(keyFun(r->rightChild->data), key)) { - r->rightChild->rightChild = _splay(r->rightChild->rightChild, key); + r->rightChild->setRightChild(_splay(r->rightChild->rightChild, key)); r = rotateLeft(r); } diff --git a/src/Engine/Graphics/Buffer.h b/src/Engine/Graphics/Buffer.h index 0daf8ea..9043cc3 100644 --- a/src/Engine/Graphics/Buffer.h +++ b/src/Engine/Graphics/Buffer.h @@ -52,7 +52,7 @@ class IndexBuffer : public Buffer { virtual void executePipelineBarrier(SeAccessFlags srcAccess, SePipelineStageFlags srcStage, SeAccessFlags dstAccess, SePipelineStageFlags dstStage) = 0; Gfx::SeIndexType indexType; - uint64 numIndices; + uint64 numIndices = 0; }; DEFINE_REF(IndexBuffer) @@ -81,7 +81,7 @@ class ShaderBuffer : public Buffer { virtual void updateContents(uint64 offset, uint64 size, void* data) = 0; virtual void* map() = 0; virtual void unmap() = 0; - constexpr uint32 getNumElements() const { return numElements; } + constexpr uint64 getNumElements() const { return numElements; } virtual void clear() = 0; @@ -91,7 +91,7 @@ class ShaderBuffer : public Buffer { virtual void executePipelineBarrier(SeAccessFlags srcAccess, SePipelineStageFlags srcStage, SeAccessFlags dstAccess, SePipelineStageFlags dstStage) = 0; - uint32 numElements; + uint64 numElements; }; DEFINE_REF(ShaderBuffer) } // namespace Gfx diff --git a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp index 8b6bb0a..b81932a 100644 --- a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp +++ b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp @@ -74,6 +74,8 @@ void RayTracingPass::beginFrame(const Component::Camera& cam) { } void RayTracingPass::render() { + texture->changeLayout(Gfx::SE_IMAGE_LAYOUT_GENERAL, Gfx::SE_ACCESS_SHADER_READ_BIT, Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + Gfx::SE_ACCESS_SHADER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR); Array callableGroups; Array accelerationStructures; Array instanceData; @@ -168,15 +170,9 @@ void RayTracingPass::render() { } pass++; std::cout << pass << std::endl; - texture->pipelineBarrier(Gfx::SE_ACCESS_SHADER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, - Gfx::SE_ACCESS_TRANSFER_READ_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT); Array commands; commands.add(std::move(command)); graphics->executeCommands(std::move(commands)); - viewport->getOwner()->getBackBuffer()->changeLayout(Gfx::SE_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, Gfx::SE_ACCESS_NONE, - Gfx::SE_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, - Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT); - graphics->copyTexture(Gfx::PTexture2D(texture), viewport->getOwner()->getBackBuffer()); } void RayTracingPass::endFrame() {} @@ -200,6 +196,8 @@ void RayTracingPass::publishOutputs() { texture->changeLayout(Gfx::SE_IMAGE_LAYOUT_GENERAL, Gfx::SE_ACCESS_NONE, Gfx::SE_PIPELINE_STAGE_TOP_OF_PIPE_BIT, Gfx::SE_ACCESS_SHADER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT | Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR); + resources->registerRenderPassOutput("BASEPASS_COLOR", Gfx::RenderTargetAttachment(texture, Gfx::SE_IMAGE_LAYOUT_UNDEFINED, + Gfx::SE_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)); ShaderCompilationInfo compileInfo = { .name = "RayGenMiss", .modules = {"RayGen", "AnyHit", "Miss"}, diff --git a/src/Engine/Graphics/RenderPass/ToneMappingPass.cpp b/src/Engine/Graphics/RenderPass/ToneMappingPass.cpp index b1808ad..6eb6f34 100644 --- a/src/Engine/Graphics/RenderPass/ToneMappingPass.cpp +++ b/src/Engine/Graphics/RenderPass/ToneMappingPass.cpp @@ -131,7 +131,7 @@ void ToneMappingPass::render() { Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT); histogramLayout->reset(); - Gfx::PDescriptorSet histogramSet = histogramLayout->allocateDescriptorSet(); + histogramSet = histogramLayout->allocateDescriptorSet(); histogramSet->updateConstants("minLogLum", 0, &minLogLum); histogramSet->updateConstants("inverseLogLumRange", 0, &inverseLogLumRange); histogramSet->updateConstants("timeCoeff", 0, &timeCoeff); diff --git a/src/Engine/Graphics/RenderPass/WaterRenderer.cpp b/src/Engine/Graphics/RenderPass/WaterRenderer.cpp index 785b0a2..7468c3d 100644 --- a/src/Engine/Graphics/RenderPass/WaterRenderer.cpp +++ b/src/Engine/Graphics/RenderPass/WaterRenderer.cpp @@ -10,8 +10,8 @@ WaterRenderer::WaterRenderer(Gfx::PGraphics graphics, PScene scene, Gfx::PDescri : graphics(graphics), scene(scene) { skyBox = AssetRegistry::findTexture("", "skyboxsun5deg_tn")->getTexture().cast(); logN = (int)log2(params.N); - threadGroupsX = ceil(params.N / 8.0f); - threadGroupsY = ceil(params.N / 8.0f); + threadGroupsX = (uint32)ceil(params.N / 8.0f); + threadGroupsY = (uint32)ceil(params.N / 8.0f); materialUniforms = graphics->createUniformBuffer(UniformBufferCreateInfo{ .sourceData = @@ -263,7 +263,7 @@ WaterRenderer::WaterRenderer(Gfx::PGraphics graphics, PScene scene, Gfx::PDescri .windSpeed = 2, .windDirection = 22, .fetch = 100000, - .spreadBlend = 0.642, + .spreadBlend = 0.642f, .swell = 1, .peakEnhancement = 1, .shortWavesFade = 0.25f, @@ -523,8 +523,8 @@ void WaterRenderer::updateFFTDescriptor() { spectrumBuffer->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT, Gfx::SE_ACCESS_SHADER_READ_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT); - params.deltaTime = Gfx::getCurrentFrameDelta(); - params.frameTime = Gfx::getCurrentFrameTime(); + params.deltaTime = (float)Gfx::getCurrentFrameDelta(); + params.frameTime = (float)Gfx::getCurrentFrameTime(); paramsBuffer->updateContents(0, sizeof(ComputeParams), ¶ms); paramsBuffer->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT, Gfx::SE_ACCESS_UNIFORM_READ_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT); diff --git a/src/Engine/Graphics/RenderPass/WaterRenderer.h b/src/Engine/Graphics/RenderPass/WaterRenderer.h index 33648fc..b995f4c 100644 --- a/src/Engine/Graphics/RenderPass/WaterRenderer.h +++ b/src/Engine/Graphics/RenderPass/WaterRenderer.h @@ -57,8 +57,8 @@ class WaterRenderer { }; StaticArray displaySpectrums; struct ComputeParams { - float frameTime; - float deltaTime; + float frameTime = 0.0f; + float deltaTime = 0.0f; float gravity = 9.81f; float repeatTime = 200.0f; float depth = 20.0f; diff --git a/src/Engine/Graphics/StaticMeshVertexData.h b/src/Engine/Graphics/StaticMeshVertexData.h index f6e811e..20d3815 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.h +++ b/src/Engine/Graphics/StaticMeshVertexData.h @@ -50,7 +50,7 @@ class StaticMeshVertexData : public VertexData { constexpr static const char* BITANGENTS_NAME = "biTangents"; Gfx::OShaderBuffer colors; constexpr static const char* COLORS_NAME = "colors"; - Array posData{debug_resource::get("VertexPositions")}; + Array posData; Array texData[MAX_TEXCOORDS]; Array norData; Array tanData; diff --git a/src/Engine/Graphics/Vulkan/Buffer.cpp b/src/Engine/Graphics/Vulkan/Buffer.cpp index c938c5c..b71fe8e 100644 --- a/src/Engine/Graphics/Vulkan/Buffer.cpp +++ b/src/Engine/Graphics/Vulkan/Buffer.cpp @@ -111,7 +111,7 @@ void BufferAllocation::updateContents(uint64 regionOffset, uint64 regionSize, vo vmaUnmapMemory(graphics->getAllocator(), staging->allocation); Gfx::QueueType prevOwner = owner; - // transferOwnership(Gfx::QueueType::TRANSFER); + transferOwnership(Gfx::QueueType::TRANSFER); PCommand cmd = graphics->getQueueCommands(Gfx::QueueType::GRAPHICS)->getCommands(); VkBufferCopy copy = { @@ -125,7 +125,7 @@ void BufferAllocation::updateContents(uint64 regionOffset, uint64 regionSize, vo pipelineBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT); - // transferOwnership(prevOwner); + transferOwnership(prevOwner); graphics->getDestructionManager()->queueResourceForDestruction(std::move(staging)); } @@ -147,7 +147,7 @@ void BufferAllocation::readContents(uint64 regionOffset, uint64 regionSize, void OBufferAllocation staging = new BufferAllocation(graphics, "ReadStaging", stagingInfo, stagingAlloc, Gfx::QueueType::GRAPHICS); Gfx::QueueType prevOwner = owner; - // transferOwnership(Gfx::QueueType::TRANSFER); + transferOwnership(Gfx::QueueType::TRANSFER); PCommandPool pool = graphics->getQueueCommands(Gfx::QueueType::TRANSFER); PCommand cmd = pool->getCommands(); @@ -164,7 +164,7 @@ void BufferAllocation::readContents(uint64 regionOffset, uint64 regionSize, void pool->submitCommands(); cmd->getFence()->wait(1000000); - // transferOwnership(prevOwner); + transferOwnership(prevOwner); uint8* data; VK_CHECK(vmaMapMemory(graphics->getAllocator(), staging->allocation, (void**)&data)); @@ -276,11 +276,11 @@ void Buffer::rotateBuffer(uint64 size, bool preserveContents) { return; } buffers.add(nullptr); - createBuffer(size, buffers.size() - 1); + createBuffer(size, (uint32)buffers.size() - 1); if (preserveContents) { copyBuffer(currentBuffer, buffers.size() - 1); } - currentBuffer = buffers.size() - 1; + currentBuffer = (uint32)buffers.size() - 1; } void Buffer::createBuffer(uint64 size, uint32 destIndex) { diff --git a/src/Engine/Graphics/Vulkan/Command.h b/src/Engine/Graphics/Vulkan/Command.h index eaffadf..cf6f8bb 100644 --- a/src/Engine/Graphics/Vulkan/Command.h +++ b/src/Engine/Graphics/Vulkan/Command.h @@ -18,7 +18,6 @@ class Command { Command(PGraphics graphics, PCommandPool pool); ~Command(); constexpr VkCommandBuffer getHandle() { return handle; } - void reset(); void begin(); void end(); void beginRenderPass(PRenderPass renderPass, PFramebuffer framebuffer); @@ -46,8 +45,6 @@ class Command { OFence fence; OSemaphore signalSemaphore; State state; - VkViewport currentViewport; - VkRect2D currentScissor; VkCommandBuffer handle; PRenderPass boundRenderPass; PFramebuffer boundFramebuffer; @@ -91,12 +88,12 @@ class RenderCommand : public Gfx::RenderCommand { virtual void traceRays(uint32 width, uint32 height, uint32 depth) override; private: - PGraphicsPipeline pipeline; - PRayTracingPipeline rtPipeline; - bool ready; + PGraphicsPipeline pipeline = nullptr; + PRayTracingPipeline rtPipeline = nullptr; + bool ready = false; Array boundResources; - VkViewport currentViewport; - VkRect2D currentScissor; + VkViewport currentViewport = VkViewport(); + VkRect2D currentScissor = VkRect2D(); PGraphics graphics; std::thread::id threadId; VkCommandBuffer handle; @@ -123,10 +120,8 @@ class ComputeCommand : public Gfx::ComputeCommand { private: PComputePipeline pipeline; - bool ready; + bool ready = false; Array boundResources; - VkViewport currentViewport; - VkRect2D currentScissor; PGraphics graphics; std::thread::id threadId; VkCommandBuffer handle; diff --git a/src/Engine/Graphics/Vulkan/Debug.cpp b/src/Engine/Graphics/Vulkan/Debug.cpp index 50dc7ec..7af5383 100644 --- a/src/Engine/Graphics/Vulkan/Debug.cpp +++ b/src/Engine/Graphics/Vulkan/Debug.cpp @@ -3,8 +3,8 @@ using namespace Seele::Vulkan; -VkBool32 Seele::Vulkan::debugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData) { +VkBool32 Seele::Vulkan::debugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void*) { std::cerr << pCallbackData->pMessage << std::endl; return VK_FALSE; } diff --git a/src/Engine/Graphics/Vulkan/Descriptor.cpp b/src/Engine/Graphics/Vulkan/Descriptor.cpp index 2d20d37..975c596 100644 --- a/src/Engine/Graphics/Vulkan/Descriptor.cpp +++ b/src/Engine/Graphics/Vulkan/Descriptor.cpp @@ -97,11 +97,11 @@ DescriptorPool::DescriptorPool(PGraphics graphics, PDescriptorLayout layout) perTypeSizes[binding.descriptorType] += 512; } Array poolSizes; - for (const auto [type, num] : perTypeSizes) { - VkDescriptorPoolSize size; - size.descriptorCount = num; - size.type = cast(type); - poolSizes.add(size); + for (const auto& [type, num] : perTypeSizes) { + poolSizes.add(VkDescriptorPoolSize{ + .type = cast(type), + .descriptorCount = num, + }); } VkDescriptorPoolCreateInfo createInfo = { .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, @@ -473,7 +473,7 @@ std::mutex layoutLock; Map cachedLayouts; void PipelineLayout::create() { - for (auto [name, desc] : descriptorSetLayouts) { + for (const auto& [_, desc] : descriptorSetLayouts) { PDescriptorLayout layout = desc.cast(); layout->create(); uint32 parameterIndex = parameterMapping[layout->getName()]; diff --git a/src/Engine/Graphics/Vulkan/Descriptor.h b/src/Engine/Graphics/Vulkan/Descriptor.h index ec23b38..5c8188c 100644 --- a/src/Engine/Graphics/Vulkan/Descriptor.h +++ b/src/Engine/Graphics/Vulkan/Descriptor.h @@ -24,7 +24,7 @@ class DescriptorLayout : public Gfx::DescriptorLayout { private: PGraphics graphics; uint32 constantsSize = 0; - VkShaderStageFlags constantsStages; + VkShaderStageFlags constantsStages = 0; Array bindings; Map mappings; VkDescriptorSetLayout layoutHandle; @@ -74,7 +74,6 @@ class DescriptorSet : public Gfx::DescriptorSet, public CommandBoundResource { private: std::vector constantData; OBufferAllocation constantsBuffer; - VkShaderStageFlags constantsStageFlags; List imageInfos; List bufferInfos; List accelerationInfos; diff --git a/src/Engine/Graphics/Vulkan/Graphics.cpp b/src/Engine/Graphics/Vulkan/Graphics.cpp index 3e66038..9a1de05 100644 --- a/src/Engine/Graphics/Vulkan/Graphics.cpp +++ b/src/Engine/Graphics/Vulkan/Graphics.cpp @@ -968,11 +968,11 @@ void Graphics::createDevice(GraphicsInitializer initializer) { transferQueue = 0; queues.add(new Queue(this, graphicsQueueInfo.familyIndex, graphicsQueueInfo.queueIndex)); if (computeQueueInfo.familyIndex != -1) { - computeQueue = queues.size(); + computeQueue = (uint32)queues.size(); queues.add(new Queue(this, computeQueueInfo.familyIndex, computeQueueInfo.queueIndex)); } if (transferQueueInfo.familyIndex != -1) { - transferQueue = queues.size(); + transferQueue = (uint32)queues.size(); queues.add(new Queue(this, transferQueueInfo.familyIndex, transferQueueInfo.queueIndex)); } diff --git a/src/Engine/Graphics/Vulkan/PipelineCache.cpp b/src/Engine/Graphics/Vulkan/PipelineCache.cpp index d28f484..a2b6c03 100644 --- a/src/Engine/Graphics/Vulkan/PipelineCache.cpp +++ b/src/Engine/Graphics/Vulkan/PipelineCache.cpp @@ -11,23 +11,23 @@ using namespace Seele; using namespace Seele::Vulkan; PipelineCache::PipelineCache(PGraphics graphics, const std::string& cacheFilePath) : graphics(graphics), cacheFile(cacheFilePath) { + Array cacheData; std::ifstream stream(cacheFilePath, std::ios::binary | std::ios::ate); - VkPipelineCacheCreateInfo cacheCreateInfo = { - .sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO, - .pNext = nullptr, - .flags = 0, - .initialDataSize = 0, - }; if (stream.good()) { - Array cacheData; uint32 fileSize = static_cast(stream.tellg()); cacheData.resize(fileSize); stream.seekg(0); stream.read((char*)cacheData.data(), fileSize); - cacheCreateInfo.initialDataSize = fileSize; - cacheCreateInfo.pInitialData = cacheData.data(); std::cout << "Loaded " << fileSize << " bytes from pipeline cache" << std::endl; } + VkPipelineCacheCreateInfo cacheCreateInfo = { + .sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO, + .pNext = nullptr, + .flags = 0, + .initialDataSize = cacheData.size(), + .pInitialData = cacheData.data(), + }; + VK_CHECK(vkCreatePipelineCache(graphics->getDevice(), &cacheCreateInfo, nullptr, &cache)); } @@ -624,7 +624,7 @@ PRayTracingPipeline PipelineCache::createPipeline(Gfx::RayTracingPipelineCreateI const VkBufferUsageFlags sbtBufferUsage = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR | VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT; const VmaMemoryUsage sbtMemoryUsage = VMA_MEMORY_USAGE_AUTO; - + uint64 rayGenStride = align(handleSize + createInfo.rayGenGroup.parameters.size(), handleAlignment); uint64 hitStride = handleSize; for (const auto& h : createInfo.hitGroups) { @@ -685,7 +685,6 @@ PRayTracingPipeline PipelineCache::createPipeline(Gfx::RayTracingPipelineCreateI rayGenBuffer->pipelineBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_SHADER_READ_BIT, VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR); - Array hitSbt(hitStride * createInfo.hitGroups.size()); for (uint64 i = 0; i < createInfo.hitGroups.size(); ++i) { std::memcpy(hitSbt.data() + i * hitStride, sbt.data() + sbtOffset, handleSize); @@ -695,9 +694,8 @@ PRayTracingPipeline PipelineCache::createPipeline(Gfx::RayTracingPipelineCreateI } hitBuffer->updateContents(0, hitSbt.size(), hitSbt.data()); hitBuffer->pipelineBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_SHADER_READ_BIT, - VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR); + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR); - Array missSbt(missStride * createInfo.missGroups.size()); for (uint64 i = 0; i < createInfo.missGroups.size(); ++i) { std::memcpy(missSbt.data() + i * missStride, sbt.data() + sbtOffset, handleSize); @@ -707,11 +705,11 @@ PRayTracingPipeline PipelineCache::createPipeline(Gfx::RayTracingPipelineCreateI } missBuffer->updateContents(0, missSbt.size(), missSbt.data()); missBuffer->pipelineBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_SHADER_READ_BIT, - VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR); + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR); ORayTracingPipeline pipeline = - new RayTracingPipeline(graphics, pipelineHandle, std::move(rayGenBuffer), rayGenStride, std::move(hitBuffer), - hitStride, std::move(missBuffer), missStride, nullptr, 0, createInfo.pipelineLayout); + new RayTracingPipeline(graphics, pipelineHandle, std::move(rayGenBuffer), rayGenStride, std::move(hitBuffer), hitStride, + std::move(missBuffer), missStride, nullptr, 0, createInfo.pipelineLayout); PRayTracingPipeline handle = pipeline; rayTracingPipelines[hash] = std::move(pipeline); return handle; diff --git a/src/Engine/Graphics/Vulkan/Query.h b/src/Engine/Graphics/Vulkan/Query.h index 28158b1..b4122b0 100644 --- a/src/Engine/Graphics/Vulkan/Query.h +++ b/src/Engine/Graphics/Vulkan/Query.h @@ -23,8 +23,8 @@ class QueryPool { std::string name; VkQueryPipelineStatisticFlags flags; // ring buffer - uint64 head = 0; - uint64 tail = 0; + uint32 head = 0; + uint32 tail = 0; uint64 numAvailable; uint32 numQueries; uint32 resultsStride; diff --git a/src/Engine/Graphics/Vulkan/Resources.cpp b/src/Engine/Graphics/Vulkan/Resources.cpp index 7cca67d..1b5e75e 100644 --- a/src/Engine/Graphics/Vulkan/Resources.cpp +++ b/src/Engine/Graphics/Vulkan/Resources.cpp @@ -34,7 +34,7 @@ void Semaphore::rotateSemaphore() { currentHandle = i; return; } - currentHandle = handles.size(); + currentHandle = (uint32)handles.size(); handles.add(new SemaphoreHandle(graphics, "Semaphore")); } diff --git a/src/Engine/Graphics/slang-compile.cpp b/src/Engine/Graphics/slang-compile.cpp index c8f7037..06d23f2 100644 --- a/src/Engine/Graphics/slang-compile.cpp +++ b/src/Engine/Graphics/slang-compile.cpp @@ -139,7 +139,7 @@ void Seele::beginCompilation(const ShaderCompilationInfo& info, SlangCompileTarg slang::ProgramLayout* signature = specializedComponent->getLayout(0, diagnostics.writeRef()); CHECK_DIAGNOSTICS(); - std::cout << info.name << std::endl; + //std::cout << info.name << std::endl; for (uint32 i = 0; i < signature->getParameterCount(); ++i) { auto param = signature->getParameterByIndex(i); layout->addMapping(param->getName(), param->getBindingIndex()); diff --git a/src/Engine/Math/AABB.h b/src/Engine/Math/AABB.h index 8a36fe8..12b7586 100644 --- a/src/Engine/Math/AABB.h +++ b/src/Engine/Math/AABB.h @@ -11,9 +11,9 @@ struct BoundingSphere { }; struct AABB { Vector min = Vector(std::numeric_limits::max()); - float pad0; // So that it can be used directly in shaders + float pad0 = 0; // So that it can be used directly in shaders Vector max = Vector(std::numeric_limits::lowest()); // cause of reasons - float pad1; + float pad1 = 0; BoundingSphere toSphere() const { Vector center = (min + max) / 2.f; StaticArray corners; diff --git a/src/Engine/Physics/BVH.cpp b/src/Engine/Physics/BVH.cpp index 37cf414..8f8f4b5 100644 --- a/src/Engine/Physics/BVH.cpp +++ b/src/Engine/Physics/BVH.cpp @@ -311,7 +311,6 @@ void BVH::validateBVH() const { } for (uint32 i = 0; i < dynamicNodes.size(); ++i) { int32 nodeIdx = i; - size_t counter = dynamicNodes.size(); if (!dynamicNodes[nodeIdx].isValid) continue; while (dynamicNodes[nodeIdx].parentIndex != -1) { diff --git a/src/Engine/Physics/BVH.h b/src/Engine/Physics/BVH.h index 705d105..77fa151 100644 --- a/src/Engine/Physics/BVH.h +++ b/src/Engine/Physics/BVH.h @@ -17,17 +17,17 @@ class BVH { private: struct AABBCenter { AABB bb; - Vector center; - entt::entity id; + Vector center = Vector(); + entt::entity id = entt::entity(); }; struct Node { AABB box; int32 parentIndex = -1; int32 left = -1; int32 right = -1; - bool isLeaf; + bool isLeaf = false; bool isValid = true; - entt::entity owner; + entt::entity owner = entt::entity(); }; void traverseStaticTree(const AABB& aabb, entt::entity source, int32 nodeIndex, Array>& overlaps); void traverseDynamicTree(const AABB& aabb, entt::entity source, int32 nodeIndex, Array>& overlaps); diff --git a/src/Engine/System/KeyboardInput.cpp b/src/Engine/System/KeyboardInput.cpp index 85ce322..f6e37a5 100644 --- a/src/Engine/System/KeyboardInput.cpp +++ b/src/Engine/System/KeyboardInput.cpp @@ -28,8 +28,8 @@ void KeyboardInput::update(Component::KeyboardInput& input) { void KeyboardInput::keyCallback(KeyCode code, InputAction action, KeyModifier) { keys[code] = action != InputAction::RELEASE; } void KeyboardInput::mouseCallback(double x, double y) { - mouseX = x; - mouseY = y; + mouseX = (float)x; + mouseY = (float)y; } void KeyboardInput::mouseButtonCallback(MouseButton button, InputAction action, KeyModifier) { @@ -42,6 +42,6 @@ void KeyboardInput::mouseButtonCallback(MouseButton button, InputAction action, } void KeyboardInput::scrollCallback(double xScroll, double yScroll) { - scrollX = xScroll; - scrollY = yScroll; + scrollX = (float)xScroll; + scrollY = (float)yScroll; } diff --git a/src/Engine/System/SystemBase.h b/src/Engine/System/SystemBase.h index 09d86ff..0437575 100644 --- a/src/Engine/System/SystemBase.h +++ b/src/Engine/System/SystemBase.h @@ -16,7 +16,7 @@ class SystemBase { virtual void update() {} protected: - double deltaTime; + double deltaTime = 0.0; entt::registry& registry; PScene scene; }; diff --git a/src/Engine/Window/GameView.cpp b/src/Engine/Window/GameView.cpp index 2b6582b..8c28137 100644 --- a/src/Engine/Window/GameView.cpp +++ b/src/Engine/Window/GameView.cpp @@ -32,6 +32,7 @@ GameView::GameView(Gfx::PGraphics graphics, PWindow window, const ViewportCreate renderGraph.createRenderPass(); if (graphics->supportRayTracing()) { rayTracingGraph.addPass(new RayTracingPass(graphics, scene)); + rayTracingGraph.addPass(new ToneMappingPass(graphics)); rayTracingGraph.setViewport(viewport); rayTracingGraph.createRenderPass(); } diff --git a/tests/Engine/Containers/Map.cpp b/tests/Engine/Containers/Map.cpp index 92371b4..a92b3ed 100644 --- a/tests/Engine/Containers/Map.cpp +++ b/tests/Engine/Containers/Map.cpp @@ -31,7 +31,7 @@ TEST(CachedMap, for_each) map[6] = 4; map[4] = 7; int count = 0; - for(auto [key, val] : map) + for(const auto& [key, val] : map) { count++; } From 7a3aa482c7f7db87af1f8b5756fd08a248b1a182 Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Sun, 30 Mar 2025 22:17:29 +0200 Subject: [PATCH 05/12] Some minor texture changes --- src/Editor/Asset/TextureLoader.cpp | 7 ++-- src/Editor/main.cpp | 38 ++++++++++--------- src/Engine/Asset/TextureAsset.cpp | 3 +- .../Graphics/RenderPass/RayTracingPass.cpp | 13 ++++++- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/src/Editor/Asset/TextureLoader.cpp b/src/Editor/Asset/TextureLoader.cpp index bf24c20..d37feec 100644 --- a/src/Editor/Asset/TextureLoader.cpp +++ b/src/Editor/Asset/TextureLoader.cpp @@ -111,12 +111,13 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) { ktxBasisParams basisParams = { .structSize = sizeof(ktxBasisParams), .uastc = true, - .threadCount = 1, + .threadCount = 14, + .compressionLevel = 3, .uastcFlags = KTX_PACK_UASTC_LEVEL_FASTEST, .uastcRDO = true, }; - // KTX_ASSERT(ktxTexture2_CompressBasisEx(kTexture, &basisParams)); - // KTX_ASSERT(ktxTexture2_DeflateZstd(kTexture, 20)); + KTX_ASSERT(ktxTexture2_CompressBasisEx(kTexture, &basisParams)); + KTX_ASSERT(ktxTexture2_DeflateZstd(kTexture, 20)); char writer[100]; snprintf(writer, sizeof(writer), "%s version %s", "SeeleEngine", "0.0.1"); diff --git a/src/Editor/main.cpp b/src/Editor/main.cpp index 2d3a7a7..c625a8b 100644 --- a/src/Editor/main.cpp +++ b/src/Editor/main.cpp @@ -112,11 +112,11 @@ int main() { // AssetImporter::importTexture(TextureImportArgs{ // .filePath = sourcePath / "import/textures/wgen.png", //}); - AssetImporter::importMesh(MeshImportArgs{ - .filePath = sourcePath / "import/models/after-the-rain-vr-sound/source/Whitechapel.glb", - .importPath = "Whitechapel", - }); - //AssetImporter::importMesh(MeshImportArgs{ + // AssetImporter::importMesh(MeshImportArgs{ + // .filePath = sourcePath / "import/models/after-the-rain-vr-sound/source/Whitechapel.glb", + // .importPath = "Whitechapel", + //}); + // AssetImporter::importMesh(MeshImportArgs{ // .filePath = sourcePath / "import/models/box.glb", // .importPath = "", //}); @@ -125,9 +125,13 @@ int main() { .importPath = "", }); //AssetImporter::importMesh(MeshImportArgs{ - // .filePath = sourcePath / "import/models/town_hall.glb", - // .importPath = "", + // .filePath = sourcePath / "import/models/main1_sponza/sponza.gltf", + // .importPath = "sponza", //}); + // AssetImporter::importMesh(MeshImportArgs{ + // .filePath = sourcePath / "import/models/town_hall.glb", + // .importPath = "", + // }); getThreadPool().waitIdle(); vd->commitMeshes(); WindowCreateInfo mainWindowInfo = { @@ -146,16 +150,16 @@ int main() { }; OGameView sceneView = new Editor::PlayView(graphics, window, sceneViewInfo, binaryPath.generic_string()); sceneView->setFocused(); - //OInspectorView inspectorView = new Editor::InspectorView(graphics, window, - // ViewportCreateInfo{ - // .dimensions = - // { - // .size = {1920, 1080}, - // .offset = {0, 0}, - // }, - // .fieldOfView = 0, - // .numSamples = Gfx::SE_SAMPLE_COUNT_1_BIT, - // }); + // OInspectorView inspectorView = new Editor::InspectorView(graphics, window, + // ViewportCreateInfo{ + // .dimensions = + // { + // .size = {1920, 1080}, + // .offset = {0, 0}, + // }, + // .fieldOfView = 0, + // .numSamples = Gfx::SE_SAMPLE_COUNT_1_BIT, + // }); // window->show(); while (windowManager->isActive() && getGlobals().running) { diff --git a/src/Engine/Asset/TextureAsset.cpp b/src/Engine/Asset/TextureAsset.cpp index 6517525..182d6a4 100644 --- a/src/Engine/Asset/TextureAsset.cpp +++ b/src/Engine/Asset/TextureAsset.cpp @@ -32,8 +32,7 @@ void TextureAsset::load(ArchiveBuffer& buffer) { KTX_ASSERT( ktxTexture_CreateFromMemory(ktxData.data(), ktxData.size(), KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, (ktxTexture**)&ktxHandle)); - ktxTexture2_TranscodeBasis(ktxHandle, KTX_TTF_RGBA32, 0); - // ktxTexture2_DeflateZstd(ktxHandle, 0); + ktxTexture2_TranscodeBasis(ktxHandle, KTX_TTF_BC7_RGBA, 0); Gfx::PGraphics graphics = buffer.getGraphics(); TextureCreateInfo createInfo = { diff --git a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp index b81932a..67a99aa 100644 --- a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp +++ b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp @@ -131,7 +131,18 @@ void RayTracingPass::render() { } } pipeline = graphics->createRayTracingPipeline(Gfx::RayTracingPipelineCreateInfo{ - .pipelineLayout = pipelineLayout, .rayGenGroup = {.shader = rayGen}, .hitGroups = callableGroups, .missGroups = {{.shader = miss}}, + .pipelineLayout = pipelineLayout, + .rayGenGroup = + { + .shader = rayGen, + }, + .hitGroups = callableGroups, + .missGroups = + { + { + .shader = miss, + }, + }, //.callableGroups = callableGroups, }); tlas = graphics->createTopLevelAccelerationStructure(Gfx::TopLevelASCreateInfo{ From 4a34220cd7cec05809ccac4a4863383553b61062 Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Mon, 31 Mar 2025 11:39:17 +0200 Subject: [PATCH 06/12] basic sponza import --- res/shaders/Skybox.slang | 2 +- res/shaders/ToneMapping.slang | 2 +- res/shaders/lib/StaticMeshVertexData.slang | 7 +++-- src/Editor/Asset/MeshLoader.cpp | 15 ++++++--- src/Editor/Asset/TextureLoader.cpp | 10 +++--- src/Editor/main.cpp | 8 ++--- src/Engine/Asset/TextureAsset.cpp | 3 +- src/Engine/Graphics/StaticMeshVertexData.cpp | 33 ++++++++++---------- src/Engine/Graphics/StaticMeshVertexData.h | 12 +++---- src/Engine/Graphics/Vulkan/PipelineCache.cpp | 3 +- 10 files changed, 51 insertions(+), 44 deletions(-) diff --git a/res/shaders/Skybox.slang b/res/shaders/Skybox.slang index def3e3a..f0e2aea 100644 --- a/res/shaders/Skybox.slang +++ b/res/shaders/Skybox.slang @@ -101,5 +101,5 @@ float4 fragmentMain( float factor = (output.texCoords.y - lowerLimit) / (upperLimit - lowerLimit); factor = clamp(factor, 0.0, 1.0); - return lerp(float4(pSkyboxData.fogBlend.xyz, 1), finalColor, factor) * 100; + return lerp(float4(pSkyboxData.fogBlend.xyz, 1), finalColor, factor); } \ No newline at end of file diff --git a/res/shaders/ToneMapping.slang b/res/shaders/ToneMapping.slang index 3608110..b4dd02a 100644 --- a/res/shaders/ToneMapping.slang +++ b/res/shaders/ToneMapping.slang @@ -109,7 +109,7 @@ float4 toneMapping(float2 uv : UV) : SV_Target { float3 hdrValue = pToneMappingParams.hdrInputTexture.Sample(pToneMappingParams.hdrSampler, uv).rgb; - float3 value = agx(hdrValue / 1000); + float3 value = agx(hdrValue); value = agxLook(value); value = agxEotf(value); diff --git a/res/shaders/lib/StaticMeshVertexData.slang b/res/shaders/lib/StaticMeshVertexData.slang index f597dc3..eee80af 100644 --- a/res/shaders/lib/StaticMeshVertexData.slang +++ b/res/shaders/lib/StaticMeshVertexData.slang @@ -16,8 +16,9 @@ struct StaticMeshVertexData #ifndef POS_ONLY //attributes.qTangent = qTangent[index]; attributes.normal_MS = float3(normals[index * 3 + 0], normals[index * 3 + 1], normals[index * 3 + 2]); - attributes.tangent_MS = float3(tangents[index * 3 + 0], tangents[index * 3 + 1], tangents[index * 3 + 2]); - attributes.biTangent_MS = float3(biTangents[index * 3 + 0], biTangents[index * 3 + 1], biTangents[index * 3 + 2]); + float4 tangentSign = float4(tangents[index * 4 + 0], tangents[index * 4 + 1], tangents[index * 4 + 2], tangents[index * 4 + 3]); + attributes.tangent_MS = tangentSign.xyz; + attributes.biTangent_MS = cross(attributes.normal_MS, attributes.tangent_MS) * -tangentSign.w; for(uint i = 0; i < MAX_TEXCOORDS; ++i) { attributes.texCoords[i] = float2(uint16ToFloat(texCoords[i][index * 2 + 0]), uint16ToFloat(texCoords[i][index * 2 + 1])); @@ -27,9 +28,9 @@ struct StaticMeshVertexData return attributes; } StructuredBuffer positions; + //StructuredBuffer qTangents; StructuredBuffer normals; StructuredBuffer tangents; - StructuredBuffer biTangents; StructuredBuffer color; StructuredBuffer texCoords[MAX_TEXCOORDS]; }; diff --git a/src/Editor/Asset/MeshLoader.cpp b/src/Editor/Asset/MeshLoader.cpp index 7bd010b..c8bb68b 100644 --- a/src/Editor/Asset/MeshLoader.cpp +++ b/src/Editor/Asset/MeshLoader.cpp @@ -536,7 +536,7 @@ void MeshLoader::loadGlobalMeshes(const aiScene* scene, const Array normals(mesh->mNumVertices); Array tangents(mesh->mNumVertices); - Array biTangents(mesh->mNumVertices); + //Array biTangents(mesh->mNumVertices); Array colors(mesh->mNumVertices); for (uint32 i = 0; i < mesh->mNumVertices; ++i) { @@ -555,10 +555,15 @@ void MeshLoader::loadGlobalMeshes(const aiScene* scene, const ArraymTangents[i].x, mesh->mTangents[i].y, mesh->mTangents[i].z); biTangent = Vector(mesh->mBitangents[i].x, mesh->mBitangents[i].y, mesh->mBitangents[i].z); } - normals[i] = normal; // encodeQTangent(Matrix3(tangent, biTangent, normal)); - tangents[i] = tangent; - biTangents[i] = biTangent; + normals[i] = normal; // encodeQTangent(Matrix3(tangent, biTangent, normal)); + // the fourth component encodes the sign of the bitangent. + // in the shader we calc n x t, and b = (n x t) * sign + // so we try to cross the two, and see what is the result, and if it is + // the same as b, the dot product is 1, and if they are inverse, the dot product is + // -1, which is the sign we need + tangents[i] = Vector4(tangent, dot(glm::cross(normal, tangent), biTangent)); + if (mesh->HasVertexColors(0)) { colors[i] = StaticMeshVertexData::ColorType(mesh->mColors[0][i].r * 65535, mesh->mColors[0][i].g * 65535, mesh->mColors[0][i].b * 65535); } else { @@ -572,7 +577,7 @@ void MeshLoader::loadGlobalMeshes(const aiScene* scene, const ArrayloadNormals(offset, normals); vertexData->loadTangents(offset, tangents); - vertexData->loadBitangents(offset, biTangents); + //vertexData->loadBitangents(offset, biTangents); vertexData->loadColors(offset, colors); Array indices(mesh->mNumFaces * 3); diff --git a/src/Editor/Asset/TextureLoader.cpp b/src/Editor/Asset/TextureLoader.cpp index d37feec..3809ac6 100644 --- a/src/Editor/Asset/TextureLoader.cpp +++ b/src/Editor/Asset/TextureLoader.cpp @@ -42,7 +42,7 @@ void TextureLoader::importAsset(TextureImportArgs args) { PTextureAsset ref = asset; asset->setStatus(Asset::Status::Loading); AssetRegistry::get().registerTexture(std::move(asset)); - import(args, ref); + getThreadPool().runAsync([=]() { import(args, ref); }); } PTextureAsset TextureLoader::getPlaceholderTexture() { return placeholderAsset; } @@ -111,13 +111,13 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) { ktxBasisParams basisParams = { .structSize = sizeof(ktxBasisParams), .uastc = true, - .threadCount = 14, - .compressionLevel = 3, - .uastcFlags = KTX_PACK_UASTC_LEVEL_FASTEST, + .threadCount = 1, + .compressionLevel = 2, + .uastcFlags = KTX_PACK_UASTC_LEVEL_FASTER, .uastcRDO = true, }; KTX_ASSERT(ktxTexture2_CompressBasisEx(kTexture, &basisParams)); - KTX_ASSERT(ktxTexture2_DeflateZstd(kTexture, 20)); + KTX_ASSERT(ktxTexture2_DeflateZstd(kTexture, 10)); char writer[100]; snprintf(writer, sizeof(writer), "%s version %s", "SeeleEngine", "0.0.1"); diff --git a/src/Editor/main.cpp b/src/Editor/main.cpp index c625a8b..bc5775d 100644 --- a/src/Editor/main.cpp +++ b/src/Editor/main.cpp @@ -124,10 +124,10 @@ int main() { .filePath = sourcePath / "import/models/rttest.glb", .importPath = "", }); - //AssetImporter::importMesh(MeshImportArgs{ - // .filePath = sourcePath / "import/models/main1_sponza/sponza.gltf", - // .importPath = "sponza", - //}); + AssetImporter::importMesh(MeshImportArgs{ + .filePath = sourcePath / "import/models/main1_sponza/sponza.gltf", + .importPath = "sponza", + }); // AssetImporter::importMesh(MeshImportArgs{ // .filePath = sourcePath / "import/models/town_hall.glb", // .importPath = "", diff --git a/src/Engine/Asset/TextureAsset.cpp b/src/Engine/Asset/TextureAsset.cpp index 182d6a4..c238606 100644 --- a/src/Engine/Asset/TextureAsset.cpp +++ b/src/Engine/Asset/TextureAsset.cpp @@ -31,8 +31,7 @@ void TextureAsset::load(ArchiveBuffer& buffer) { Serialization::load(buffer, ktxData); KTX_ASSERT( ktxTexture_CreateFromMemory(ktxData.data(), ktxData.size(), KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, (ktxTexture**)&ktxHandle)); - - ktxTexture2_TranscodeBasis(ktxHandle, KTX_TTF_BC7_RGBA, 0); + ktxTexture2_TranscodeBasis(ktxHandle, KTX_TTF_RGBA32, 0); Gfx::PGraphics graphics = buffer.getGraphics(); TextureCreateInfo createInfo = { diff --git a/src/Engine/Graphics/StaticMeshVertexData.cpp b/src/Engine/Graphics/StaticMeshVertexData.cpp index 6fc802a..60f39c3 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.cpp +++ b/src/Engine/Graphics/StaticMeshVertexData.cpp @@ -41,11 +41,12 @@ void StaticMeshVertexData::loadTangents(uint64 offset, const Array& std::memcpy(tanData.data() + offset, data.data(), data.size() * sizeof(TangentType)); dirty = true; } -void StaticMeshVertexData::loadBitangents(uint64 offset, const Array& data) { + +/*void StaticMeshVertexData::loadBitangents(uint64 offset, const Array& data) { assert(offset + data.size() <= head); std::memcpy(bitData.data() + offset, data.data(), data.size() * sizeof(BiTangentType)); dirty = true; -} +}*/ void StaticMeshVertexData::loadColors(uint64 offset, const Array& data) { assert(offset + data.size() <= head); @@ -71,17 +72,17 @@ void StaticMeshVertexData::serializeMesh(MeshId id, ArchiveBuffer& buffer) { Array pos(numVertices); Array nor(numVertices); Array tan(numVertices); - Array bit(numVertices); + //Array bit(numVertices); Array col(numVertices); std::memcpy(pos.data(), posData.data() + offset, numVertices * sizeof(PositionType)); std::memcpy(nor.data(), norData.data() + offset, numVertices * sizeof(NormalType)); std::memcpy(tan.data(), tanData.data() + offset, numVertices * sizeof(TangentType)); - std::memcpy(bit.data(), bitData.data() + offset, numVertices * sizeof(BiTangentType)); + //std::memcpy(bit.data(), bitData.data() + offset, numVertices * sizeof(BiTangentType)); std::memcpy(col.data(), colData.data() + offset, numVertices * sizeof(ColorType)); Serialization::save(buffer, pos); Serialization::save(buffer, nor); Serialization::save(buffer, tan); - Serialization::save(buffer, bit); + //Serialization::save(buffer, bit); Serialization::save(buffer, col); } @@ -101,22 +102,22 @@ uint64 StaticMeshVertexData::deserializeMesh(MeshId id, ArchiveBuffer& buffer) { Array pos; Array nor; Array tan; - Array bit; + //Array bit; Array col; Serialization::load(buffer, pos); Serialization::load(buffer, nor); Serialization::load(buffer, tan); - Serialization::load(buffer, bit); + //Serialization::load(buffer, bit); Serialization::load(buffer, col); loadPositions(offset, pos); loadNormals(offset, nor); loadTangents(offset, tan); - loadBitangents(offset, bit); + //loadBitangents(offset, bit); loadColors(offset, col); result += pos.size() * sizeof(PositionType); result += nor.size() * sizeof(NormalType); result += tan.size() * sizeof(TangentType); - result += bit.size() * sizeof(BiTangentType); + //result += bit.size() * sizeof(BiTangentType); result += col.size() * sizeof(ColorType); return result; } @@ -136,10 +137,10 @@ void StaticMeshVertexData::init(Gfx::PGraphics _graphics) { .name = TANGENTS_NAME, .descriptorType = Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER, }); - descriptorLayout->addDescriptorBinding(Gfx::DescriptorBinding{ + /*descriptorLayout->addDescriptorBinding(Gfx::DescriptorBinding{ .name = BITANGENTS_NAME, .descriptorType = Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER, - }); + });*/ descriptorLayout->addDescriptorBinding(Gfx::DescriptorBinding{ .name = COLORS_NAME, .descriptorType = Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER, @@ -161,7 +162,7 @@ void StaticMeshVertexData::destroy() { positions = nullptr; normals = nullptr; tangents = nullptr; - biTangents = nullptr; + //biTangents = nullptr; colors = nullptr; descriptorSet = nullptr; descriptorLayout = nullptr; @@ -179,7 +180,7 @@ void StaticMeshVertexData::resizeBuffers() { posData.resize(verticesAllocated); norData.resize(verticesAllocated); tanData.resize(verticesAllocated); - bitData.resize(verticesAllocated); + //bitData.resize(verticesAllocated); colData.resize(verticesAllocated); for (size_t i = 0; i < MAX_TEXCOORDS; ++i) { texData[i].resize(verticesAllocated); @@ -212,14 +213,14 @@ void StaticMeshVertexData::updateBuffers() { }, .name = "Tangents", }); - biTangents = graphics->createShaderBuffer(ShaderBufferCreateInfo{ + /*biTangents = graphics->createShaderBuffer(ShaderBufferCreateInfo{ .sourceData = { .size = verticesAllocated * sizeof(BiTangentType), .data = (uint8*)bitData.data(), }, .name = "BiTangents", - }); + });*/ colors = graphics->createShaderBuffer(ShaderBufferCreateInfo{ .sourceData = { @@ -243,7 +244,7 @@ void StaticMeshVertexData::updateBuffers() { descriptorSet->updateBuffer(POSITIONS_NAME, 0, positions); descriptorSet->updateBuffer(NORMALS_NAME, 0, normals); descriptorSet->updateBuffer(TANGENTS_NAME, 0, tangents); - descriptorSet->updateBuffer(BITANGENTS_NAME, 0, biTangents); + //descriptorSet->updateBuffer(BITANGENTS_NAME, 0, biTangents); descriptorSet->updateBuffer(COLORS_NAME, 0, colors); for (uint32 i = 0; i < MAX_TEXCOORDS; ++i) { descriptorSet->updateBuffer(TEXCOORDS_NAME, i, texCoords[i]); diff --git a/src/Engine/Graphics/StaticMeshVertexData.h b/src/Engine/Graphics/StaticMeshVertexData.h index 20d3815..ca6bdb9 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.h +++ b/src/Engine/Graphics/StaticMeshVertexData.h @@ -10,8 +10,8 @@ class StaticMeshVertexData : public VertexData { public: using PositionType = Vector; using NormalType = Vector; - using TangentType = Vector; - using BiTangentType = Vector; + using TangentType = Vector4; + //using BiTangentType = Vector; using TexCoordType = U16Vector2; using ColorType = U16Vector; @@ -22,7 +22,7 @@ class StaticMeshVertexData : public VertexData { void loadTexCoords(uint64 offset, uint64 index, const Array& data); void loadNormals(uint64 offset, const Array& data); void loadTangents(uint64 offset, const Array& data); - void loadBitangents(uint64 offset, const Array& data); + //void loadBitangents(uint64 offset, const Array& data); void loadColors(uint64 offset, const Array& data); virtual void serializeMesh(MeshId id, ArchiveBuffer& buffer) override; virtual uint64 deserializeMesh(MeshId id, ArchiveBuffer& buffer) override; @@ -46,15 +46,15 @@ class StaticMeshVertexData : public VertexData { constexpr static const char* NORMALS_NAME = "normals"; Gfx::OShaderBuffer tangents; constexpr static const char* TANGENTS_NAME = "tangents"; - Gfx::OShaderBuffer biTangents; - constexpr static const char* BITANGENTS_NAME = "biTangents"; + //Gfx::OShaderBuffer biTangents; + //constexpr static const char* BITANGENTS_NAME = "biTangents"; Gfx::OShaderBuffer colors; constexpr static const char* COLORS_NAME = "colors"; Array posData; Array texData[MAX_TEXCOORDS]; Array norData; Array tanData; - Array bitData; + //Array bitData; Array colData; Gfx::ODescriptorLayout descriptorLayout; Gfx::PDescriptorSet descriptorSet; diff --git a/src/Engine/Graphics/Vulkan/PipelineCache.cpp b/src/Engine/Graphics/Vulkan/PipelineCache.cpp index a2b6c03..80283eb 100644 --- a/src/Engine/Graphics/Vulkan/PipelineCache.cpp +++ b/src/Engine/Graphics/Vulkan/PipelineCache.cpp @@ -592,7 +592,8 @@ PRayTracingPipeline PipelineCache::createPipeline(Gfx::RayTracingPipelineCreateI }); } } - uint32 hash = CRC::Calculate(shaderStages.data(), sizeof(VkPipelineShaderStageCreateInfo) * shaderStages.size(), CRC::CRC_32()); + uint32 hash = CRC::Calculate(shaderStages.data(), sizeof(VkPipelineShaderStageCreateInfo) * shaderStages.size(), CRC::CRC_32(), + createInfo.pipelineLayout->getHash()); hash = CRC::Calculate(shaderGroups.data(), sizeof(VkRayTracingShaderGroupCreateInfoKHR) * shaderGroups.size(), CRC::CRC_32(), hash); if (rayTracingPipelines.contains(hash)) { return rayTracingPipelines[hash]; From aa1f037cb5b2e4ec2e922621fec816b08d405b13 Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Fri, 4 Apr 2025 14:44:53 +0200 Subject: [PATCH 07/12] Initial environment loading (not working) --- res/shaders/EnvironmentMapping.slang | 95 +++++++++++ res/shaders/Skybox.slang | 112 ++++++------- src/Editor/Asset/AssetImporter.cpp | 11 +- src/Editor/Asset/AssetImporter.h | 5 +- src/Editor/Asset/CMakeLists.txt | 2 + src/Editor/Asset/EnvironmentLoader.cpp | 147 ++++++++++++++++++ src/Editor/Asset/EnvironmentLoader.h | 32 ++++ src/Editor/main.cpp | 4 + src/Engine/Asset/AssetRegistry.cpp | 58 ++++--- src/Engine/Asset/AssetRegistry.h | 5 + src/Engine/Asset/CMakeLists.txt | 2 + src/Engine/Asset/EnvironmentMapAsset.cpp | 13 ++ src/Engine/Asset/EnvironmentMapAsset.h | 19 +++ src/Engine/Asset/LevelAsset.h | 2 +- src/Engine/Asset/MaterialAsset.cpp | 2 +- src/Engine/Graphics/Descriptor.h | 4 +- src/Engine/Graphics/Graphics.h | 4 +- src/Engine/Graphics/RayTracing.cpp | 1 - src/Engine/Graphics/RayTracing.h | 1 + src/Engine/Graphics/RenderPass/BasePass.cpp | 4 +- .../Graphics/RenderPass/CachedDepthPass.cpp | 3 +- .../Graphics/RenderPass/DepthCullingPass.cpp | 2 +- .../Graphics/RenderPass/LightCullingPass.cpp | 5 +- .../Graphics/RenderPass/RayTracingPass.cpp | 4 +- .../Graphics/RenderPass/ToneMappingPass.cpp | 2 +- src/Engine/Graphics/RenderPass/UIPass.cpp | 2 +- src/Engine/Graphics/RenderTarget.cpp | 6 + src/Engine/Graphics/RenderTarget.h | 14 +- src/Engine/Graphics/Vulkan/Descriptor.cpp | 58 +------ src/Engine/Graphics/Vulkan/Descriptor.h | 4 +- src/Engine/Graphics/Vulkan/Framebuffer.cpp | 10 +- src/Engine/Graphics/Vulkan/Graphics.cpp | 7 +- src/Engine/Graphics/Vulkan/Graphics.h | 3 +- src/Engine/Graphics/Vulkan/RenderPass.cpp | 46 +++--- src/Engine/Graphics/Vulkan/RenderPass.h | 3 +- src/Engine/Graphics/Vulkan/Texture.cpp | 28 ++-- src/Engine/Graphics/Vulkan/Texture.h | 18 ++- src/Engine/Graphics/Window.cpp | 3 +- src/Engine/Graphics/Window.h | 6 + src/Engine/ThreadPool.cpp | 3 + tests/Engine/MinimalEngine.cpp | 11 ++ 41 files changed, 553 insertions(+), 208 deletions(-) create mode 100644 res/shaders/EnvironmentMapping.slang create mode 100644 src/Editor/Asset/EnvironmentLoader.cpp create mode 100644 src/Editor/Asset/EnvironmentLoader.h create mode 100644 src/Engine/Asset/EnvironmentMapAsset.cpp create mode 100644 src/Engine/Asset/EnvironmentMapAsset.h create mode 100644 tests/Engine/MinimalEngine.cpp diff --git a/res/shaders/EnvironmentMapping.slang b/res/shaders/EnvironmentMapping.slang new file mode 100644 index 0000000..ba950b8 --- /dev/null +++ b/res/shaders/EnvironmentMapping.slang @@ -0,0 +1,95 @@ +struct VertexOutput +{ + float4 svPos : SV_Position; + float3 localPos : LOCALPOS; +}; +const static float3 vertices[] = { + // Back + float3(-1, -1, 1), + float3(-1, 1, 1), + float3( 1, -1, 1), + + float3( 1, -1, 1), + float3(-1, 1, 1), + float3( 1, 1, 1), + + // Front + float3( 1, -1, -1), + float3( 1, 1, -1), + float3(-1, -1, -1), + + float3(-1, -1, -1), + float3( 1, 1, -1), + float3(-1, 1, -1), + + // Top + float3(-1, -1, -1), + float3(-1, -1, 1), + float3( 1, -1, -1), + + float3( 1, -1, -1), + float3(-1, -1, 1), + float3( 1, -1, 1), + + // Bottom + float3(-1, 1, 1), + float3(-1, 1, -1), + float3( 1, 1, 1), + + float3( 1, 1, 1), + float3(-1, 1, -1), + float3( 1, 1, -1), + + // Left + float3(-1, -1, -1), + float3(-1, 1, -1), + float3(-1, -1, 1), + + float3(-1, -1, 1), + float3(-1, 1, -1), + float3(-1, 1, 1), + + // Right + float3( 1, -1, 1), + float3( 1, 1, 1), + float3( 1, -1, -1), + + float3( 1, -1, -1), + float3( 1, 1, 1), + float3( 1, 1, -1), +}; + +struct ViewParams +{ + float4x4 view[6]; + float4x4 projection; + Texture2D equirectangularMap; + SamplerState sampler; +}; +ParameterBlock pViewParams; + +[shader("vertex")] +VertexOutput vertMain(uint vertexIndex : SV_VertexID, uint viewIndex : SV_ViewID) +{ + VertexOutput output; + output.localPos = vertices[vertexIndex + 6 * viewIndex]; + output.svPos = mul(pViewParams.projection, mul(pViewParams.view[viewIndex], float4(vertices[vertexIndex], 1))); + return output; +} + +const static float2 invAtan = float2(0.1591, 0.3183); +float2 sampleSphericalMap(float3 v) +{ + float2 uv = float2(atan(v.z / v.x), asin(v.y)); + uv *= invAtan; + uv += 0.5; + return uv; +} + +[shader("fragment")] +float4 fragMain(float3 localPos : LOCALPOS) : SV_Target +{ + float2 uv = sampleSphericalMap(normalize(localPos)); + float3 color = pViewParams.equirectangularMap.Sample(pViewParams.sampler, uv).rgb; + return float4(color, 1); +} \ No newline at end of file diff --git a/res/shaders/Skybox.slang b/res/shaders/Skybox.slang index f0e2aea..ff07380 100644 --- a/res/shaders/Skybox.slang +++ b/res/shaders/Skybox.slang @@ -12,66 +12,66 @@ struct SkyboxData }; ParameterBlock pSkyboxData; +const static float3 vertices[] = { + // Back + float3(-512, -512, 512), + float3(-512, 512, 512), + float3( 512, -512, 512), + + float3( 512, -512, 512), + float3(-512, 512, 512), + float3( 512, 512, 512), + + // Front + float3( 512, -512, -512), + float3( 512, 512, -512), + float3(-512, -512, -512), + + float3(-512, -512, -512), + float3( 512, 512, -512), + float3(-512, 512, -512), + + // Top + float3(-512, -512, -512), + float3(-512, -512, 512), + float3( 512, -512, -512), + + float3( 512, -512, -512), + float3(-512, -512, 512), + float3( 512, -512, 512), + + // Bottom + float3(-512, 512, 512), + float3(-512, 512, -512), + float3( 512, 512, 512), + + float3( 512, 512, 512), + float3(-512, 512, -512), + float3( 512, 512, -512), + + // Left + float3(-512, -512, -512), + float3(-512, 512, -512), + float3(-512, -512, 512), + + float3(-512, -512, 512), + float3(-512, 512, -512), + float3(-512, 512, 512), + + // Right + float3( 512, -512, 512), + float3( 512, 512, 512), + float3( 512, -512, -512), + + float3( 512, -512, -512), + float3( 512, 512, 512), + float3( 512, 512, -512), +}; + [shader("vertex")] VertexShaderOutput vertexMain( uint vertexIndex : SV_VertexId) { - const float3 vertices[] = { - // Back - float3(-512, -512, 512), - float3(-512, 512, 512), - float3( 512, -512, 512), - - float3( 512, -512, 512), - float3(-512, 512, 512), - float3( 512, 512, 512), - - // Front - float3( 512, -512, -512), - float3( 512, 512, -512), - float3(-512, -512, -512), - - float3(-512, -512, -512), - float3( 512, 512, -512), - float3(-512, 512, -512), - - // Top - float3(-512, -512, -512), - float3(-512, -512, 512), - float3( 512, -512, -512), - - float3( 512, -512, -512), - float3(-512, -512, 512), - float3( 512, -512, 512), - - // Bottom - float3(-512, 512, 512), - float3(-512, 512, -512), - float3( 512, 512, 512), - - float3( 512, 512, 512), - float3(-512, 512, -512), - float3( 512, 512, -512), - - // Left - float3(-512, -512, -512), - float3(-512, 512, -512), - float3(-512, -512, 512), - - float3(-512, -512, 512), - float3(-512, 512, -512), - float3(-512, 512, 512), - - // Right - float3( 512, -512, 512), - float3( 512, 512, 512), - float3( 512, -512, -512), - - float3( 512, -512, -512), - float3( 512, 512, 512), - float3( 512, 512, -512), - }; - VertexShaderOutput output; float3x3 cameraRotation = float3x3(pViewParams.viewMatrix); float4 worldPos = float4(mul(cameraRotation, vertices[vertexIndex]), 1.0f); diff --git a/src/Editor/Asset/AssetImporter.cpp b/src/Editor/Asset/AssetImporter.cpp index d7de0e9..8400d2a 100644 --- a/src/Editor/Asset/AssetImporter.cpp +++ b/src/Editor/Asset/AssetImporter.cpp @@ -4,7 +4,7 @@ #include "MaterialLoader.h" #include "MeshLoader.h" #include "TextureLoader.h" - +#include "EnvironmentLoader.h" using namespace Seele; @@ -40,12 +40,21 @@ void AssetImporter::importMaterial(MaterialImportArgs args) { get().materialLoader->importAsset(args); } +void Seele::AssetImporter::importEnvironmentMap(EnvironmentImportArgs args) { + if (get().registry->getOrCreateFolder(args.importPath)->materials.contains(args.filePath.stem().string())) { + // skip importing duplicates + return; + } + get().environmentLoader->importAsset(args); +} + void AssetImporter::init(Gfx::PGraphics graphics) { get().registry = AssetRegistry::getInstance(); get().meshLoader = new MeshLoader(graphics); get().textureLoader = new TextureLoader(graphics); get().materialLoader = new MaterialLoader(graphics); get().fontLoader = new FontLoader(graphics); + get().environmentLoader = new EnvironmentLoader(graphics); } AssetImporter& AssetImporter::get() { diff --git a/src/Editor/Asset/AssetImporter.h b/src/Editor/Asset/AssetImporter.h index 6f3fb22..2202386 100644 --- a/src/Editor/Asset/AssetImporter.h +++ b/src/Editor/Asset/AssetImporter.h @@ -1,6 +1,6 @@ #pragma once -#include "Asset/AssetRegistry.h" #include "MinimalEngine.h" +#include "Asset/AssetRegistry.h" namespace Seele { @@ -8,12 +8,14 @@ DECLARE_REF(TextureLoader) DECLARE_REF(FontLoader) DECLARE_REF(MeshLoader) DECLARE_REF(MaterialLoader) +DECLARE_REF(EnvironmentLoader) class AssetImporter { public: static void importMesh(struct MeshImportArgs args); static void importTexture(struct TextureImportArgs args); static void importFont(struct FontImportArgs args); static void importMaterial(struct MaterialImportArgs args); + static void importEnvironmentMap(struct EnvironmentImportArgs args); static void init(Gfx::PGraphics graphics); private: @@ -22,6 +24,7 @@ class AssetImporter { UPFontLoader fontLoader; UPMeshLoader meshLoader; UPMaterialLoader materialLoader; + UPEnvironmentLoader environmentLoader; AssetRegistry* registry; }; } // namespace Seele \ No newline at end of file diff --git a/src/Editor/Asset/CMakeLists.txt b/src/Editor/Asset/CMakeLists.txt index 240cb8f..58d56c5 100644 --- a/src/Editor/Asset/CMakeLists.txt +++ b/src/Editor/Asset/CMakeLists.txt @@ -2,6 +2,8 @@ target_sources(Editor PRIVATE AssetImporter.h AssetImporter.cpp + EnvironmentLoader.h + EnvironmentLoader.cpp FontLoader.h FontLoader.cpp MaterialLoader.h diff --git a/src/Editor/Asset/EnvironmentLoader.cpp b/src/Editor/Asset/EnvironmentLoader.cpp new file mode 100644 index 0000000..1b90cfe --- /dev/null +++ b/src/Editor/Asset/EnvironmentLoader.cpp @@ -0,0 +1,147 @@ +#include "EnvironmentLoader.h" +#include "Asset/AssetRegistry.h" +#include "Asset/EnvironmentMapAsset.h" +#include "Graphics/Descriptor.h" +#include "stb_image.h" + +using namespace Seele; + +EnvironmentLoader::EnvironmentLoader(Gfx::PGraphics graphics) : graphics(graphics) { + cubeRenderViewport = graphics->createViewport(nullptr, ViewportCreateInfo{ + .dimensions = + { + .size = {1024, 1024}, + .offset = {0, 0}, + }, + }); + + cubeRenderLayout = graphics->createDescriptorLayout("pViewParams"); + cubeRenderLayout->addDescriptorBinding(Gfx::DescriptorBinding{ + .name = "view", + .uniformLength = sizeof(Matrix4) * 6, + }); + cubeRenderLayout->addDescriptorBinding(Gfx::DescriptorBinding{ + .name = "projection", + .uniformLength = sizeof(Matrix4), + }); + cubeRenderLayout->addDescriptorBinding(Gfx::DescriptorBinding{ + .name = "equirectangularMap", + .descriptorType = Gfx::SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE, + }); + cubeRenderLayout->addDescriptorBinding(Gfx::DescriptorBinding{ + .name = "sampler", + .descriptorType = Gfx::SE_DESCRIPTOR_TYPE_SAMPLER, + }); + cubeRenderLayout->create(); + + cubePipelineLayout = graphics->createPipelineLayout("CubeRenderLayout"); + cubePipelineLayout->addDescriptorLayout(cubeRenderLayout); + + graphics->beginShaderCompilation(ShaderCompilationInfo{ + .name = "CubeRenderPipeline", + .modules = {"EnvironmentMapping"}, + .entryPoints = + { + {"vertMain", "EnvironmentMapping"}, + {"fragMain", "EnvironmentMapping"}, + }, + .rootSignature = cubePipelineLayout, + }); + cubePipelineLayout->create(); + + cubeRenderVertex = graphics->createVertexShader({0}); + cubeRenderFrag = graphics->createFragmentShader({1}); + + cubeSampler = graphics->createSampler({ + .magFilter = Gfx::SE_FILTER_LINEAR, + .minFilter = Gfx::SE_FILTER_LINEAR, + .addressModeU = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + .addressModeV = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + .addressModeW = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + }); +} + +EnvironmentLoader::~EnvironmentLoader() {} + +void EnvironmentLoader::importAsset(EnvironmentImportArgs args) { + std::filesystem::path assetPath = args.filePath.filename(); + assetPath.replace_extension("asset"); + OEnvironmentMapAsset asset = new EnvironmentMapAsset(args.importPath, assetPath.stem().string()); + asset->setStatus(Asset::Status::Loading); + // the registry takes ownership, but we need to edit the reference + PEnvironmentMapAsset ref = asset; + AssetRegistry::get().registerEnvironmentMap(std::move(asset)); + import(args, ref); +} + +void EnvironmentLoader::import(EnvironmentImportArgs args, PEnvironmentMapAsset asset) { + stbi_set_flip_vertically_on_load(true); + int width, height, nrComponents; + float* data = stbi_loadf(args.filePath.string().c_str(), &width, &height, &nrComponents, 4); + stbi_set_flip_vertically_on_load(false); + assert(data); + Gfx::OTexture2D hdrTexture = graphics->createTexture2D(TextureCreateInfo{ + .sourceData = + { + .size = width * height * 4 * sizeof(float), + .data = (uint8*)data, + }, + .format = Gfx::SE_FORMAT_R32G32B32A32_SFLOAT, + .width = (uint32)width, + .height = (uint32)height, + .name = "HDRRaw", + }); + Matrix4 captureProjection = glm::perspective(glm::radians(90.0f), 1.0f, 0.1f, 10.0f); + Matrix4 captureViews[] = { + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, 0.0f, 1.0f), Vector(0.0f, 1.0f, 0.0f)), + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, 0.0f, -1.0f), Vector(0.0f, 1.0f, 0.0f)), + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, -1.0f, 0.0f), Vector(1.0f, 0.0f, 0.0f)), + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f), Vector(1.0f, 0.0f, 0.0f)), + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(-1.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f)), + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(1.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f)), + }; + Gfx::PDescriptorSet set = cubeRenderLayout->allocateDescriptorSet(); + set->updateConstants("view", 0, captureViews); + set->updateConstants("projection", 0, &captureProjection); + set->updateTexture("equirectangularMap", 0, Gfx::PTexture2D(hdrTexture)); + set->updateSampler("sampler", 0, cubeSampler); + set->writeChanges(); + Gfx::OTextureCube cubeMap = graphics->createTextureCube(TextureCreateInfo{ + .format = Gfx::SE_FORMAT_R32G32B32A32_SFLOAT, + .width = 1024, + .height = 1024, + .usage = Gfx::SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, + }); + cubeRenderPass = graphics->createRenderPass( + Gfx::RenderTargetLayout{ + .colorAttachments = {Gfx::RenderTargetAttachment(cubeMap, Gfx::SE_IMAGE_LAYOUT_UNDEFINED, + Gfx::SE_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + Gfx::SE_ATTACHMENT_LOAD_OP_DONT_CARE, Gfx::SE_ATTACHMENT_STORE_OP_STORE)}, + }, + {}, + URect{ + .size = {1024, 1024}, + .offset = {0, 0}, + }, + "EnvironmentRenderPass", {0b111111}, {0b111111}); + cubeRenderPipeline = graphics->createGraphicsPipeline(Gfx::LegacyPipelineCreateInfo{ + .vertexShader = cubeRenderVertex, + .fragmentShader = cubeRenderFrag, + .renderPass = cubeRenderPass, + .pipelineLayout = cubePipelineLayout, + .colorBlend = + { + .attachmentCount = 1, + }, + }); + graphics->beginRenderPass(cubeRenderPass); + Gfx::ORenderCommand renderCommand = graphics->createRenderCommand("CubeMapRender"); + renderCommand->bindPipeline(cubeRenderPipeline); + renderCommand->bindDescriptor({set}); + renderCommand->setViewport(cubeRenderViewport); + renderCommand->draw(6, 1, 0, 0); + graphics->executeCommands(std::move(renderCommand)); + graphics->endRenderPass(); + graphics->waitDeviceIdle(); + asset->diffuseMap = std::move(cubeMap); +} diff --git a/src/Editor/Asset/EnvironmentLoader.h b/src/Editor/Asset/EnvironmentLoader.h new file mode 100644 index 0000000..74792d9 --- /dev/null +++ b/src/Editor/Asset/EnvironmentLoader.h @@ -0,0 +1,32 @@ +#pragma once +#include "MinimalEngine.h" +#include "Graphics/Graphics.h" +#include "Graphics/Shader.h" +#include + +namespace Seele +{ +DECLARE_REF(EnvironmentMapAsset) +struct EnvironmentImportArgs { + std::filesystem::path filePath; + std::string importPath; +}; +class EnvironmentLoader { + public: + EnvironmentLoader(Gfx::PGraphics graphic); + ~EnvironmentLoader(); + void importAsset(EnvironmentImportArgs args); + + private: + void import(EnvironmentImportArgs args, PEnvironmentMapAsset asset); + Gfx::PGraphics graphics; + Gfx::OVertexShader cubeRenderVertex; + Gfx::OFragmentShader cubeRenderFrag; + Gfx::ODescriptorLayout cubeRenderLayout; + Gfx::OPipelineLayout cubePipelineLayout; + Gfx::PGraphicsPipeline cubeRenderPipeline; + Gfx::ORenderPass cubeRenderPass; + Gfx::OViewport cubeRenderViewport; + Gfx::OSampler cubeSampler; +}; +} \ No newline at end of file diff --git a/src/Editor/main.cpp b/src/Editor/main.cpp index bc5775d..90e3841 100644 --- a/src/Editor/main.cpp +++ b/src/Editor/main.cpp @@ -4,6 +4,7 @@ #include "Asset/MaterialLoader.h" #include "Asset/MeshLoader.h" #include "Asset/TextureLoader.h" +#include "Asset/EnvironmentLoader.h" #include "Graphics/Initializer.h" #ifdef __APPLE__ #include "Graphics/Metal/Graphics.h" @@ -99,6 +100,9 @@ int main() { .filePath = sourcePath / "import/textures/skybox.jpg", .type = TextureImportType::TEXTURE_CUBEMAP, }); + AssetImporter::importEnvironmentMap(EnvironmentImportArgs{ + .filePath = sourcePath / "import/models/main1_sponza/textures/kloppenheim_05_4k.hdr", + }); // AssetImporter::importMesh(MeshImportArgs{ // .filePath = sourcePath / "import/models/ship.fbx", // .importPath = "ship", diff --git a/src/Engine/Asset/AssetRegistry.cpp b/src/Engine/Asset/AssetRegistry.cpp index b07d4a0..7535d13 100644 --- a/src/Engine/Asset/AssetRegistry.cpp +++ b/src/Engine/Asset/AssetRegistry.cpp @@ -1,18 +1,14 @@ #include "AssetRegistry.h" +#include "Asset/FontAsset.h" +#include "Asset/MaterialAsset.h" +#include "Asset/MaterialInstanceAsset.h" +#include "Asset/MeshAsset.h" +#include "Asset/EnvironmentMapAsset.h" +#include "Asset/SVGAsset.h" +#include "Asset/TextureAsset.h" #include "FontAsset.h" #include "Graphics/Graphics.h" #include "Graphics/Mesh.h" -#include "MaterialAsset.h" -#include "MaterialInstanceAsset.h" -#include "MeshAsset.h" -#include "SVGAsset.h" -#include "TextureAsset.h" -#include "Asset/TextureAsset.h" -#include "Asset/FontAsset.h" -#include "Asset/SVGAsset.h" -#include "Asset/MeshAsset.h" -#include "Asset/MaterialAsset.h" -#include "Asset/MaterialInstanceAsset.h" #include "Window/WindowManager.h" #include #include @@ -62,6 +58,15 @@ PSVGAsset AssetRegistry::findSVG(std::string_view folderPath, std::string_view f return folder->svgs.at(std::string(filePath)); } +PEnvironmentMapAsset AssetRegistry::findEnvironmentMap(std::string_view folderPath, std::string_view filePath) { + std::unique_lock l(get().assetLock); + AssetFolder* folder = get().assetRoot; + if (!folderPath.empty()) { + folder = get().getOrCreateFolder(folderPath); + } + return folder->envs.at(std::string(filePath)); +} + PMaterialAsset AssetRegistry::findMaterial(std::string_view folderPath, std::string_view filePath) { std::unique_lock l(get().assetLock); AssetFolder* folder = get().assetRoot; @@ -100,6 +105,11 @@ void AssetRegistry::registerSVG(OSVGAsset svg) { get().registerSVGInternal(std::move(svg)); } +void AssetRegistry::registerEnvironmentMap(OEnvironmentMapAsset env) { + std::unique_lock l(get().assetLock); + get().registerEnvironmentMapInternal(std::move(env)); +} + void AssetRegistry::registerMaterial(OMaterialAsset material) { std::unique_lock l(get().assetLock); get().registerMaterialInternal(std::move(material)); @@ -152,6 +162,9 @@ void AssetRegistry::loadAsset(ArchiveBuffer& buffer) { case SVGAsset::IDENTIFIER: asset = PSVGAsset(folder->svgs.at(name)); break; + case EnvironmentMapAsset::IDENTIFIER: + asset = PEnvironmentMapAsset(folder->envs.at(name)); + break; default: throw new std::logic_error("Unknown Identifier"); } @@ -182,13 +195,9 @@ AssetRegistry::AssetRegistry() : assetRoot(nullptr) {} AssetRegistry* AssetRegistry::getInstance() { return _instance; } -void AssetRegistry::loadRegistry() { - get().loadRegistryInternal(); -} +void AssetRegistry::loadRegistry() { get().loadRegistryInternal(); } -void AssetRegistry::saveRegistry() { - get().saveRegistryInternal(); -} +void AssetRegistry::saveRegistry() { get().saveRegistryInternal(); } AssetRegistry::AssetFolder* AssetRegistry::getOrCreateFolder(std::string_view fullPath) { AssetFolder* result = assetRoot; @@ -219,7 +228,7 @@ void AssetRegistry::initialize(const std::filesystem::path& _rootFolder, Gfx::PG } void AssetRegistry::loadRegistryInternal() { - Array> peeked; + Array> peeked; { std::unique_lock l(get().assetLock); peeked = peekFolder(assetRoot); @@ -301,13 +310,16 @@ Pair AssetRegistry::peekAsset(ArchiveBuffer& buffer) { folder->svgs[name] = new SVGAsset(folderPath, name); asset = PSVGAsset(folder->svgs[name]); break; + case EnvironmentMapAsset::IDENTIFIER: + folder->envs[name] = new EnvironmentMapAsset(folderPath, name); + asset = PEnvironmentMapAsset(folder->envs[name]); + break; default: throw new std::logic_error("Unknown Identifier"); } return {asset, std::move(buffer)}; } - void AssetRegistry::saveRegistryInternal() { saveFolder("", assetRoot); } void AssetRegistry::saveFolder(const std::filesystem::path& folderPath, AssetFolder* folder) { @@ -330,6 +342,9 @@ void AssetRegistry::saveFolder(const std::filesystem::path& folderPath, AssetFol for (const auto& [name, svg] : folder->svgs) { saveAsset(PSVGAsset(svg), SVGAsset::IDENTIFIER, folderPath, name); } + for (const auto& [name, env] : folder->envs) { + saveAsset(PEnvironmentMapAsset(env), EnvironmentMapAsset::IDENTIFIER, folderPath, name); + } for (auto& [name, child] : folder->children) { saveFolder(folderPath / name, child); } @@ -357,6 +372,11 @@ void AssetRegistry::registerSVGInternal(OSVGAsset svg) { folder->svgs[svg->getName()] = std::move(svg); } +void AssetRegistry::registerEnvironmentMapInternal(OEnvironmentMapAsset env) { + AssetFolder* folder = getOrCreateFolder(env->getFolderPath()); + folder->envs[env->getName()] = std::move(env); +} + void AssetRegistry::registerMaterialInternal(OMaterialAsset material) { AssetFolder* folder = getOrCreateFolder(material->getFolderPath()); folder->materials[material->getName()] = std::move(material); diff --git a/src/Engine/Asset/AssetRegistry.h b/src/Engine/Asset/AssetRegistry.h index e9a1424..00ad6ba 100644 --- a/src/Engine/Asset/AssetRegistry.h +++ b/src/Engine/Asset/AssetRegistry.h @@ -12,6 +12,7 @@ DECLARE_REF(TextureAsset) DECLARE_REF(FontAsset) DECLARE_REF(SVGAsset) DECLARE_REF(MeshAsset) +DECLARE_REF(EnvironmentMapAsset) DECLARE_REF(MaterialAsset) DECLARE_REF(MaterialInstanceAsset) DECLARE_NAME_REF(Gfx, Graphics) @@ -26,6 +27,7 @@ class AssetRegistry { static PTextureAsset findTexture(std::string_view folderPath, std::string_view filePath); static PFontAsset findFont(std::string_view folderPath, std::string_view name); static PSVGAsset findSVG(std::string_view folderPath, std::string_view name); + static PEnvironmentMapAsset findEnvironmentMap(std::string_view folder, std::string_view name); static PMaterialAsset findMaterial(std::string_view folderPath, std::string_view filePath); static PMaterialInstanceAsset findMaterialInstance(std::string_view folderPath, std::string_view filePath); @@ -33,6 +35,7 @@ class AssetRegistry { static void registerTexture(OTextureAsset texture); static void registerFont(OFontAsset font); static void registerSVG(OSVGAsset svg); + static void registerEnvironmentMap(OEnvironmentMapAsset env); static void registerMaterial(OMaterialAsset material); static void registerMaterialInstance(OMaterialInstanceAsset instance); @@ -52,6 +55,7 @@ class AssetRegistry { Map textures; Map fonts; Map svgs; + Map envs; Map meshes; Map materials; Map instances; @@ -75,6 +79,7 @@ class AssetRegistry { void registerTextureInternal(OTextureAsset texture); void registerFontInternal(OFontAsset font); void registerSVGInternal(OSVGAsset svg); + void registerEnvironmentMapInternal(OEnvironmentMapAsset env); void registerMaterialInternal(OMaterialAsset material); void registerMaterialInstanceInternal(OMaterialInstanceAsset instance); diff --git a/src/Engine/Asset/CMakeLists.txt b/src/Engine/Asset/CMakeLists.txt index 24ecfd4..c57326e 100644 --- a/src/Engine/Asset/CMakeLists.txt +++ b/src/Engine/Asset/CMakeLists.txt @@ -4,6 +4,8 @@ target_sources(Engine Asset.cpp AssetRegistry.h AssetRegistry.cpp + EnvironmentMapAsset.h + EnvironmentMapAsset.cpp FontAsset.h FontAsset.cpp LevelAsset.h diff --git a/src/Engine/Asset/EnvironmentMapAsset.cpp b/src/Engine/Asset/EnvironmentMapAsset.cpp new file mode 100644 index 0000000..58cdd32 --- /dev/null +++ b/src/Engine/Asset/EnvironmentMapAsset.cpp @@ -0,0 +1,13 @@ +#include "EnvironmentMapAsset.h" + +using namespace Seele; + +EnvironmentMapAsset::EnvironmentMapAsset() {} + +EnvironmentMapAsset::EnvironmentMapAsset(std::string_view folderPath, std::string_view name) : Asset(folderPath, name) {} + +EnvironmentMapAsset::~EnvironmentMapAsset() {} + +void EnvironmentMapAsset::save(ArchiveBuffer& buffer) const {} + +void EnvironmentMapAsset::load(ArchiveBuffer& buffer) {} diff --git a/src/Engine/Asset/EnvironmentMapAsset.h b/src/Engine/Asset/EnvironmentMapAsset.h new file mode 100644 index 0000000..db847c7 --- /dev/null +++ b/src/Engine/Asset/EnvironmentMapAsset.h @@ -0,0 +1,19 @@ +#pragma once +#include "Asset.h" +#include "Graphics/Texture.h" + +namespace Seele { +class EnvironmentMapAsset : public Asset { + public: + static constexpr uint64 IDENTIFIER = 0x80; + EnvironmentMapAsset(); + EnvironmentMapAsset(std::string_view folderPath, std::string_view name); + virtual ~EnvironmentMapAsset(); + virtual void save(ArchiveBuffer& buffer) const override; + virtual void load(ArchiveBuffer& buffer) override; + private: + Gfx::OTextureCube diffuseMap; + Gfx::OTextureCube specularMap; + friend class EnvironmentLoader; +}; +} // namespace Seele \ No newline at end of file diff --git a/src/Engine/Asset/LevelAsset.h b/src/Engine/Asset/LevelAsset.h index 1d34ec5..ece286c 100644 --- a/src/Engine/Asset/LevelAsset.h +++ b/src/Engine/Asset/LevelAsset.h @@ -5,7 +5,7 @@ namespace Seele { class LevelAsset : public Asset { public: - static constexpr uint64 IDENTIFIER = 0x20; + static constexpr uint64 IDENTIFIER = 0x40; LevelAsset(); LevelAsset(std::string_view folderPath, std::string_view name); virtual ~LevelAsset(); diff --git a/src/Engine/Asset/MaterialAsset.cpp b/src/Engine/Asset/MaterialAsset.cpp index 9a058a7..b90c64f 100644 --- a/src/Engine/Asset/MaterialAsset.cpp +++ b/src/Engine/Asset/MaterialAsset.cpp @@ -30,6 +30,6 @@ PMaterialInstanceAsset MaterialAsset::instantiate(const InstantiationParameter& asset->setBase(this); PMaterialInstanceAsset ref = asset; AssetRegistry::registerMaterialInstance(std::move(asset)); - AssetRegistry::saveAsset(ref, MaterialInstanceAsset::IDENTIFIER, ref->getFolderPath(), ref->getName()); + AssetRegistry::saveAsset(PAsset(ref), MaterialInstanceAsset::IDENTIFIER, ref->getFolderPath(), ref->getName()); return ref; } diff --git a/src/Engine/Graphics/Descriptor.h b/src/Engine/Graphics/Descriptor.h index 818d743..b454d9b 100644 --- a/src/Engine/Graphics/Descriptor.h +++ b/src/Engine/Graphics/Descriptor.h @@ -68,9 +68,7 @@ class DescriptorSet { virtual void updateBuffer(const std::string& name, uint32 index, Gfx::PVertexBuffer indexBuffer) = 0; virtual void updateBuffer(const std::string& name, uint32 index, Gfx::PIndexBuffer indexBuffer) = 0; virtual void updateSampler(const std::string& name, uint32 index, Gfx::PSampler samplerState) = 0; - virtual void updateTexture(const std::string& name, uint32 index, Gfx::PTexture2D texture) = 0; - virtual void updateTexture(const std::string& name, uint32 index, Gfx::PTexture3D texture) = 0; - virtual void updateTexture(const std::string& name, uint32 index, Gfx::PTextureCube texture) = 0; + virtual void updateTexture(const std::string& name, uint32 index, Gfx::PTexture texture) = 0; virtual void updateAccelerationStructure(const std::string& name, uint32 index, Gfx::PTopLevelAS as) = 0; bool operator<(PDescriptorSet other); diff --git a/src/Engine/Graphics/Graphics.h b/src/Engine/Graphics/Graphics.h index a585f45..24a8c83 100644 --- a/src/Engine/Graphics/Graphics.h +++ b/src/Engine/Graphics/Graphics.h @@ -55,8 +55,8 @@ class Graphics { virtual OWindow createWindow(const WindowCreateInfo& createInfo) = 0; virtual OViewport createViewport(PWindow owner, const ViewportCreateInfo& createInfo) = 0; - virtual ORenderPass createRenderPass(RenderTargetLayout layout, Array dependencies, PViewport renderArea, - std::string name = "") = 0; + virtual ORenderPass createRenderPass(RenderTargetLayout layout, Array dependencies, URect renderArea, + std::string name = "", Array viewMasks = {}, Array correlationMasks = {}) = 0; virtual void beginRenderPass(PRenderPass renderPass) = 0; virtual void endRenderPass() = 0; virtual void waitDeviceIdle() = 0; diff --git a/src/Engine/Graphics/RayTracing.cpp b/src/Engine/Graphics/RayTracing.cpp index 454277e..79998c9 100644 --- a/src/Engine/Graphics/RayTracing.cpp +++ b/src/Engine/Graphics/RayTracing.cpp @@ -1,5 +1,4 @@ #include "RayTracing.h" -#include "RayTracing.h" using namespace Seele::Gfx; diff --git a/src/Engine/Graphics/RayTracing.h b/src/Engine/Graphics/RayTracing.h index adcc474..ac0d89b 100644 --- a/src/Engine/Graphics/RayTracing.h +++ b/src/Engine/Graphics/RayTracing.h @@ -1,5 +1,6 @@ #pragma once #include "Resources.h" +#include "Graphics/Descriptor.h" namespace Seele { namespace Gfx { diff --git a/src/Engine/Graphics/RenderPass/BasePass.cpp b/src/Engine/Graphics/RenderPass/BasePass.cpp index 39d9458..4a47009 100644 --- a/src/Engine/Graphics/RenderPass/BasePass.cpp +++ b/src/Engine/Graphics/RenderPass/BasePass.cpp @@ -407,7 +407,7 @@ void BasePass::publishOutputs() { }); depthAttachment = - Gfx::RenderTargetAttachment(basePassDepth, Gfx::SE_IMAGE_LAYOUT_UNDEFINED, Gfx::SE_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, + Gfx::RenderTargetAttachment(Gfx::PTexture2D(basePassDepth), Gfx::SE_IMAGE_LAYOUT_UNDEFINED, Gfx::SE_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, Gfx::SE_ATTACHMENT_LOAD_OP_DONT_CARE, Gfx::SE_ATTACHMENT_STORE_OP_STORE); msDepthAttachment = @@ -472,7 +472,7 @@ void BasePass::createRenderPass() { Gfx::SE_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, }, }; - renderPass = graphics->createRenderPass(std::move(layout), std::move(dependency), viewport, "BasePass"); + renderPass = graphics->createRenderPass(std::move(layout), std::move(dependency), viewport->getRenderArea(), "BasePass"); oLightIndexList = resources->requestBuffer("LIGHTCULLING_OLIGHTLIST"); tLightIndexList = resources->requestBuffer("LIGHTCULLING_TLIGHTLIST"); oLightGrid = resources->requestTexture("LIGHTCULLING_OLIGHTGRID"); diff --git a/src/Engine/Graphics/RenderPass/CachedDepthPass.cpp b/src/Engine/Graphics/RenderPass/CachedDepthPass.cpp index 91cb737..f6f717c 100644 --- a/src/Engine/Graphics/RenderPass/CachedDepthPass.cpp +++ b/src/Engine/Graphics/RenderPass/CachedDepthPass.cpp @@ -1,5 +1,6 @@ #include "CachedDepthPass.h" #include "Graphics/Shader.h" +#include "Graphics/Pipeline.h" using namespace Seele; @@ -202,5 +203,5 @@ void CachedDepthPass::createRenderPass() { Gfx::SE_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, }, }; - renderPass = graphics->createRenderPass(std::move(layout), std::move(dependency), viewport, "CachedDepthPass"); + renderPass = graphics->createRenderPass(std::move(layout), std::move(dependency), viewport->getRenderArea(), "CachedDepthPass"); } diff --git a/src/Engine/Graphics/RenderPass/DepthCullingPass.cpp b/src/Engine/Graphics/RenderPass/DepthCullingPass.cpp index 3d72469..d111540 100644 --- a/src/Engine/Graphics/RenderPass/DepthCullingPass.cpp +++ b/src/Engine/Graphics/RenderPass/DepthCullingPass.cpp @@ -306,5 +306,5 @@ void DepthCullingPass::createRenderPass() { Gfx::SE_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, }, }; - renderPass = graphics->createRenderPass(std::move(layout), std::move(dependency), viewport, "DepthCullingPass"); + renderPass = graphics->createRenderPass(std::move(layout), std::move(dependency), viewport->getRenderArea(), "DepthCullingPass"); } diff --git a/src/Engine/Graphics/RenderPass/LightCullingPass.cpp b/src/Engine/Graphics/RenderPass/LightCullingPass.cpp index 1c999e4..4835692 100644 --- a/src/Engine/Graphics/RenderPass/LightCullingPass.cpp +++ b/src/Engine/Graphics/RenderPass/LightCullingPass.cpp @@ -3,6 +3,7 @@ #include "Component/Camera.h" #include "Graphics/Command.h" #include "Graphics/Graphics.h" +#include "Graphics/Pipeline.h" #include "Math/Vector.h" #include "RenderGraph.h" #include "Scene/Scene.h" @@ -48,8 +49,8 @@ void LightCullingPass::render() { cullingDescriptorSet->updateBuffer(TLIGHTINDEXCOUNTER_NAME, 0, tLightIndexCounter); cullingDescriptorSet->updateBuffer(OLIGHTINDEXLIST_NAME, 0, oLightIndexList); cullingDescriptorSet->updateBuffer(TLIGHTINDEXLIST_NAME, 0, tLightIndexList); - cullingDescriptorSet->updateTexture(OLIGHTGRID_NAME, 0, oLightGrid); - cullingDescriptorSet->updateTexture(TLIGHTGRID_NAME, 0, tLightGrid); + cullingDescriptorSet->updateTexture(OLIGHTGRID_NAME, 0, Gfx::PTexture2D(oLightGrid)); + cullingDescriptorSet->updateTexture(TLIGHTGRID_NAME, 0, Gfx::PTexture2D(tLightGrid)); cullingDescriptorSet->writeChanges(); Gfx::OComputeCommand computeCommand = graphics->createComputeCommand("CullingCommand"); if (getGlobals().useLightCulling) { diff --git a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp index 67a99aa..01eb342 100644 --- a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp +++ b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp @@ -151,8 +151,8 @@ void RayTracingPass::render() { }); Gfx::PDescriptorSet desc = paramsLayout->allocateDescriptorSet(); desc->updateAccelerationStructure(TLAS_NAME, 0, tlas); - desc->updateTexture(ACCUMULATOR_NAME, 0, radianceAccumulator); - desc->updateTexture(TEXTURE_NAME, 0, texture); + desc->updateTexture(ACCUMULATOR_NAME, 0, Gfx::PTexture2D(radianceAccumulator)); + desc->updateTexture(TEXTURE_NAME, 0, Gfx::PTexture2D(texture)); desc->updateBuffer(INDEXBUFFER_NAME, 0, StaticMeshVertexData::getInstance()->getIndexBuffer()); desc->updateTexture(SKYBOX_NAME, 0, skyBox); desc->updateSampler(SKYSAMPLER_NAME, 0, skyBoxSampler); diff --git a/src/Engine/Graphics/RenderPass/ToneMappingPass.cpp b/src/Engine/Graphics/RenderPass/ToneMappingPass.cpp index 6eb6f34..8b343df 100644 --- a/src/Engine/Graphics/RenderPass/ToneMappingPass.cpp +++ b/src/Engine/Graphics/RenderPass/ToneMappingPass.cpp @@ -216,7 +216,7 @@ void ToneMappingPass::createRenderPass() { .dstAccess = Gfx::SE_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, }, }; - renderPass = graphics->createRenderPass(targetLayout, dependency, viewport, "ToneMappingPass"); + renderPass = graphics->createRenderPass(targetLayout, dependency, viewport->getRenderArea(), "ToneMappingPass"); pipeline = graphics->createGraphicsPipeline(Gfx::LegacyPipelineCreateInfo{ .vertexShader = vert, .fragmentShader = frag, diff --git a/src/Engine/Graphics/RenderPass/UIPass.cpp b/src/Engine/Graphics/RenderPass/UIPass.cpp index 0a27bbb..0d64159 100644 --- a/src/Engine/Graphics/RenderPass/UIPass.cpp +++ b/src/Engine/Graphics/RenderPass/UIPass.cpp @@ -170,7 +170,7 @@ void UIPass::createRenderPass() { Gfx::SE_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, }, }; - renderPass = graphics->createRenderPass(std::move(layout), dependency, viewport, "TextPass"); + renderPass = graphics->createRenderPass(std::move(layout), dependency, viewport->getRenderArea(), "TextPass"); graphics->beginShaderCompilation(ShaderCompilationInfo{ .name = "TextVertex", diff --git a/src/Engine/Graphics/RenderTarget.cpp b/src/Engine/Graphics/RenderTarget.cpp index d2ec3e0..4651da7 100644 --- a/src/Engine/Graphics/RenderTarget.cpp +++ b/src/Engine/Graphics/RenderTarget.cpp @@ -9,6 +9,12 @@ RenderTargetAttachment::RenderTargetAttachment(PTexture2D texture, SeImageLayout : clear(), componentFlags(0), texture(texture), initialLayout(initialLayout), finalLayout(finalLayout), loadOp(loadOp), storeOp(storeOp), stencilLoadOp(stencilLoadOp), stencilStoreOp(stencilStoreOp) {} +RenderTargetAttachment::RenderTargetAttachment(PTextureCube texture, SeImageLayout initialLayout, SeImageLayout finalLayout, + SeAttachmentLoadOp loadOp, SeAttachmentStoreOp storeOp, SeAttachmentLoadOp stencilLoadOp, + SeAttachmentStoreOp stencilStoreOp) + : clear(), componentFlags(0), texture(texture), initialLayout(initialLayout), finalLayout(finalLayout), loadOp(loadOp), + storeOp(storeOp), stencilLoadOp(stencilLoadOp), stencilStoreOp(stencilStoreOp) {} + RenderTargetAttachment::RenderTargetAttachment(PViewport viewport, SeImageLayout initialLayout, SeImageLayout finalLayout, SeAttachmentLoadOp loadOp, SeAttachmentStoreOp storeOp, SeAttachmentLoadOp stencilLoadOp, SeAttachmentStoreOp stencilStoreOp) diff --git a/src/Engine/Graphics/RenderTarget.h b/src/Engine/Graphics/RenderTarget.h index 6aed4b4..2224912 100644 --- a/src/Engine/Graphics/RenderTarget.h +++ b/src/Engine/Graphics/RenderTarget.h @@ -14,16 +14,21 @@ class RenderTargetAttachment { SeAttachmentStoreOp storeOp = SE_ATTACHMENT_STORE_OP_STORE, SeAttachmentLoadOp stencilLoadOp = SE_ATTACHMENT_LOAD_OP_DONT_CARE, SeAttachmentStoreOp stencilStoreOp = SE_ATTACHMENT_STORE_OP_DONT_CARE); - + RenderTargetAttachment(PTextureCube texture, SeImageLayout initialLayout, SeImageLayout finalLayout, + SeAttachmentLoadOp loadOp = SE_ATTACHMENT_LOAD_OP_LOAD, + SeAttachmentStoreOp storeOp = SE_ATTACHMENT_STORE_OP_STORE, + SeAttachmentLoadOp stencilLoadOp = SE_ATTACHMENT_LOAD_OP_DONT_CARE, + SeAttachmentStoreOp stencilStoreOp = SE_ATTACHMENT_STORE_OP_DONT_CARE); RenderTargetAttachment(PViewport viewport, SeImageLayout initialLayout, SeImageLayout finalLayout, SeAttachmentLoadOp loadOp = SE_ATTACHMENT_LOAD_OP_LOAD, SeAttachmentStoreOp storeOp = SE_ATTACHMENT_STORE_OP_STORE, SeAttachmentLoadOp stencilLoadOp = SE_ATTACHMENT_LOAD_OP_DONT_CARE, SeAttachmentStoreOp stencilStoreOp = SE_ATTACHMENT_STORE_OP_DONT_CARE); ~RenderTargetAttachment(); - PTexture2D getTexture() const { + void setTexture(PTexture _texture) { texture = _texture; } + PTexture getTexture() const { if (viewport != nullptr) { - return viewport->getOwner()->getBackBuffer(); + return PTexture(viewport->getOwner()->getBackBuffer()); } return texture; } @@ -68,7 +73,7 @@ class RenderTargetAttachment { SeColorComponentFlags componentFlags = 0; protected: - PTexture2D texture = nullptr; + PTexture texture = nullptr; PViewport viewport = nullptr; SeImageLayout initialLayout = SE_IMAGE_LAYOUT_UNDEFINED; SeImageLayout finalLayout = SE_IMAGE_LAYOUT_UNDEFINED; @@ -103,6 +108,7 @@ class RenderPass { RenderPass(RenderPass&&) = default; RenderPass& operator=(RenderPass&&) = default; const RenderTargetLayout& getLayout() const { return layout; } + void updateColorAttachment(uint32 index, Gfx::PTextureCube attachment) { layout.colorAttachments[index].setTexture(attachment); } protected: RenderTargetLayout layout; diff --git a/src/Engine/Graphics/Vulkan/Descriptor.cpp b/src/Engine/Graphics/Vulkan/Descriptor.cpp index 975c596..0278935 100644 --- a/src/Engine/Graphics/Vulkan/Descriptor.cpp +++ b/src/Engine/Graphics/Vulkan/Descriptor.cpp @@ -312,63 +312,7 @@ void DescriptorSet::updateSampler(const std::string& mappingName, uint32 index, boundResources[binding][index] = vulkanSampler->getHandle(); } -void DescriptorSet::updateTexture(const std::string& mappingName, uint32 index, Gfx::PTexture2D texture) { - TextureBase* vulkanTexture = texture.cast().getHandle(); - const auto& map = owner->getLayout()->mappings[mappingName]; - uint32 binding = map.binding; - if (boundResources[binding][index] == vulkanTexture->getHandle()) { - return; - } - - // It is assumed that the image is in the correct layout - imageInfos.add(VkDescriptorImageInfo{ - .sampler = VK_NULL_HANDLE, - .imageView = vulkanTexture->getView(), - .imageLayout = cast(vulkanTexture->getLayout()), - }); - writeDescriptors.add(VkWriteDescriptorSet{ - .sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, - .pNext = nullptr, - .dstSet = setHandle, - .dstBinding = binding, - .dstArrayElement = index, - .descriptorCount = 1, - .descriptorType = map.type, - .pImageInfo = &imageInfos.back(), - }); - - boundResources[binding][index] = vulkanTexture->getHandle(); -} - -void DescriptorSet::updateTexture(const std::string& mappingName, uint32 index, Gfx::PTexture3D texture) { - TextureBase* vulkanTexture = texture.cast().getHandle(); - const auto& map = owner->getLayout()->mappings[mappingName]; - uint32 binding = map.binding; - if (boundResources[binding][index] == vulkanTexture->getHandle()) { - return; - } - - // It is assumed that the image is in the correct layout - imageInfos.add(VkDescriptorImageInfo{ - .sampler = VK_NULL_HANDLE, - .imageView = vulkanTexture->getView(), - .imageLayout = cast(vulkanTexture->getLayout()), - }); - writeDescriptors.add(VkWriteDescriptorSet{ - .sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, - .pNext = nullptr, - .dstSet = setHandle, - .dstBinding = binding, - .dstArrayElement = index, - .descriptorCount = 1, - .descriptorType = map.type, - .pImageInfo = &imageInfos.back(), - }); - - boundResources[binding][index] = vulkanTexture->getHandle(); -} - -void DescriptorSet::updateTexture(const std::string& mappingName, uint32 index, Gfx::PTextureCube texture) { +void DescriptorSet::updateTexture(const std::string& mappingName, uint32 index, Gfx::PTexture texture) { TextureBase* vulkanTexture = texture.cast().getHandle(); const auto& map = owner->getLayout()->mappings[mappingName]; uint32 binding = map.binding; diff --git a/src/Engine/Graphics/Vulkan/Descriptor.h b/src/Engine/Graphics/Vulkan/Descriptor.h index 5c8188c..23cf191 100644 --- a/src/Engine/Graphics/Vulkan/Descriptor.h +++ b/src/Engine/Graphics/Vulkan/Descriptor.h @@ -64,9 +64,7 @@ class DescriptorSet : public Gfx::DescriptorSet, public CommandBoundResource { virtual void updateBuffer(const std::string& name, uint32 index, Gfx::PVertexBuffer indexBuffer) override; virtual void updateBuffer(const std::string& name, uint32 index, Gfx::PIndexBuffer indexBuffer) override; virtual void updateSampler(const std::string& name, uint32 index, Gfx::PSampler samplerState) override; - virtual void updateTexture(const std::string& name, uint32 index, Gfx::PTexture2D texture) override; - virtual void updateTexture(const std::string& name, uint32 index, Gfx::PTexture3D texture) override; - virtual void updateTexture(const std::string& name, uint32 index, Gfx::PTextureCube texture) override; + virtual void updateTexture(const std::string& name, uint32 index, Gfx::PTexture texture) override; virtual void updateAccelerationStructure(const std::string& name, uint32 index, Gfx::PTopLevelAS as) override; constexpr VkDescriptorSet getHandle() const { return setHandle; } diff --git a/src/Engine/Graphics/Vulkan/Framebuffer.cpp b/src/Engine/Graphics/Vulkan/Framebuffer.cpp index 7c4f00b..564da50 100644 --- a/src/Engine/Graphics/Vulkan/Framebuffer.cpp +++ b/src/Engine/Graphics/Vulkan/Framebuffer.cpp @@ -17,35 +17,35 @@ Framebuffer::Framebuffer(PGraphics graphics, PRenderPass renderPass, Gfx::Render uint32 width = 0; uint32 height = 0; for (auto inputAttachment : layout.inputAttachments) { - PTexture2D vkInputAttachment = inputAttachment.getTexture().cast(); + PTextureBase vkInputAttachment = inputAttachment.getTexture().cast(); attachments.add(vkInputAttachment->getView()); description.inputAttachments[description.numInputAttachments++] = vkInputAttachment->getView(); width = std::max(width, vkInputAttachment->getWidth()); height = std::max(height, vkInputAttachment->getHeight()); } for (auto colorAttachment : layout.colorAttachments) { - PTexture2D vkColorAttachment = colorAttachment.getTexture().cast(); + PTextureBase vkColorAttachment = colorAttachment.getTexture().cast(); attachments.add(vkColorAttachment->getView()); description.colorAttachments[description.numColorAttachments++] = vkColorAttachment->getView(); width = std::max(width, vkColorAttachment->getWidth()); height = std::max(height, vkColorAttachment->getHeight()); } for (auto resolveAttachment : layout.resolveAttachments) { - PTexture2D vkResolveAttachment = resolveAttachment.getTexture().cast(); + PTextureBase vkResolveAttachment = resolveAttachment.getTexture().cast(); attachments.add(vkResolveAttachment->getView()); description.resolveAttachments[description.numResolveAttachments++] = vkResolveAttachment->getView(); width = std::max(width, vkResolveAttachment->getWidth()); height = std::max(height, vkResolveAttachment->getHeight()); } if (layout.depthAttachment.getTexture() != nullptr) { - PTexture2D vkDepthAttachment = layout.depthAttachment.getTexture().cast(); + PTextureBase vkDepthAttachment = layout.depthAttachment.getTexture().cast(); attachments.add(vkDepthAttachment->getView()); description.depthAttachment = vkDepthAttachment->getView(); width = std::max(width, vkDepthAttachment->getWidth()); height = std::max(height, vkDepthAttachment->getHeight()); } if (layout.depthResolveAttachment.getTexture() != nullptr) { - PTexture2D vkDepthAttachment = layout.depthResolveAttachment.getTexture().cast(); + PTextureBase vkDepthAttachment = layout.depthResolveAttachment.getTexture().cast(); attachments.add(vkDepthAttachment->getView()); description.depthResolveAttachment = vkDepthAttachment->getView(); width = std::max(width, vkDepthAttachment->getWidth()); diff --git a/src/Engine/Graphics/Vulkan/Graphics.cpp b/src/Engine/Graphics/Vulkan/Graphics.cpp index 9a1de05..a1441ed 100644 --- a/src/Engine/Graphics/Vulkan/Graphics.cpp +++ b/src/Engine/Graphics/Vulkan/Graphics.cpp @@ -172,8 +172,9 @@ Gfx::OViewport Graphics::createViewport(Gfx::PWindow owner, const ViewportCreate } Gfx::ORenderPass Graphics::createRenderPass(Gfx::RenderTargetLayout layout, Array dependencies, - Gfx::PViewport renderArea, std::string name) { - return new RenderPass(this, std::move(layout), std::move(dependencies), renderArea, name); + URect renderArea, std::string name, Array viewMasks, + Array correlationMasks) { + return new RenderPass(this, std::move(layout), std::move(dependencies), renderArea, name, std::move(viewMasks), std::move(correlationMasks)); } void Graphics::beginRenderPass(Gfx::PRenderPass renderPass) { PRenderPass rp = renderPass.cast(); @@ -824,6 +825,7 @@ void Graphics::pickPhysicalDevice() { .pNext = &features12, .storageBuffer16BitAccess = true, .uniformAndStorageBuffer16BitAccess = true, + .multiview = true, }; features = { .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, @@ -950,6 +952,7 @@ void Graphics::createDevice(GraphicsInitializer initializer) { initializer.deviceExtensions.add(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME); initializer.deviceExtensions.add(VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME); } + initializer.deviceExtensions.add(VK_KHR_MULTIVIEW_EXTENSION_NAME); #ifdef __APPLE__ initializer.deviceExtensions.add("VK_KHR_portability_subset"); #endif diff --git a/src/Engine/Graphics/Vulkan/Graphics.h b/src/Engine/Graphics/Vulkan/Graphics.h index 58cb080..74dfe70 100644 --- a/src/Engine/Graphics/Vulkan/Graphics.h +++ b/src/Engine/Graphics/Vulkan/Graphics.h @@ -35,7 +35,8 @@ class Graphics : public Gfx::Graphics { virtual Gfx::OViewport createViewport(Gfx::PWindow owner, const ViewportCreateInfo& createInfo) override; virtual Gfx::ORenderPass createRenderPass(Gfx::RenderTargetLayout layout, Array dependencies, - Gfx::PViewport renderArea, std::string name) override; + URect renderArea, std::string name, Array viewMasks, + Array correlationMasks) override; virtual void beginRenderPass(Gfx::PRenderPass renderPass) override; virtual void endRenderPass() override; virtual void waitDeviceIdle() override; diff --git a/src/Engine/Graphics/Vulkan/RenderPass.cpp b/src/Engine/Graphics/Vulkan/RenderPass.cpp index 613ddcf..a9f7c4b 100644 --- a/src/Engine/Graphics/Vulkan/RenderPass.cpp +++ b/src/Engine/Graphics/Vulkan/RenderPass.cpp @@ -6,17 +6,16 @@ #include "Resources.h" #include "Texture.h" - using namespace Seele; using namespace Seele::Vulkan; RenderPass::RenderPass(PGraphics graphics, Gfx::RenderTargetLayout _layout, Array _dependencies, - Gfx::PViewport viewport, std::string name) + URect viewport, std::string name, Array viewMasks, Array correlationMasks) : Gfx::RenderPass(std::move(_layout), std::move(_dependencies)), graphics(graphics) { - renderArea.extent.width = viewport->getWidth(); - renderArea.extent.height = viewport->getHeight(); - renderArea.offset.x = viewport->getOffsetX(); - renderArea.offset.y = viewport->getOffsetY(); + renderArea.extent.width = viewport.size.x; + renderArea.extent.height = viewport.size.y; + renderArea.offset.x = viewport.offset.x; + renderArea.offset.y = viewport.offset.y; subpassContents = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS; Array attachments; Array inputRefs; @@ -198,7 +197,18 @@ RenderPass::RenderPass(PGraphics graphics, Gfx::RenderTargetLayout _layout, Arra .dependencyCount = (uint32)dep.size(), .pDependencies = dep.data(), }; - + VkRenderPassMultiviewCreateInfo multiViewInfo; + if (!viewMasks.empty()) { + multiViewInfo = { + .sType = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, + .pNext = nullptr, + .subpassCount = 1, + .pViewMasks = viewMasks.data(), + .correlationMaskCount = (uint32)correlationMasks.size(), + .pCorrelationMasks = correlationMasks.data(), + }; + info.pNext = &multiViewInfo; + } VK_CHECK(vkCreateRenderPass2(graphics->getDevice(), &info, nullptr, &renderPass)); VkDebugUtilsObjectNameInfoEXT nameInfo = { .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, @@ -220,23 +230,23 @@ uint32 RenderPass::getFramebufferHash() { FramebufferDescription description; std::memset(&description, 0, sizeof(FramebufferDescription)); for (auto& inputAttachment : layout.inputAttachments) { - PTexture2D tex = inputAttachment.getTexture().cast(); + PTextureBase tex = inputAttachment.getTexture().cast(); description.inputAttachments[description.numInputAttachments++] = tex->getView(); } for (auto& colorAttachment : layout.colorAttachments) { - PTexture2D tex = colorAttachment.getTexture().cast(); + PTextureBase tex = colorAttachment.getTexture().cast(); description.colorAttachments[description.numColorAttachments++] = tex->getView(); } for (auto& resolveAttachment : layout.resolveAttachments) { - PTexture2D tex = resolveAttachment.getTexture().cast(); - description.resolveAttachments[description.numResolveAttachments++] = tex->getView(); + PTextureBase tex = resolveAttachment.getTexture().cast(); + description.resolveAttachments[description.numResolveAttachments++] = tex->getView(); } if (layout.depthAttachment.getTexture() != nullptr) { - PTexture2D tex = layout.depthAttachment.getTexture().cast(); + PTextureBase tex = layout.depthAttachment.getTexture().cast(); description.depthAttachment = tex->getView(); } if (layout.depthResolveAttachment.getTexture() != nullptr) { - PTexture2D tex = layout.depthResolveAttachment.getTexture().cast(); + PTextureBase tex = layout.depthResolveAttachment.getTexture().cast(); description.depthResolveAttachment = tex->getView(); } return CRC::Calculate(&description, sizeof(FramebufferDescription), CRC::CRC_32()); @@ -244,23 +254,23 @@ uint32 RenderPass::getFramebufferHash() { void RenderPass::endRenderPass() { for (auto& inputAttachment : layout.inputAttachments) { - PTexture2D tex = inputAttachment.getTexture().cast(); + PTextureBase tex = inputAttachment.getTexture().cast(); tex->setLayout(inputAttachment.getFinalLayout()); } for (auto& colorAttachment : layout.colorAttachments) { - PTexture2D tex = colorAttachment.getTexture().cast(); + PTextureBase tex = colorAttachment.getTexture().cast(); tex->setLayout(colorAttachment.getFinalLayout()); } for (auto& resolveAttachment : layout.resolveAttachments) { - PTexture2D tex = resolveAttachment.getTexture().cast(); + PTextureBase tex = resolveAttachment.getTexture().cast(); tex->setLayout(resolveAttachment.getFinalLayout()); } if (layout.depthAttachment.getTexture() != nullptr) { - PTexture2D tex = layout.depthAttachment.getTexture().cast(); + PTextureBase tex = layout.depthAttachment.getTexture().cast(); tex->setLayout(layout.depthAttachment.getFinalLayout()); } if (layout.depthResolveAttachment.getTexture() != nullptr) { - PTexture2D tex = layout.depthResolveAttachment.getTexture().cast(); + PTextureBase tex = layout.depthResolveAttachment.getTexture().cast(); tex->setLayout(layout.depthResolveAttachment.getFinalLayout()); } } diff --git a/src/Engine/Graphics/Vulkan/RenderPass.h b/src/Engine/Graphics/Vulkan/RenderPass.h index 66fbf19..ee5c5cf 100644 --- a/src/Engine/Graphics/Vulkan/RenderPass.h +++ b/src/Engine/Graphics/Vulkan/RenderPass.h @@ -6,7 +6,8 @@ namespace Seele { namespace Vulkan { class RenderPass : public Gfx::RenderPass { public: - RenderPass(PGraphics graphics, Gfx::RenderTargetLayout layout, Array dependencies, Gfx::PViewport viewport, std::string name); + RenderPass(PGraphics graphics, Gfx::RenderTargetLayout layout, Array dependencies, URect viewport, + std::string name, Array viewMasks = {}, Array correlationMasks = {}); virtual ~RenderPass(); uint32 getFramebufferHash(); void endRenderPass(); diff --git a/src/Engine/Graphics/Vulkan/Texture.cpp b/src/Engine/Graphics/Vulkan/Texture.cpp index ec16f74..9b69cae 100644 --- a/src/Engine/Graphics/Vulkan/Texture.cpp +++ b/src/Engine/Graphics/Vulkan/Texture.cpp @@ -29,10 +29,10 @@ VkImageAspectFlags getAspectFromFormat(Gfx::SeFormat format) { } TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const TextureCreateInfo& createInfo, VkImage existingImage) - : CommandBoundResource(graphics, createInfo.name), image(existingImage), owner(createInfo.sourceData.owner), width(createInfo.width), - height(createInfo.height), depth(createInfo.depth), arrayCount(createInfo.elements), layerCount(createInfo.layers), mipLevels(1), - samples(createInfo.samples), format(createInfo.format), usage(createInfo.usage), - layout(Gfx::SE_IMAGE_LAYOUT_UNDEFINED), aspect(getAspectFromFormat(createInfo.format)), ownsImage(false) { + : CommandBoundResource(graphics, createInfo.name), image(existingImage), imageView(VK_NULL_HANDLE), allocation(nullptr), + owner(createInfo.sourceData.owner), width(createInfo.width), height(createInfo.height), depth(createInfo.depth), + arrayCount(createInfo.elements), layerCount(createInfo.layers), mipLevels(1), samples(createInfo.samples), format(createInfo.format), + usage(createInfo.usage), layout(Gfx::SE_IMAGE_LAYOUT_UNDEFINED), aspect(getAspectFromFormat(createInfo.format)), ownsImage(false) { if (createInfo.useMip) { mipLevels = static_cast(std::floor(std::log2(std::max(width, height)))) + 1; } @@ -95,7 +95,8 @@ TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const .pObjectName = name.c_str(), }; vkSetDebugUtilsObjectNameEXT(graphics->getDevice(), &nameInfo); - ownsImage = true;const DataSource& sourceData = createInfo.sourceData; + ownsImage = true; + const DataSource& sourceData = createInfo.sourceData; if (sourceData.size > 0) { changeLayout(Gfx::SE_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_ACCESS_NONE, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT); @@ -117,7 +118,7 @@ TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const vmaMapMemory(graphics->getAllocator(), stagingAlloc->allocation, &data); std::memcpy(data, sourceData.data, sourceData.size); vmaUnmapMemory(graphics->getAllocator(), stagingAlloc->allocation); - + PCommandPool commandPool = graphics->getQueueCommands(owner); VkBufferImageCopy region = { .bufferOffset = 0, @@ -138,10 +139,10 @@ TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const }, .imageExtent = {.width = width, .height = height, .depth = depth}, }; - - vkCmdCopyBufferToImage(commandPool->getCommands()->getHandle(), stagingAlloc->buffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - 1, ®ion); - + + vkCmdCopyBufferToImage(commandPool->getCommands()->getHandle(), stagingAlloc->buffer, image, + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion); + commandPool->getCommands()->bindResource(PBufferAllocation(stagingAlloc)); generateMipmaps(); // When loading a texture from a file, we will almost always use it as a texture map for fragment shaders @@ -150,7 +151,7 @@ TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const graphics->getDestructionManager()->queueResourceForDestruction(std::move(stagingAlloc)); } } - + VkImageViewCreateInfo viewInfo = { .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, .pNext = nullptr, @@ -385,7 +386,10 @@ TextureBase::TextureBase(PGraphics graphics, VkImageViewType viewType, const Tex : handle(new TextureHandle(graphics, viewType, createInfo, existingImage)), graphics(graphics), initialOwner(createInfo.sourceData.owner) {} -TextureBase::~TextureBase() { graphics->getDestructionManager()->queueResourceForDestruction(std::move(handle)); } +TextureBase::~TextureBase() { + graphics->getDestructionManager()->queueResourceForDestruction(std::move(handle)); + handle = nullptr; +} void TextureBase::pipelineBarrier(VkAccessFlags srcAccess, VkPipelineStageFlags srcStage, VkAccessFlags dstAccess, VkPipelineStageFlags dstStage) { diff --git a/src/Engine/Graphics/Vulkan/Texture.h b/src/Engine/Graphics/Vulkan/Texture.h index 7865c5f..8104c72 100644 --- a/src/Engine/Graphics/Vulkan/Texture.h +++ b/src/Engine/Graphics/Vulkan/Texture.h @@ -6,15 +6,13 @@ #include "Resources.h" #include - namespace Seele { namespace Vulkan { class TextureHandle : public CommandBoundResource { public: TextureHandle(PGraphics graphics, VkImageViewType viewType, const TextureCreateInfo& createInfo, VkImage existingImage); virtual ~TextureHandle(); - void pipelineBarrier(VkAccessFlags srcAccess, VkPipelineStageFlags srcStage, VkAccessFlags dstAccess, - VkPipelineStageFlags dstStage); + void pipelineBarrier(VkAccessFlags srcAccess, VkPipelineStageFlags srcStage, VkAccessFlags dstAccess, VkPipelineStageFlags dstStage); void transferOwnership(Gfx::QueueType newOwner); void changeLayout(Gfx::SeImageLayout newLayout, VkAccessFlags srcAccess, VkPipelineStageFlags srcStage, VkAccessFlags dstAccess, VkPipelineStageFlags dstStage); @@ -37,11 +35,15 @@ class TextureHandle : public CommandBoundResource { VkImageAspectFlags aspect; uint8 ownsImage; }; -DECLARE_REF(TextureHandle) +DEFINE_REF(TextureHandle) + +DECLARE_REF(TextureBase) +DECLARE_REF(Texture2D) +DECLARE_REF(Texture3D) +DECLARE_REF(TextureCube) class TextureBase { public: - TextureBase(PGraphics graphics, VkImageViewType viewType, const TextureCreateInfo& createInfo, - VkImage existingImage = VK_NULL_HANDLE); + TextureBase(PGraphics graphics, VkImageViewType viewType, const TextureCreateInfo& createInfo, VkImage existingImage = VK_NULL_HANDLE); virtual ~TextureBase(); uint32 getWidth() const { return handle->width; } uint32 getHeight() const { return handle->height; } @@ -58,13 +60,13 @@ class TextureBase { constexpr uint32 getMipLevels() const { return handle->mipLevels; } constexpr bool isDepthStencil() const { return handle->aspect & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT); } - void pipelineBarrier(VkAccessFlags srcAccess, VkPipelineStageFlags srcStage, VkAccessFlags dstAccess, - VkPipelineStageFlags dstStage); + void pipelineBarrier(VkAccessFlags srcAccess, VkPipelineStageFlags srcStage, VkAccessFlags dstAccess, VkPipelineStageFlags dstStage); void transferOwnership(Gfx::QueueType newOwner); void changeLayout(Gfx::SeImageLayout newLayout, VkAccessFlags srcAccess, VkPipelineStageFlags srcStage, VkAccessFlags dstAccess, VkPipelineStageFlags dstStage); void download(uint32 mipLevel, uint32 arrayLayer, uint32 face, Array& buffer); void generateMipmaps(); + protected: OTextureHandle handle; // Updates via reference diff --git a/src/Engine/Graphics/Window.cpp b/src/Engine/Graphics/Window.cpp index 70bd098..34da7a2 100644 --- a/src/Engine/Graphics/Window.cpp +++ b/src/Engine/Graphics/Window.cpp @@ -8,8 +8,7 @@ Window::Window() {} Window::~Window() {} Viewport::Viewport(PWindow owner, const ViewportCreateInfo& viewportInfo) - : sizeX(std::min(owner->getFramebufferWidth(), viewportInfo.dimensions.size.x)), - sizeY(std::min(owner->getFramebufferHeight(), viewportInfo.dimensions.size.y)), offsetX(viewportInfo.dimensions.offset.x), + : sizeX(viewportInfo.dimensions.size.x), sizeY(viewportInfo.dimensions.size.y), offsetX(viewportInfo.dimensions.offset.x), offsetY(viewportInfo.dimensions.offset.y), fieldOfView(viewportInfo.fieldOfView), owner(owner) {} Viewport::~Viewport() {} diff --git a/src/Engine/Graphics/Window.h b/src/Engine/Graphics/Window.h index 11dfded..7effa72 100644 --- a/src/Engine/Graphics/Window.h +++ b/src/Engine/Graphics/Window.h @@ -53,6 +53,12 @@ class Viewport { constexpr float getContentScaleX() const { return owner->getContentScaleX(); } constexpr float getContentScaleY() const { return owner->getContentScaleY(); } Matrix4 getProjectionMatrix() const; + URect getRenderArea() const { + return URect{ + .size = {sizeX, sizeY}, + .offset = {offsetX, offsetY}, + }; + } protected: uint32 sizeX; diff --git a/src/Engine/ThreadPool.cpp b/src/Engine/ThreadPool.cpp index 205efcc..950b640 100644 --- a/src/Engine/ThreadPool.cpp +++ b/src/Engine/ThreadPool.cpp @@ -1,5 +1,6 @@ #include "ThreadPool.h" #include "MinimalEngine.h" +#include "Graphics/Texture.h" using namespace Seele; @@ -7,6 +8,8 @@ Globals globals; Globals& Seele::getGlobals() { return globals; } +void test(Gfx::PTexture base) { (void)base; } + ThreadPool::ThreadPool(uint32 numWorkers) { for (uint32 i = 0; i < numWorkers; ++i) { workers.add(std::thread(&ThreadPool::work, this)); diff --git a/tests/Engine/MinimalEngine.cpp b/tests/Engine/MinimalEngine.cpp new file mode 100644 index 0000000..76d1098 --- /dev/null +++ b/tests/Engine/MinimalEngine.cpp @@ -0,0 +1,11 @@ +#include "EngineTest.h" + +struct Foo {}; + +struct Derivate : public Foo {}; + +TEST(RefPtr, ImplicitUpcast) { + OwningPtr owner = new Derivate(); + RefPtr der = owner; + RefPtr foo = der; +} \ No newline at end of file From f21606379cf1efb59b206062a47803e59d748453 Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Sun, 6 Apr 2025 09:57:47 +0200 Subject: [PATCH 08/12] Irradiance works --- WRITEUP.md | 1 - res/shaders/BasePass.slang | 2 +- res/shaders/EnvironmentMapping.slang | 124 +++++--- res/shaders/lib/BRDF.slang | 291 ------------------- res/shaders/lib/LightEnv.slang | 305 +++++++++++++++++++- res/shaders/lib/Material.slang | 1 - res/shaders/raytracing/ClosestHit.slang | 2 +- res/shaders/raytracing/RayTracingData.slang | 1 - src/Editor/Asset/EnvironmentLoader.cpp | 94 ++++-- src/Editor/Asset/EnvironmentLoader.h | 4 +- src/Editor/main.cpp | 5 +- src/Engine/Asset/EnvironmentMapAsset.h | 6 +- src/Engine/Asset/TextureAsset.cpp | 1 - src/Engine/Graphics/Graphics.h | 2 +- src/Engine/Graphics/Initializer.h | 1 - src/Engine/Graphics/RenderPass/BasePass.cpp | 5 +- src/Engine/Graphics/RenderTarget.h | 1 - src/Engine/Graphics/Vulkan/Framebuffer.cpp | 6 + src/Engine/Graphics/Vulkan/RenderPass.cpp | 19 +- src/Engine/Graphics/Vulkan/Texture.cpp | 14 +- src/Engine/Graphics/Vulkan/Texture.h | 2 +- src/Engine/Graphics/Vulkan/Window.cpp | 1 - src/Engine/Graphics/Window.cpp | 7 +- src/Engine/Material/Material.cpp | 2 +- src/Engine/Scene/LightEnvironment.cpp | 17 +- src/Engine/Scene/LightEnvironment.h | 5 +- src/Engine/Scene/Scene.cpp | 4 +- src/Engine/Scene/Scene.h | 2 +- 28 files changed, 524 insertions(+), 401 deletions(-) delete mode 100644 res/shaders/lib/BRDF.slang diff --git a/WRITEUP.md b/WRITEUP.md index c4a01f4..7d88c34 100644 --- a/WRITEUP.md +++ b/WRITEUP.md @@ -146,7 +146,6 @@ Here is the material generated from the above JSON example: ```cpp import VERTEX_INPUT_IMPORT; import Material; -import BRDF; import MaterialParameter; struct Placeholder: IMaterial { diff --git a/res/shaders/BasePass.slang b/res/shaders/BasePass.slang index 3c7d1b1..9c7b74a 100644 --- a/res/shaders/BasePass.slang +++ b/res/shaders/BasePass.slang @@ -30,6 +30,6 @@ float4 fragmentMain(in FragmentParameter params) : SV_Target uint lightIndex = pLightCullingData.lightIndexList[startOffset + i]; result += pLightEnv.pointLights[lightIndex].illuminate(lightingParams, brdf); } - result += brdf.evaluateAmbient(); + result += brdf.evaluateAmbient(lightingParams.viewDir_WS); return float4(result, brdf.getAlpha()); } \ No newline at end of file diff --git a/res/shaders/EnvironmentMapping.slang b/res/shaders/EnvironmentMapping.slang index ba950b8..3545fc6 100644 --- a/res/shaders/EnvironmentMapping.slang +++ b/res/shaders/EnvironmentMapping.slang @@ -1,9 +1,40 @@ -struct VertexOutput -{ - float4 svPos : SV_Position; - float3 localPos : LOCALPOS; -}; const static float3 vertices[] = { + // Right + float3( 1, -1, 1), + float3( 1, 1, 1), + float3( 1, -1, -1), + + float3( 1, -1, -1), + float3( 1, 1, 1), + float3( 1, 1, -1), + + // Left + float3(-1, -1, -1), + float3(-1, 1, -1), + float3(-1, -1, 1), + + float3(-1, -1, 1), + float3(-1, 1, -1), + float3(-1, 1, 1), + + // Bottom + float3(-1, 1, 1), + float3(-1, 1, -1), + float3( 1, 1, 1), + + float3( 1, 1, 1), + float3(-1, 1, -1), + float3( 1, 1, -1), + + // Top + float3(-1, -1, -1), + float3(-1, -1, 1), + float3( 1, -1, -1), + + float3( 1, -1, -1), + float3(-1, -1, 1), + float3( 1, -1, 1), + // Back float3(-1, -1, 1), float3(-1, 1, 1), @@ -21,42 +52,6 @@ const static float3 vertices[] = { float3(-1, -1, -1), float3( 1, 1, -1), float3(-1, 1, -1), - - // Top - float3(-1, -1, -1), - float3(-1, -1, 1), - float3( 1, -1, -1), - - float3( 1, -1, -1), - float3(-1, -1, 1), - float3( 1, -1, 1), - - // Bottom - float3(-1, 1, 1), - float3(-1, 1, -1), - float3( 1, 1, 1), - - float3( 1, 1, 1), - float3(-1, 1, -1), - float3( 1, 1, -1), - - // Left - float3(-1, -1, -1), - float3(-1, 1, -1), - float3(-1, -1, 1), - - float3(-1, -1, 1), - float3(-1, 1, -1), - float3(-1, 1, 1), - - // Right - float3( 1, -1, 1), - float3( 1, 1, 1), - float3( 1, -1, -1), - - float3( 1, -1, -1), - float3( 1, 1, 1), - float3( 1, 1, -1), }; struct ViewParams @@ -65,31 +60,66 @@ struct ViewParams float4x4 projection; Texture2D equirectangularMap; SamplerState sampler; + TextureCube cubeMap; }; ParameterBlock pViewParams; - +struct VertexOutput +{ + float4 svPos : SV_Position; + float3 localPos : LOCALPOS; +}; [shader("vertex")] VertexOutput vertMain(uint vertexIndex : SV_VertexID, uint viewIndex : SV_ViewID) { VertexOutput output; - output.localPos = vertices[vertexIndex + 6 * viewIndex]; - output.svPos = mul(pViewParams.projection, mul(pViewParams.view[viewIndex], float4(vertices[vertexIndex], 1))); + output.localPos = vertices[vertexIndex]; + output.svPos = mul(pViewParams.projection, mul(pViewParams.view[viewIndex], float4(output.localPos, 1))); return output; } const static float2 invAtan = float2(0.1591, 0.3183); float2 sampleSphericalMap(float3 v) { - float2 uv = float2(atan(v.z / v.x), asin(v.y)); + float2 uv = float2(atan2(v.z, v.x), asin(v.y)); uv *= invAtan; uv += 0.5; return uv; } -[shader("fragment")] -float4 fragMain(float3 localPos : LOCALPOS) : SV_Target +[shader("pixel")] +float4 computeCubemap(float3 localPos : LOCALPOS) : SV_Target { float2 uv = sampleSphericalMap(normalize(localPos)); float3 color = pViewParams.equirectangularMap.Sample(pViewParams.sampler, uv).rgb; return float4(color, 1); +} + +static const float PI = 3.14159265359; +[shader("pixel")] +float4 convolveCubemap(float3 localPos : LOCALPOS) : SV_Target +{ + float3 normal = normalize(localPos); + + float3 irradiance = float3(0); + + float3 up = float3(0, 1, 0); + float3 right = normalize(cross(up, normal)); + up = normalize(cross(normal, right)); + + float sampleDelta = 0.025; + float nrSamples = 0.0f; + for(float phi = 0; phi < 2.0 * PI; phi += sampleDelta) + { + for(float theta = 0; theta < 0.5 * PI; theta += sampleDelta) + { + float3 tangentSample = float3(sin(theta) * cos(phi), sin(theta) * sin(phi), cos(theta)); + float3 sampleVec = tangentSample.x * right + tangentSample.y * up + tangentSample.z * normal; + + irradiance += pViewParams.cubeMap.Sample(pViewParams.sampler, sampleVec).rgb * cos(theta) * sin(theta); + nrSamples++; + } + } + irradiance = PI * irradiance * (1.0 / nrSamples); + + return float4(irradiance, 1); } \ No newline at end of file diff --git a/res/shaders/lib/BRDF.slang b/res/shaders/lib/BRDF.slang deleted file mode 100644 index 612496d..0000000 --- a/res/shaders/lib/BRDF.slang +++ /dev/null @@ -1,291 +0,0 @@ -import Common; - -interface IBRDF -{ - float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor); - [mutating] void transformNormal(float3x3 tangentToWorld); - float3 getNormal(); - float3 getBaseColor(); - float3 evaluateAmbient(); - float getAlpha(); - float3 getEmissive(); -}; - -struct Phong : IBRDF -{ - float3 baseColor; - float alpha; - float3 specular; - float3 normal; - float3 ambient; - float shininess; - float3 emissive; - - __init() - { - baseColor = float3(0, 0, 0); - alpha = 1; - specular = float3(0, 0, 0); - normal = float3(0, 0, 1); - ambient = float3(0, 0, 0); - shininess = 0; - emissive = float3(0, 0, 0); - } - - float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor) - { - float3 normal_WS = normal; - float3 nDotL = dot(normal_WS, lightDir_WS); - float3 r = 2 * (nDotL) * normal_WS - lightDir_WS; - float rDotV = dot(r, viewDir_WS); - - return lightColor * (baseColor * max(nDotL, 0.0)) + specular * pow(max(rDotV, 0.0), max(shininess, 1)); - } - [mutating] - void transformNormal(float3x3 tangentToWorld) - { - normal = normalize(mul(tangentToWorld, normal)); - } - float3 getNormal() - { - return normal; - } - float3 getBaseColor() - { - return baseColor; - } - float3 evaluateAmbient() - { - return ambient; - } - float getAlpha() - { - return alpha; - } - float3 getEmissive() - { - return emissive; - } -}; - -struct BlinnPhong : IBRDF -{ - float3 baseColor; - float alpha; - float3 specularColor; - float3 normal; - float shininess; - float3 ambient; - float3 emissive; - - __init() - { - baseColor = float3(0, 0, 0); - alpha = 1; - specularColor = float3(0, 0, 0); - normal = float3(0, 0, 1); - shininess = 4; - ambient = float3(0, 0, 0); - emissive = float3(0, 0, 0); - } - - float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor) - { - float3 normal_WS = normal; - float diffuse = max(dot(normal_WS, lightDir_WS), 0); - float3 h = normalize(lightDir_WS + viewDir_WS); - float specular = pow(saturate(dot(normal_WS, h)), shininess); - - return (baseColor * diffuse * lightColor) + (specularColor * specular); - } - [mutating] - void transformNormal(float3x3 tangentToWorld) - { - normal = normalize(mul(tangentToWorld, normal)); - } - float3 getNormal() - { - return normal; - } - float3 getBaseColor() - { - return baseColor; - } - float3 evaluateAmbient() - { - return ambient; - } - float getAlpha() - { - return alpha; - } - float3 getEmissive() - { - return emissive; - } -}; - -struct CelShading : IBRDF -{ - float3 baseColor; - float alpha; - float3 normal; - float3 emissive; - - __init() - { - baseColor = float3(0, 0, 0); - alpha = 1; - normal = float3(0, 0, 1); - emissive = float3(0, 0, 0); - } - float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor) - { - float3 normal_WS = normal; - float nDotL = dot(normal_WS, lightDir_WS); - float diffuse = max(nDotL, 0); - - float3 darkenedBase = baseColor * 0.8; - if(diffuse > 0.5) - { - return baseColor * lightColor; - } - else - { - return darkenedBase * lightColor; - } - } - [mutating] - void transformNormal(float3x3 tangentToWorld) - { - normal = normalize(mul(tangentToWorld, normal)); - } - float3 getNormal() - { - return normal; - } - float3 getBaseColor() - { - return baseColor; - } - float3 evaluateAmbient() - { - return float3(0, 0, 0); - } - float getAlpha() - { - return alpha; - } - float3 getEmissive() - { - return emissive; - } -}; - -// https://learnopengl.com/PBR/Theory -struct CookTorrance : IBRDF -{ - float3 baseColor; - float alpha; - float3 normal; - float roughness; - float metallic; - float ambientOcclusion; - float3 emissive; - - __init() - { - baseColor = float3(0, 0, 0); - alpha = 1; - normal = float3(0, 0, 1); - roughness = 0; - metallic = 0; - ambientOcclusion = 1; - emissive = float3(0, 0, 0); - } - - float TrowbridgeReitzGGX(float3 normal, float3 halfway) - { - float a_sqr = roughness * roughness; - float nDotH = max(dot(normal, halfway), 0.0); - float nDotH_sqr = nDotH * nDotH; - - float denom = (nDotH_sqr * (a_sqr - 1.0) + 1.0); - - return a_sqr / (PI * denom * denom); - } - - float SchlickGGX(float nDotV, float k) - { - return nDotV / (nDotV * (1.0 - k) + k); - } - - float Smith(float3 normal, float3 view, float3 light) - { - float k = (roughness + 1); - k = (k * k) / 8; - float nDotV = max(dot(normal, view), 0.0); - float nDotL = max(dot(normal, light), 0.0); - float ggx1 = SchlickGGX(nDotV, k); - float ggx2 = SchlickGGX(nDotL, k); - return ggx1 * ggx2; - } - - float3 FresnelSchlick(float cosTheta, float3 F0) - { - return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0); - } - - float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor) - { - float3 n = normal; - float3 h = normalize(lightDir_WS + viewDir_WS); - - float3 F0 = float3(0.04); - F0 = lerp(F0, baseColor, metallic); - - float3 F = FresnelSchlick(max(dot(h, viewDir_WS), 0.0), F0); - - float NDF = TrowbridgeReitzGGX(n, h); - float G = Smith(n, viewDir_WS, lightDir_WS); - - float3 num = NDF * G * F; - float denom = 4.0 * max(dot(n, viewDir_WS), 0.0) * max(dot(n, lightDir_WS), 0.0) + 0.000001; - float3 specular = num / denom; - - float3 k_s = F; - float3 k_d = float3(1.0) - k_s; - - k_d *= 1.0 - metallic; - - float nDotL = max(dot(n, lightDir_WS), 0.0); - - float3 result = (k_d * baseColor / PI + specular) * nDotL * lightColor; - return result * ambientOcclusion; - } - [mutating] - void transformNormal(float3x3 tangentToWorld) - { - normal = normalize(mul(tangentToWorld, normal)); - } - float3 getNormal() - { - return normal; - } - float3 getBaseColor() - { - return baseColor; - } - float3 evaluateAmbient() - { - return float3(0.03) * baseColor * ambientOcclusion; - } - float getAlpha() - { - return alpha; - } - float3 getEmissive() - { - return emissive; - } -}; diff --git a/res/shaders/lib/LightEnv.slang b/res/shaders/lib/LightEnv.slang index 393987c..ae2fdcf 100644 --- a/res/shaders/lib/LightEnv.slang +++ b/res/shaders/lib/LightEnv.slang @@ -1,5 +1,4 @@ import Common; -import BRDF; import MaterialParameter; interface ILightEnv @@ -28,7 +27,7 @@ struct PointLight : ILightEnv { float3 lightDir_WS = position_WS.xyz - params.position_WS; float d = length(lightDir_WS); - float illuminance = max(1 - d / colorRange.w, 0); + float illuminance = max(1 / (d * d), 0); return illuminance * brdf.evaluate(params.viewDir_WS, normalize(lightDir_WS), colorRange.xyz * position_WS.w); } @@ -65,6 +64,308 @@ struct LightEnv uint numDirectionalLights; StructuredBuffer pointLights; uint numPointLights; + TextureCube irradianceMap; + SamplerState irradianceSampler; }; layout(set=3) ParameterBlock pLightEnv; + + +interface IBRDF +{ + float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor); + [mutating] void transformNormal(float3x3 tangentToWorld); + float3 getNormal(); + float3 getBaseColor(); + float3 evaluateAmbient(float3 viewDir_WS); + float getAlpha(); + float3 getEmissive(); +}; + +struct Phong : IBRDF +{ + float3 baseColor; + float alpha; + float3 specular; + float3 normal; + float3 ambient; + float shininess; + float3 emissive; + + __init() + { + baseColor = float3(0, 0, 0); + alpha = 1; + specular = float3(0, 0, 0); + normal = float3(0, 0, 1); + ambient = float3(0, 0, 0); + shininess = 0; + emissive = float3(0, 0, 0); + } + + float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor) + { + float3 normal_WS = normal; + float3 nDotL = dot(normal_WS, lightDir_WS); + float3 r = 2 * (nDotL) * normal_WS - lightDir_WS; + float rDotV = dot(r, viewDir_WS); + + return lightColor * (baseColor * max(nDotL, 0.0)) + specular * pow(max(rDotV, 0.0), max(shininess, 1)); + } + [mutating] + void transformNormal(float3x3 tangentToWorld) + { + normal = normalize(mul(tangentToWorld, normal)); + } + float3 getNormal() + { + return normal; + } + float3 getBaseColor() + { + return baseColor; + } + float3 evaluateAmbient(float3 viewDir_WS) + { + return ambient; + } + float getAlpha() + { + return alpha; + } + float3 getEmissive() + { + return emissive; + } +}; + +struct BlinnPhong : IBRDF +{ + float3 baseColor; + float alpha; + float3 specularColor; + float3 normal; + float shininess; + float3 ambient; + float3 emissive; + + __init() + { + baseColor = float3(0, 0, 0); + alpha = 1; + specularColor = float3(0, 0, 0); + normal = float3(0, 0, 1); + shininess = 4; + ambient = float3(0, 0, 0); + emissive = float3(0, 0, 0); + } + + float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor) + { + float3 normal_WS = normal; + float diffuse = max(dot(normal_WS, lightDir_WS), 0); + float3 h = normalize(lightDir_WS + viewDir_WS); + float specular = pow(saturate(dot(normal_WS, h)), shininess); + + return (baseColor * diffuse * lightColor) + (specularColor * specular); + } + [mutating] + void transformNormal(float3x3 tangentToWorld) + { + normal = normalize(mul(tangentToWorld, normal)); + } + float3 getNormal() + { + return normal; + } + float3 getBaseColor() + { + return baseColor; + } + float3 evaluateAmbient(float3 viewDir_WS) + { + return ambient; + } + float getAlpha() + { + return alpha; + } + float3 getEmissive() + { + return emissive; + } +}; + +struct CelShading : IBRDF +{ + float3 baseColor; + float alpha; + float3 normal; + float3 emissive; + + __init() + { + baseColor = float3(0, 0, 0); + alpha = 1; + normal = float3(0, 0, 1); + emissive = float3(0, 0, 0); + } + float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor) + { + float3 normal_WS = normal; + float nDotL = dot(normal_WS, lightDir_WS); + float diffuse = max(nDotL, 0); + + float3 darkenedBase = baseColor * 0.8; + if(diffuse > 0.5) + { + return baseColor * lightColor; + } + else + { + return darkenedBase * lightColor; + } + } + [mutating] + void transformNormal(float3x3 tangentToWorld) + { + normal = normalize(mul(tangentToWorld, normal)); + } + float3 getNormal() + { + return normal; + } + float3 getBaseColor() + { + return baseColor; + } + float3 evaluateAmbient(float3 viewDir_WS) + { + return float3(0, 0, 0); + } + float getAlpha() + { + return alpha; + } + float3 getEmissive() + { + return emissive; + } +}; + +// https://learnopengl.com/PBR/Theory +struct CookTorrance : IBRDF +{ + float3 baseColor; + float alpha; + float3 normal; + float roughness; + float metallic; + float ambientOcclusion; + float3 emissive; + + __init() + { + baseColor = float3(0, 0, 0); + alpha = 1; + normal = float3(0, 0, 1); + roughness = 0; + metallic = 0; + ambientOcclusion = 1; + emissive = float3(0, 0, 0); + } + + float TrowbridgeReitzGGX(float3 normal, float3 halfway) + { + float a = roughness * roughness; + float a2 = a * a; + float nDotH = max(dot(normal, halfway), 0.0); + float nDotH2 = nDotH * nDotH; + + float nom = a2; + float denom = (nDotH * (a2 - 1.0) + 1.0); + + return nom / (PI * denom * denom); + } + + float SchlickGGX(float nDotV, float k) + { + return nDotV / (nDotV * (1.0 - k) + k); + } + + float Smith(float3 normal, float3 view, float3 light) + { + float k = (roughness + 1); + k = (k * k) / 8; + float nDotV = max(dot(normal, view), 0.0); + float nDotL = max(dot(normal, light), 0.0); + float ggx1 = SchlickGGX(nDotV, k); + float ggx2 = SchlickGGX(nDotL, k); + return ggx1 * ggx2; + } + + float3 FresnelSchlick(float cosTheta, float3 F0) + { + return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0); + } + + float3 evaluate(float3 viewDir_WS, float3 lightDir_WS, float3 lightColor) + { + float3 n = normal; + float3 h = normalize(lightDir_WS + viewDir_WS); + + float3 F0 = float3(0.04); + F0 = lerp(F0, baseColor, metallic); + + float NDF = TrowbridgeReitzGGX(n, h); + float G = Smith(n, viewDir_WS, lightDir_WS); + float3 F = FresnelSchlick(max(dot(h, viewDir_WS), 0.0), F0); + + float3 num = NDF * G * F; + float denom = 4.0 * max(dot(n, viewDir_WS), 0.0) * max(dot(n, lightDir_WS), 0.0) + 0.000001; + float3 specular = num / denom; + + float3 k_s = F; + float3 k_d = float3(1.0) - k_s; + + k_d *= 1.0 - metallic; + + float nDotL = max(dot(n, lightDir_WS), 0.0); + + float3 result = (k_d * baseColor / PI + specular) * nDotL * lightColor; + return result; + } + [mutating] + void transformNormal(float3x3 tangentToWorld) + { + normal = normalize(mul(tangentToWorld, normal)); + } + float3 getNormal() + { + return normal; + } + float3 getBaseColor() + { + return baseColor; + } + float3 evaluateAmbient(float3 viewDir_WS) + { + float3 F0 = float3(0.04); + F0 = lerp(F0, baseColor, metallic); + float3 k_s = FresnelSchlick(max(dot(normal, viewDir_WS), 0.0), F0); + float3 k_d = 1 - k_s; + k_d *= 1 - metallic; + float3 irradiance = pLightEnv.irradianceMap.Sample(pLightEnv.irradianceSampler, normal).rgb; + float3 diffuse = irradiance * baseColor; + return (k_d * diffuse) * ambientOcclusion; + } + float getAlpha() + { + return alpha; + } + float3 getEmissive() + { + return emissive; + } +}; + diff --git a/res/shaders/lib/Material.slang b/res/shaders/lib/Material.slang index a3bcd2e..6669f0a 100644 --- a/res/shaders/lib/Material.slang +++ b/res/shaders/lib/Material.slang @@ -1,5 +1,4 @@ import Common; -import BRDF; import MaterialParameter; import Scene; diff --git a/res/shaders/raytracing/ClosestHit.slang b/res/shaders/raytracing/ClosestHit.slang index aa595ce..e0c71d4 100644 --- a/res/shaders/raytracing/ClosestHit.slang +++ b/res/shaders/raytracing/ClosestHit.slang @@ -147,7 +147,7 @@ void closestHit(inout RayPayload hitValue, in BuiltInTriangleIntersectionAttribu if (rnd.z >= p) return; } - hitValue.light += brdf.getEmissive() * hitValue.emissive + brdf.evaluateAmbient(); + hitValue.light += brdf.getEmissive() * hitValue.emissive + brdf.evaluateAmbient(lightingParams.viewDir_WS); //-- Ideal DIFFUSE reflection //if(bool(useNEE)) { // accrad += nextEventEstimation(accmat, r.d, params.x, params.nl, kt, false, rnd); diff --git a/res/shaders/raytracing/RayTracingData.slang b/res/shaders/raytracing/RayTracingData.slang index 3d5acdc..276b97a 100644 --- a/res/shaders/raytracing/RayTracingData.slang +++ b/res/shaders/raytracing/RayTracingData.slang @@ -1,5 +1,4 @@ import MaterialParameter; -import BRDF; struct RayTracingParams { diff --git a/src/Editor/Asset/EnvironmentLoader.cpp b/src/Editor/Asset/EnvironmentLoader.cpp index 1b90cfe..5127dfb 100644 --- a/src/Editor/Asset/EnvironmentLoader.cpp +++ b/src/Editor/Asset/EnvironmentLoader.cpp @@ -14,6 +14,20 @@ EnvironmentLoader::EnvironmentLoader(Gfx::PGraphics graphics) : graphics(graphic .offset = {0, 0}, }, }); + convolutionViewport = graphics->createViewport(nullptr, ViewportCreateInfo{ + .dimensions = + { + .size = {32, 32}, + .offset = {0, 0}, + }, + }); + cubeSampler = graphics->createSampler({ + .magFilter = Gfx::SE_FILTER_LINEAR, + .minFilter = Gfx::SE_FILTER_LINEAR, + .addressModeU = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + .addressModeV = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + .addressModeW = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + }); cubeRenderLayout = graphics->createDescriptorLayout("pViewParams"); cubeRenderLayout->addDescriptorBinding(Gfx::DescriptorBinding{ @@ -32,6 +46,10 @@ EnvironmentLoader::EnvironmentLoader(Gfx::PGraphics graphics) : graphics(graphic .name = "sampler", .descriptorType = Gfx::SE_DESCRIPTOR_TYPE_SAMPLER, }); + cubeRenderLayout->addDescriptorBinding(Gfx::DescriptorBinding{ + .name = "cubeMap", + .descriptorType = Gfx::SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE, + }); cubeRenderLayout->create(); cubePipelineLayout = graphics->createPipelineLayout("CubeRenderLayout"); @@ -43,7 +61,8 @@ EnvironmentLoader::EnvironmentLoader(Gfx::PGraphics graphics) : graphics(graphic .entryPoints = { {"vertMain", "EnvironmentMapping"}, - {"fragMain", "EnvironmentMapping"}, + {"computeCubemap", "EnvironmentMapping"}, + {"convolveCubemap", "EnvironmentMapping"}, }, .rootSignature = cubePipelineLayout, }); @@ -51,14 +70,7 @@ EnvironmentLoader::EnvironmentLoader(Gfx::PGraphics graphics) : graphics(graphic cubeRenderVertex = graphics->createVertexShader({0}); cubeRenderFrag = graphics->createFragmentShader({1}); - - cubeSampler = graphics->createSampler({ - .magFilter = Gfx::SE_FILTER_LINEAR, - .minFilter = Gfx::SE_FILTER_LINEAR, - .addressModeU = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, - .addressModeV = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, - .addressModeW = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, - }); + convolutionFrag = graphics->createFragmentShader({2}); } EnvironmentLoader::~EnvironmentLoader() {} @@ -93,12 +105,12 @@ void EnvironmentLoader::import(EnvironmentImportArgs args, PEnvironmentMapAsset }); Matrix4 captureProjection = glm::perspective(glm::radians(90.0f), 1.0f, 0.1f, 10.0f); Matrix4 captureViews[] = { + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(1.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f)), + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(-1.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f)), + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f), Vector(0.0f, 0.0f, 1.0f)), + glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, -1.0f, 0.0f), Vector(0.0f, 0.0f, -1.0f)), glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, 0.0f, 1.0f), Vector(0.0f, 1.0f, 0.0f)), glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, 0.0f, -1.0f), Vector(0.0f, 1.0f, 0.0f)), - glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, -1.0f, 0.0f), Vector(1.0f, 0.0f, 0.0f)), - glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f), Vector(1.0f, 0.0f, 0.0f)), - glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(-1.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f)), - glm::lookAt(Vector(0.0f, 0.0f, 0.0f), Vector(1.0f, 0.0f, 0.0f), Vector(0.0f, 1.0f, 0.0f)), }; Gfx::PDescriptorSet set = cubeRenderLayout->allocateDescriptorSet(); set->updateConstants("view", 0, captureViews); @@ -110,9 +122,9 @@ void EnvironmentLoader::import(EnvironmentImportArgs args, PEnvironmentMapAsset .format = Gfx::SE_FORMAT_R32G32B32A32_SFLOAT, .width = 1024, .height = 1024, - .usage = Gfx::SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, + .usage = Gfx::SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | Gfx::SE_IMAGE_USAGE_SAMPLED_BIT, }); - cubeRenderPass = graphics->createRenderPass( + Gfx::ORenderPass cubeRenderPass = graphics->createRenderPass( Gfx::RenderTargetLayout{ .colorAttachments = {Gfx::RenderTargetAttachment(cubeMap, Gfx::SE_IMAGE_LAYOUT_UNDEFINED, Gfx::SE_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, @@ -139,9 +151,57 @@ void EnvironmentLoader::import(EnvironmentImportArgs args, PEnvironmentMapAsset renderCommand->bindPipeline(cubeRenderPipeline); renderCommand->bindDescriptor({set}); renderCommand->setViewport(cubeRenderViewport); - renderCommand->draw(6, 1, 0, 0); + renderCommand->draw(36, 1, 0, 0); graphics->executeCommands(std::move(renderCommand)); graphics->endRenderPass(); + + Gfx::OTextureCube convolutedMap = graphics->createTextureCube(TextureCreateInfo{ + .format = Gfx::SE_FORMAT_R32G32B32A32_SFLOAT, + .width = 32, + .height = 32, + .usage = Gfx::SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, + }); + Gfx::ORenderPass convolutionPass = graphics->createRenderPass( + Gfx::RenderTargetLayout{ + .colorAttachments = {Gfx::RenderTargetAttachment(convolutedMap, Gfx::SE_IMAGE_LAYOUT_UNDEFINED, + Gfx::SE_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + Gfx::SE_ATTACHMENT_LOAD_OP_DONT_CARE, Gfx::SE_ATTACHMENT_STORE_OP_STORE)}, + }, + {}, + URect{ + .size = {32, 32}, + .offset = {0, 0}, + }, + "EnvironmentRenderPass", {0b111111}, {0b111111}); + convolutionPipeline = graphics->createGraphicsPipeline(Gfx::LegacyPipelineCreateInfo{ + .vertexShader = cubeRenderVertex, + .fragmentShader = convolutionFrag, + .renderPass = convolutionPass, + .pipelineLayout = cubePipelineLayout, + .colorBlend = + { + .attachmentCount = 1, + }, + }); + + set = cubeRenderLayout->allocateDescriptorSet(); + set->updateConstants("view", 0, captureViews); + set->updateConstants("projection", 0, &captureProjection); + set->updateSampler("sampler", 0, cubeSampler); + set->updateTexture("cubeMap", 0, Gfx::PTextureCube(cubeMap)); + set->writeChanges(); + + graphics->beginRenderPass(convolutionPass); + Gfx::ORenderCommand cmd = graphics->createRenderCommand("ConvolutionPass"); + cmd->bindPipeline(convolutionPipeline); + cmd->bindDescriptor({set}); + cmd->setViewport(convolutionViewport); + cmd->draw(36, 1, 0, 0); + graphics->executeCommands(std::move(cmd)); + graphics->endRenderPass(); + + asset->skybox = std::move(cubeMap); + asset->irradianceMap = std::move(convolutedMap); + asset->specularMap = std::move(cubeMap); graphics->waitDeviceIdle(); - asset->diffuseMap = std::move(cubeMap); } diff --git a/src/Editor/Asset/EnvironmentLoader.h b/src/Editor/Asset/EnvironmentLoader.h index 74792d9..968b018 100644 --- a/src/Editor/Asset/EnvironmentLoader.h +++ b/src/Editor/Asset/EnvironmentLoader.h @@ -25,8 +25,10 @@ class EnvironmentLoader { Gfx::ODescriptorLayout cubeRenderLayout; Gfx::OPipelineLayout cubePipelineLayout; Gfx::PGraphicsPipeline cubeRenderPipeline; - Gfx::ORenderPass cubeRenderPass; + Gfx::OFragmentShader convolutionFrag; + Gfx::PGraphicsPipeline convolutionPipeline; Gfx::OViewport cubeRenderViewport; + Gfx::OViewport convolutionViewport; Gfx::OSampler cubeSampler; }; } \ No newline at end of file diff --git a/src/Editor/main.cpp b/src/Editor/main.cpp index 90e3841..2e425cf 100644 --- a/src/Editor/main.cpp +++ b/src/Editor/main.cpp @@ -100,8 +100,11 @@ int main() { .filePath = sourcePath / "import/textures/skybox.jpg", .type = TextureImportType::TEXTURE_CUBEMAP, }); + //AssetImporter::importEnvironmentMap(EnvironmentImportArgs{ + // .filePath = sourcePath / "import/models/main1_sponza/textures/kloppenheim_05_4k.hdr", + //}); AssetImporter::importEnvironmentMap(EnvironmentImportArgs{ - .filePath = sourcePath / "import/models/main1_sponza/textures/kloppenheim_05_4k.hdr", + .filePath = sourcePath / "import/textures/newport_loft.hdr", }); // AssetImporter::importMesh(MeshImportArgs{ // .filePath = sourcePath / "import/models/ship.fbx", diff --git a/src/Engine/Asset/EnvironmentMapAsset.h b/src/Engine/Asset/EnvironmentMapAsset.h index db847c7..2f3116a 100644 --- a/src/Engine/Asset/EnvironmentMapAsset.h +++ b/src/Engine/Asset/EnvironmentMapAsset.h @@ -11,8 +11,12 @@ class EnvironmentMapAsset : public Asset { virtual ~EnvironmentMapAsset(); virtual void save(ArchiveBuffer& buffer) const override; virtual void load(ArchiveBuffer& buffer) override; + Gfx::PTextureCube getSkybox() const { return skybox; } + Gfx::PTextureCube getIrradianceMap() const { return irradianceMap; } + Gfx::PTextureCube getSpecularMap() const { return specularMap; } private: - Gfx::OTextureCube diffuseMap; + Gfx::OTextureCube skybox; + Gfx::OTextureCube irradianceMap; Gfx::OTextureCube specularMap; friend class EnvironmentLoader; }; diff --git a/src/Engine/Asset/TextureAsset.cpp b/src/Engine/Asset/TextureAsset.cpp index c238606..88118c5 100644 --- a/src/Engine/Asset/TextureAsset.cpp +++ b/src/Engine/Asset/TextureAsset.cpp @@ -45,7 +45,6 @@ void TextureAsset::load(ArchiveBuffer& buffer) { .width = ktxHandle->baseWidth, .height = ktxHandle->baseHeight, .depth = ktxHandle->baseDepth, - .layers = ktxHandle->numFaces, .elements = ktxHandle->numLayers, .useMip = true, .usage = Gfx::SE_IMAGE_USAGE_SAMPLED_BIT, diff --git a/src/Engine/Graphics/Graphics.h b/src/Engine/Graphics/Graphics.h index 24a8c83..b673a91 100644 --- a/src/Engine/Graphics/Graphics.h +++ b/src/Engine/Graphics/Graphics.h @@ -56,7 +56,7 @@ class Graphics { virtual OViewport createViewport(PWindow owner, const ViewportCreateInfo& createInfo) = 0; virtual ORenderPass createRenderPass(RenderTargetLayout layout, Array dependencies, URect renderArea, - std::string name = "", Array viewMasks = {}, Array correlationMasks = {}) = 0; + std::string name = "", Array viewMasks = {0}, Array correlationMasks = {}) = 0; virtual void beginRenderPass(PRenderPass renderPass) = 0; virtual void endRenderPass() = 0; virtual void waitDeviceIdle() = 0; diff --git a/src/Engine/Graphics/Initializer.h b/src/Engine/Graphics/Initializer.h index 4889cb8..9eb4bfc 100644 --- a/src/Engine/Graphics/Initializer.h +++ b/src/Engine/Graphics/Initializer.h @@ -49,7 +49,6 @@ struct TextureCreateInfo { uint32 width = 1; uint32 height = 1; uint32 depth = 1; - uint32 layers = 1; uint32 elements = 1; uint32 samples = 1; bool useMip = false; diff --git a/src/Engine/Graphics/RenderPass/BasePass.cpp b/src/Engine/Graphics/RenderPass/BasePass.cpp index 4a47009..1ffd5f9 100644 --- a/src/Engine/Graphics/RenderPass/BasePass.cpp +++ b/src/Engine/Graphics/RenderPass/BasePass.cpp @@ -1,6 +1,7 @@ #include "BasePass.h" #include "Actor/CameraActor.h" #include "Asset/AssetRegistry.h" +#include "Asset/EnvironmentMapAsset.h" #include "Component/Camera.h" #include "Component/Mesh.h" #include "Component/WaterTile.h" @@ -78,8 +79,8 @@ BasePass::BasePass(Gfx::PGraphics graphics, PScene scene) : RenderPass(graphics) }); } skybox = Seele::Component::Skybox{ - .day = AssetRegistry::findTexture("", "skybox")->getTexture().cast(), - .night = AssetRegistry::findTexture("", "skybox")->getTexture().cast(), + .day = scene->getLightEnvironment()->getEnvironmentMap()->getIrradianceMap(), + .night = scene->getLightEnvironment()->getEnvironmentMap()->getIrradianceMap(), .fogColor = Vector(0.1, 0.1, 0.8), .blendFactor = 0, }; diff --git a/src/Engine/Graphics/RenderTarget.h b/src/Engine/Graphics/RenderTarget.h index 2224912..376e87b 100644 --- a/src/Engine/Graphics/RenderTarget.h +++ b/src/Engine/Graphics/RenderTarget.h @@ -108,7 +108,6 @@ class RenderPass { RenderPass(RenderPass&&) = default; RenderPass& operator=(RenderPass&&) = default; const RenderTargetLayout& getLayout() const { return layout; } - void updateColorAttachment(uint32 index, Gfx::PTextureCube attachment) { layout.colorAttachments[index].setTexture(attachment); } protected: RenderTargetLayout layout; diff --git a/src/Engine/Graphics/Vulkan/Framebuffer.cpp b/src/Engine/Graphics/Vulkan/Framebuffer.cpp index 564da50..3ef4275 100644 --- a/src/Engine/Graphics/Vulkan/Framebuffer.cpp +++ b/src/Engine/Graphics/Vulkan/Framebuffer.cpp @@ -16,12 +16,14 @@ Framebuffer::Framebuffer(PGraphics graphics, PRenderPass renderPass, Gfx::Render Array attachments; uint32 width = 0; uint32 height = 0; + uint32 layers = 0; for (auto inputAttachment : layout.inputAttachments) { PTextureBase vkInputAttachment = inputAttachment.getTexture().cast(); attachments.add(vkInputAttachment->getView()); description.inputAttachments[description.numInputAttachments++] = vkInputAttachment->getView(); width = std::max(width, vkInputAttachment->getWidth()); height = std::max(height, vkInputAttachment->getHeight()); + layers = std::max(layers, vkInputAttachment->getNumLayers()); } for (auto colorAttachment : layout.colorAttachments) { PTextureBase vkColorAttachment = colorAttachment.getTexture().cast(); @@ -29,6 +31,7 @@ Framebuffer::Framebuffer(PGraphics graphics, PRenderPass renderPass, Gfx::Render description.colorAttachments[description.numColorAttachments++] = vkColorAttachment->getView(); width = std::max(width, vkColorAttachment->getWidth()); height = std::max(height, vkColorAttachment->getHeight()); + layers = std::max(layers, vkColorAttachment->getNumLayers()); } for (auto resolveAttachment : layout.resolveAttachments) { PTextureBase vkResolveAttachment = resolveAttachment.getTexture().cast(); @@ -36,6 +39,7 @@ Framebuffer::Framebuffer(PGraphics graphics, PRenderPass renderPass, Gfx::Render description.resolveAttachments[description.numResolveAttachments++] = vkResolveAttachment->getView(); width = std::max(width, vkResolveAttachment->getWidth()); height = std::max(height, vkResolveAttachment->getHeight()); + layers = std::max(layers, vkResolveAttachment->getNumLayers()); } if (layout.depthAttachment.getTexture() != nullptr) { PTextureBase vkDepthAttachment = layout.depthAttachment.getTexture().cast(); @@ -43,6 +47,7 @@ Framebuffer::Framebuffer(PGraphics graphics, PRenderPass renderPass, Gfx::Render description.depthAttachment = vkDepthAttachment->getView(); width = std::max(width, vkDepthAttachment->getWidth()); height = std::max(height, vkDepthAttachment->getHeight()); + layers = std::max(layers, vkDepthAttachment->getNumLayers()); } if (layout.depthResolveAttachment.getTexture() != nullptr) { PTextureBase vkDepthAttachment = layout.depthResolveAttachment.getTexture().cast(); @@ -50,6 +55,7 @@ Framebuffer::Framebuffer(PGraphics graphics, PRenderPass renderPass, Gfx::Render description.depthResolveAttachment = vkDepthAttachment->getView(); width = std::max(width, vkDepthAttachment->getWidth()); height = std::max(height, vkDepthAttachment->getHeight()); + layers = std::max(layers, vkDepthAttachment->getNumLayers()); } VkFramebufferCreateInfo createInfo = { .sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, diff --git a/src/Engine/Graphics/Vulkan/RenderPass.cpp b/src/Engine/Graphics/Vulkan/RenderPass.cpp index a9f7c4b..738fa08 100644 --- a/src/Engine/Graphics/Vulkan/RenderPass.cpp +++ b/src/Engine/Graphics/Vulkan/RenderPass.cpp @@ -9,8 +9,8 @@ using namespace Seele; using namespace Seele::Vulkan; -RenderPass::RenderPass(PGraphics graphics, Gfx::RenderTargetLayout _layout, Array _dependencies, - URect viewport, std::string name, Array viewMasks, Array correlationMasks) +RenderPass::RenderPass(PGraphics graphics, Gfx::RenderTargetLayout _layout, Array _dependencies, URect viewport, + std::string name, Array viewMasks, Array correlationMasks) : Gfx::RenderPass(std::move(_layout), std::move(_dependencies)), graphics(graphics) { renderArea.extent.width = viewport.size.x; renderArea.extent.height = viewport.size.y; @@ -166,6 +166,7 @@ RenderPass::RenderPass(PGraphics graphics, Gfx::RenderTargetLayout _layout, Arra .pNext = layout.depthResolveAttachment.getTexture() != nullptr ? &depthResolve : nullptr, .flags = 0, .pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS, + .viewMask = viewMasks[0], .inputAttachmentCount = (uint32)inputRefs.size(), .pInputAttachments = inputRefs.data(), .colorAttachmentCount = (uint32)colorRefs.size(), @@ -196,19 +197,9 @@ RenderPass::RenderPass(PGraphics graphics, Gfx::RenderTargetLayout _layout, Arra .pSubpasses = &subPassDesc, .dependencyCount = (uint32)dep.size(), .pDependencies = dep.data(), + .correlatedViewMaskCount = (uint32)correlationMasks.size(), + .pCorrelatedViewMasks = correlationMasks.data(), }; - VkRenderPassMultiviewCreateInfo multiViewInfo; - if (!viewMasks.empty()) { - multiViewInfo = { - .sType = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, - .pNext = nullptr, - .subpassCount = 1, - .pViewMasks = viewMasks.data(), - .correlationMaskCount = (uint32)correlationMasks.size(), - .pCorrelationMasks = correlationMasks.data(), - }; - info.pNext = &multiViewInfo; - } VK_CHECK(vkCreateRenderPass2(graphics->getDevice(), &info, nullptr, &renderPass)); VkDebugUtilsObjectNameInfoEXT nameInfo = { .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, diff --git a/src/Engine/Graphics/Vulkan/Texture.cpp b/src/Engine/Graphics/Vulkan/Texture.cpp index 9b69cae..d70f52a 100644 --- a/src/Engine/Graphics/Vulkan/Texture.cpp +++ b/src/Engine/Graphics/Vulkan/Texture.cpp @@ -31,7 +31,7 @@ VkImageAspectFlags getAspectFromFormat(Gfx::SeFormat format) { TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const TextureCreateInfo& createInfo, VkImage existingImage) : CommandBoundResource(graphics, createInfo.name), image(existingImage), imageView(VK_NULL_HANDLE), allocation(nullptr), owner(createInfo.sourceData.owner), width(createInfo.width), height(createInfo.height), depth(createInfo.depth), - arrayCount(createInfo.elements), layerCount(createInfo.layers), mipLevels(1), samples(createInfo.samples), format(createInfo.format), + layerCount(createInfo.elements), mipLevels(1), samples(createInfo.samples), format(createInfo.format), usage(createInfo.usage), layout(Gfx::SE_IMAGE_LAYOUT_UNDEFINED), aspect(getAspectFromFormat(createInfo.format)), ownsImage(false) { if (createInfo.useMip) { mipLevels = static_cast(std::floor(std::log2(std::max(width, height)))) + 1; @@ -55,7 +55,7 @@ TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY: type = VK_IMAGE_TYPE_2D; flags = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT; - layerCount = 6 * arrayCount; + layerCount = 6 * layerCount; break; default: break; @@ -76,7 +76,7 @@ TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const .depth = depth, }, .mipLevels = mipLevels, - .arrayLayers = arrayCount * layerCount, + .arrayLayers = layerCount, .samples = (VkSampleCountFlagBits)samples, .tiling = VK_IMAGE_TILING_OPTIMAL, .usage = usage, @@ -129,7 +129,7 @@ TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, .mipLevel = 0, .baseArrayLayer = 0, - .layerCount = arrayCount * layerCount, + .layerCount = layerCount, }, .imageOffset = { @@ -163,7 +163,7 @@ TextureHandle::TextureHandle(PGraphics graphics, VkImageViewType viewType, const { .aspectMask = aspect, .levelCount = mipLevels, - .layerCount = layerCount * arrayCount, + .layerCount = layerCount, }, }; @@ -195,7 +195,7 @@ void TextureHandle::pipelineBarrier(VkAccessFlags srcAccess, VkPipelineStageFlag .baseMipLevel = 0, .levelCount = mipLevels, .baseArrayLayer = 0, - .layerCount = layerCount * arrayCount, + .layerCount = layerCount, }, }; PCommand command = graphics->getQueueCommands(owner)->getCommands(); @@ -223,7 +223,7 @@ void TextureHandle::transferOwnership(Gfx::QueueType newOwner) { .baseMipLevel = 0, .levelCount = mipLevels, .baseArrayLayer = 0, - .layerCount = arrayCount, + .layerCount = layerCount, }, }; PCommandPool sourcePool = graphics->getQueueCommands(owner); diff --git a/src/Engine/Graphics/Vulkan/Texture.h b/src/Engine/Graphics/Vulkan/Texture.h index 8104c72..acd998b 100644 --- a/src/Engine/Graphics/Vulkan/Texture.h +++ b/src/Engine/Graphics/Vulkan/Texture.h @@ -25,7 +25,6 @@ class TextureHandle : public CommandBoundResource { uint32 width; uint32 height; uint32 depth; - uint32 arrayCount; uint32 layerCount; uint32 mipLevels; uint32 samples; @@ -48,6 +47,7 @@ class TextureBase { uint32 getWidth() const { return handle->width; } uint32 getHeight() const { return handle->height; } uint32 getDepth() const { return handle->depth; } + uint32 getNumLayers() const { return handle->layerCount; } PTextureHandle getHandle() const { return handle; } VkImage getImage() const { return handle->image; }; VkImageView getView() const { return handle->imageView; }; diff --git a/src/Engine/Graphics/Vulkan/Window.cpp b/src/Engine/Graphics/Vulkan/Window.cpp index a5f0e18..300ecbd 100644 --- a/src/Engine/Graphics/Vulkan/Window.cpp +++ b/src/Engine/Graphics/Vulkan/Window.cpp @@ -276,7 +276,6 @@ void Window::createSwapChain() { .width = extent.width, .height = extent.height, .depth = 1, - .layers = 1, .elements = 1, .samples = 1, .usage = Gfx::SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | Gfx::SE_IMAGE_USAGE_TRANSFER_DST_BIT, diff --git a/src/Engine/Graphics/Window.cpp b/src/Engine/Graphics/Window.cpp index 34da7a2..b33cc6d 100644 --- a/src/Engine/Graphics/Window.cpp +++ b/src/Engine/Graphics/Window.cpp @@ -9,7 +9,12 @@ Window::~Window() {} Viewport::Viewport(PWindow owner, const ViewportCreateInfo& viewportInfo) : sizeX(viewportInfo.dimensions.size.x), sizeY(viewportInfo.dimensions.size.y), offsetX(viewportInfo.dimensions.offset.x), - offsetY(viewportInfo.dimensions.offset.y), fieldOfView(viewportInfo.fieldOfView), owner(owner) {} + offsetY(viewportInfo.dimensions.offset.y), fieldOfView(viewportInfo.fieldOfView), owner(owner) { + if (owner != nullptr) { + sizeX = std::min(owner->getFramebufferWidth(), sizeX); + sizeY = std::min(owner->getFramebufferHeight(), sizeY); + } +} Viewport::~Viewport() {} diff --git a/src/Engine/Material/Material.cpp b/src/Engine/Material/Material.cpp index f317628..9001d87 100644 --- a/src/Engine/Material/Material.cpp +++ b/src/Engine/Material/Material.cpp @@ -158,8 +158,8 @@ void Material::load(ArchiveBuffer& buffer) { void Material::compile() { std::ofstream codeStream("./shaders/generated/" + materialName + ".slang"); - codeStream << "import BRDF;\n"; codeStream << "import MaterialParameter;\n"; + codeStream << "import LightEnv;\n"; codeStream << "import Material;\n"; codeStream << "struct Material{\n"; codeStream << "\ttypedef " << brdf.profile << " BRDF;\n"; diff --git a/src/Engine/Scene/LightEnvironment.cpp b/src/Engine/Scene/LightEnvironment.cpp index 854f141..fbbd1a6 100644 --- a/src/Engine/Scene/LightEnvironment.cpp +++ b/src/Engine/Scene/LightEnvironment.cpp @@ -1,9 +1,12 @@ #include "LightEnvironment.h" +#include "Asset/EnvironmentMapAsset.h" #include "Graphics/Graphics.h" +#include "Asset/AssetRegistry.h" using namespace Seele; -LightEnvironment::LightEnvironment(Gfx::PGraphics graphics) : graphics(graphics) { +LightEnvironment::LightEnvironment(Gfx::PGraphics graphics) + : graphics(graphics), environment(AssetRegistry::findEnvironmentMap("", "newport_loft")) { layout = graphics->createDescriptorLayout("pLightEnv"); layout->addDescriptorBinding(Gfx::DescriptorBinding{ .name = "directionalLights", @@ -21,6 +24,10 @@ LightEnvironment::LightEnvironment(Gfx::PGraphics graphics) : graphics(graphics) .name = "numPointLights", .uniformLength = sizeof(uint32), }); + layout->addDescriptorBinding(Gfx::DescriptorBinding{ + .name = "irradianceMap", + .descriptorType = Gfx::SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE, + }); layout->create(); directionalLights = graphics->createShaderBuffer(ShaderBufferCreateInfo{ @@ -29,6 +36,13 @@ LightEnvironment::LightEnvironment(Gfx::PGraphics graphics) : graphics(graphics) pointLights = graphics->createShaderBuffer(ShaderBufferCreateInfo{ .name = "PointLights", }); + environmentSampler = graphics->createSampler({ + .magFilter = Gfx::SE_FILTER_LINEAR, + .minFilter = Gfx::SE_FILTER_LINEAR, + .addressModeU = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + .addressModeV = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + .addressModeW = Gfx::SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + }); } LightEnvironment::~LightEnvironment() {} @@ -63,6 +77,7 @@ void LightEnvironment::commit() { set->updateBuffer("pointLights", 0, pointLights); set->updateConstants("numDirectionalLights", 0, &numDirectionalLights); set->updateBuffer("directionalLights", 0, directionalLights); + set->updateTexture("irradianceMap", 0, environment->getIrradianceMap()); set->writeChanges(); } diff --git a/src/Engine/Scene/LightEnvironment.h b/src/Engine/Scene/LightEnvironment.h index ac889b8..1cf2435 100644 --- a/src/Engine/Scene/LightEnvironment.h +++ b/src/Engine/Scene/LightEnvironment.h @@ -4,8 +4,8 @@ #include "Graphics/Buffer.h" #include "Graphics/Descriptor.h" - namespace Seele { +DECLARE_REF(EnvironmentMapAsset) class LightEnvironment { public: LightEnvironment(Gfx::PGraphics graphics); @@ -16,12 +16,15 @@ class LightEnvironment { void commit(); const Gfx::PDescriptorLayout getDescriptorLayout() const; Gfx::PDescriptorSet getDescriptorSet(); + PEnvironmentMapAsset getEnvironmentMap() { return environment; } private: Gfx::OShaderBuffer directionalLights; Gfx::OShaderBuffer pointLights; Array dirs; Array points; + PEnvironmentMapAsset environment; + Gfx::OSampler environmentSampler; Gfx::ODescriptorLayout layout; Gfx::PDescriptorSet set; Gfx::PGraphics graphics; diff --git a/src/Engine/Scene/Scene.cpp b/src/Engine/Scene/Scene.cpp index 9fe59be..7f646f3 100644 --- a/src/Engine/Scene/Scene.cpp +++ b/src/Engine/Scene/Scene.cpp @@ -1,6 +1,5 @@ #include "Scene.h" #include "Actor/PointLightActor.h" -#include "Asset/AssetRegistry.h" #include "Asset/MaterialAsset.h" #include "Asset/TextureAsset.h" #include "Component/DirectionalLight.h" @@ -13,7 +12,8 @@ using namespace Seele; -Scene::Scene(Gfx::PGraphics graphics) : graphics(graphics), lightEnv(new LightEnvironment(graphics)), physics(registry) {} +Scene::Scene(Gfx::PGraphics graphics) + : graphics(graphics), lightEnv(new LightEnvironment(graphics)), physics(registry) {} Scene::~Scene() {} diff --git a/src/Engine/Scene/Scene.h b/src/Engine/Scene/Scene.h index 59d7238..e68b025 100644 --- a/src/Engine/Scene/Scene.h +++ b/src/Engine/Scene/Scene.h @@ -1,8 +1,8 @@ #pragma once +#include "MinimalEngine.h" #include "Component/Skybox.h" #include "Graphics/Graphics.h" #include "LightEnvironment.h" -#include "MinimalEngine.h" #include "Physics/PhysicsSystem.h" #include #include From 875ae450e767b9797720717578d36c7482df7304 Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Tue, 8 Apr 2025 17:21:23 +0200 Subject: [PATCH 09/12] Updating vcpkg --- .vscode/settings.json | 3 +-- CMakeLists.txt | 18 +++------------- CMakeSettings.json | 12 +++++------ external/vcpkg | 2 +- src/Editor/Asset/EnvironmentLoader.cpp | 29 ++++++++++++++------------ src/Editor/Asset/TextureLoader.cpp | 11 +++++----- src/Engine/Physics/BVH.cpp | 1 - 7 files changed, 33 insertions(+), 43 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index dc4ef5c..2691ea7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,7 +10,6 @@ }, "git.ignoreSubmodules": true, "cmake.parallelJobs": 0, - "cmake.buildDirectory": "${workspaceFolder}/build", "C_Cpp.files.exclude": { "**/.vs": true, "**/.vscode": true, @@ -23,7 +22,7 @@ "lldb.showDisassembly": "auto", "lldb.dereferencePointers": true, "lldb.consoleMode": "commands", - "cmake.generator": "Xcode", + "cmake.generator": "Ninja", "editor.tabSize": 4, "slang.additionalSearchPaths": [ "res/shaders/", diff --git a/CMakeLists.txt b/CMakeLists.txt index 8cae02e..0dbea35 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,18 +34,6 @@ project (Seele) include(cmake/SuperBuild.cmake) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build) -#Workaround for vs, because it places artifacts into an additional subfolder -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/build) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/build) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_SOURCE_DIR}/build) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_CURRENT_SOURCE_DIR}/build) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/build) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/build) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_SOURCE_DIR}/build) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_CURRENT_SOURCE_DIR}/build) - find_package(Vulkan REQUIRED) find_package(assimp CONFIG REQUIRED) find_package(Stb REQUIRED) @@ -57,7 +45,7 @@ find_package(glm CONFIG REQUIRED) find_package(Ktx CONFIG REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) find_package(fmt CONFIG REQUIRED) -find_package(unofficial-lunasvg CONFIG REQUIRED) +find_package(lunasvg CONFIG REQUIRED) find_package(VulkanMemoryAllocator CONFIG REQUIRED) if(UNIX) @@ -85,7 +73,7 @@ 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 fmt::fmt) -target_link_libraries(Engine PUBLIC unofficial::lunasvg::lunasvg) +target_link_libraries(Engine PUBLIC lunasvg::lunasvg) target_link_libraries(Engine PUBLIC GPUOpen::VulkanMemoryAllocator) if(WIN32) target_link_libraries(Engine PUBLIC ${VCPKG_BASE_FOLDER}/lib/slang.lib) @@ -140,7 +128,7 @@ target_compile_options(Engine PUBLIC "$<$:-DENABLE_VALIDATION>") target_compile_options(Engine PUBLIC "$<$:-DSEELE_DEBUG>") add_subdirectory(src/) -add_subdirectory(tests/) +#add_subdirectory(tests/) if(WIN32) add_custom_target(dll_copy ALL diff --git a/CMakeSettings.json b/CMakeSettings.json index b47945e..074fbf0 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -5,7 +5,7 @@ "buildCommandArgs": "", "ctestCommandArgs": "", "configurationType": "Debug", - "generator": "Ninja", + "generator": "Ninja Multi-Config", "intelliSenseMode": "windows-msvc-x64", "inheritEnvironments": [ "msvc_x64" ], "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", @@ -14,9 +14,9 @@ }, { "name": "Release", - "generator": "Ninja", + "generator": "Ninja Multi-Config", "configurationType": "Release", - "buildRoot": "${workspaceRoot}/build", + "buildRoot": "${workspaceRoot}/build/", "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", "buildCommandArgs": "", "ctestCommandArgs": "", @@ -26,7 +26,7 @@ }, { "name": "RelWithDebInfo", - "generator": "Ninja", + "generator": "Ninja Multi-Config", "configurationType": "RelWithDebInfo", "buildRoot": "${workspaceRoot}/build", "installRoot": "C:/Program Files/Seele", @@ -41,7 +41,7 @@ "buildCommandArgs": "", "ctestCommandArgs": "", "configurationType": "Debug", - "generator": "Visual Studio 17 2022 Win64", + "generator": "Ninja Multi-Config", "intelliSenseMode": "windows-msvc-x64", "inheritEnvironments": [ "msvc_x64" ], "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", @@ -51,7 +51,7 @@ }, { "name": "MinSizeRel", - "generator": "Ninja", + "generator": "Ninja Multi-Config", "configurationType": "MinSizeRel", "buildRoot": "${workspaceRoot}/build", "installRoot": "C:/Program Files/Seele", diff --git a/external/vcpkg b/external/vcpkg index ab42fb3..f9a99aa 160000 --- a/external/vcpkg +++ b/external/vcpkg @@ -1 +1 @@ -Subproject commit ab42fb3032acd29dd12cea7897f85025526a60e6 +Subproject commit f9a99aa79c1309001e36572fa42d7d8edebfc451 diff --git a/src/Editor/Asset/EnvironmentLoader.cpp b/src/Editor/Asset/EnvironmentLoader.cpp index 5127dfb..be4a2bc 100644 --- a/src/Editor/Asset/EnvironmentLoader.cpp +++ b/src/Editor/Asset/EnvironmentLoader.cpp @@ -6,21 +6,24 @@ using namespace Seele; +static constexpr uint32 SOURCE_RESOLUTION = 2048; +static constexpr uint32 CONVOLUTED_RESOLUTION = 64; + EnvironmentLoader::EnvironmentLoader(Gfx::PGraphics graphics) : graphics(graphics) { cubeRenderViewport = graphics->createViewport(nullptr, ViewportCreateInfo{ .dimensions = { - .size = {1024, 1024}, + .size = {SOURCE_RESOLUTION, SOURCE_RESOLUTION}, .offset = {0, 0}, }, }); convolutionViewport = graphics->createViewport(nullptr, ViewportCreateInfo{ - .dimensions = - { - .size = {32, 32}, - .offset = {0, 0}, - }, - }); + .dimensions = + { + .size = {CONVOLUTED_RESOLUTION, CONVOLUTED_RESOLUTION}, + .offset = {0, 0}, + }, + }); cubeSampler = graphics->createSampler({ .magFilter = Gfx::SE_FILTER_LINEAR, .minFilter = Gfx::SE_FILTER_LINEAR, @@ -120,8 +123,8 @@ void EnvironmentLoader::import(EnvironmentImportArgs args, PEnvironmentMapAsset set->writeChanges(); Gfx::OTextureCube cubeMap = graphics->createTextureCube(TextureCreateInfo{ .format = Gfx::SE_FORMAT_R32G32B32A32_SFLOAT, - .width = 1024, - .height = 1024, + .width = SOURCE_RESOLUTION, + .height = SOURCE_RESOLUTION, .usage = Gfx::SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | Gfx::SE_IMAGE_USAGE_SAMPLED_BIT, }); Gfx::ORenderPass cubeRenderPass = graphics->createRenderPass( @@ -132,7 +135,7 @@ void EnvironmentLoader::import(EnvironmentImportArgs args, PEnvironmentMapAsset }, {}, URect{ - .size = {1024, 1024}, + .size = {SOURCE_RESOLUTION, SOURCE_RESOLUTION}, .offset = {0, 0}, }, "EnvironmentRenderPass", {0b111111}, {0b111111}); @@ -157,8 +160,8 @@ void EnvironmentLoader::import(EnvironmentImportArgs args, PEnvironmentMapAsset Gfx::OTextureCube convolutedMap = graphics->createTextureCube(TextureCreateInfo{ .format = Gfx::SE_FORMAT_R32G32B32A32_SFLOAT, - .width = 32, - .height = 32, + .width = CONVOLUTED_RESOLUTION, + .height = CONVOLUTED_RESOLUTION, .usage = Gfx::SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, }); Gfx::ORenderPass convolutionPass = graphics->createRenderPass( @@ -169,7 +172,7 @@ void EnvironmentLoader::import(EnvironmentImportArgs args, PEnvironmentMapAsset }, {}, URect{ - .size = {32, 32}, + .size = {CONVOLUTED_RESOLUTION, CONVOLUTED_RESOLUTION}, .offset = {0, 0}, }, "EnvironmentRenderPass", {0b111111}, {0b111111}); diff --git a/src/Editor/Asset/TextureLoader.cpp b/src/Editor/Asset/TextureLoader.cpp index 3809ac6..6c0bc94 100644 --- a/src/Editor/Asset/TextureLoader.cpp +++ b/src/Editor/Asset/TextureLoader.cpp @@ -67,7 +67,7 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) { .numLevels = 1, .numLayers = 1, .isArray = false, - .generateMipmaps = false, + .generateMipmaps = true, }; if (args.type == TextureImportType::TEXTURE_CUBEMAP) { @@ -110,14 +110,14 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) { } ktxBasisParams basisParams = { .structSize = sizeof(ktxBasisParams), - .uastc = true, + .uastc = false, .threadCount = 1, - .compressionLevel = 2, - .uastcFlags = KTX_PACK_UASTC_LEVEL_FASTER, + .compressionLevel = KTX_ETC1S_DEFAULT_COMPRESSION_LEVEL, + .uastcFlags = KTX_PACK_UASTC_LEVEL_DEFAULT, .uastcRDO = true, }; KTX_ASSERT(ktxTexture2_CompressBasisEx(kTexture, &basisParams)); - KTX_ASSERT(ktxTexture2_DeflateZstd(kTexture, 10)); + //KTX_ASSERT(ktxTexture2_DeflateZstd(kTexture, 10)); char writer[100]; snprintf(writer, sizeof(writer), "%s version %s", "SeeleEngine", "0.0.1"); @@ -149,4 +149,5 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) { AssetRegistry::saveAsset(textureAsset, TextureAsset::IDENTIFIER, textureAsset->getFolderPath(), textureAsset->getName()); textureAsset->setStatus(Asset::Status::Ready); + std::cout << "Done importing " << textureAsset->getName() << std::endl; } diff --git a/src/Engine/Physics/BVH.cpp b/src/Engine/Physics/BVH.cpp index 8f8f4b5..ae03a5e 100644 --- a/src/Engine/Physics/BVH.cpp +++ b/src/Engine/Physics/BVH.cpp @@ -315,7 +315,6 @@ void BVH::validateBVH() const { continue; while (dynamicNodes[nodeIdx].parentIndex != -1) { nodeIdx = dynamicNodes[nodeIdx].parentIndex; - assert(counter-- > 0 && dynamicNodes[nodeIdx].isValid); } } } From e355f3e703128b6c8ea074be917cd6990f9b098e Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Tue, 8 Apr 2025 22:01:42 +0200 Subject: [PATCH 10/12] Fixing some potential crashes --- CMakeSettings.json | 2 +- MinecraftClone/Assets/arial.asset | Bin 0 -> 1036637 bytes src/Editor/main.cpp | 100 ++---------------- src/Engine/Asset/AssetRegistry.cpp | 8 ++ .../Graphics/RenderPass/RayTracingPass.cpp | 3 +- src/Engine/Graphics/Vulkan/Buffer.cpp | 4 + src/Engine/Graphics/Vulkan/Graphics.cpp | 2 +- 7 files changed, 22 insertions(+), 97 deletions(-) create mode 100644 MinecraftClone/Assets/arial.asset diff --git a/CMakeSettings.json b/CMakeSettings.json index 074fbf0..38f2e2c 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -26,7 +26,7 @@ }, { "name": "RelWithDebInfo", - "generator": "Ninja Multi-Config", + "generator": "Ninja", "configurationType": "RelWithDebInfo", "buildRoot": "${workspaceRoot}/build", "installRoot": "C:/Program Files/Seele", diff --git a/MinecraftClone/Assets/arial.asset b/MinecraftClone/Assets/arial.asset new file mode 100644 index 0000000000000000000000000000000000000000..2a8a2bd659a343f1d64eeff19f573345d2adca6d GIT binary patch literal 1036637 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

=$ae8z-%9ZP#A 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 }y9 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

!eH><$#o_naeQK(q_!ZGm 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 generateEdges() { - Array indices = {UVector(0, 1, 4), UVector(4, 1, 5), UVector(1, 2, 5), UVector(5, 2, 6), UVector(2, 3, 6), - UVector(6, 3, 7), UVector(4, 5, 8), UVector(8, 5, 9), UVector(5, 6, 9), UVector(9, 6, 10), - UVector(6, 7, 10), UVector(10, 7, 11), UVector(8, 9, 12), UVector(12, 9, 13), UVector(9, 10, 13), - UVector(13, 10, 14), UVector(10, 11, 14), UVector(14, 11, 15)}; - Array edges; - for (auto ind : indices) { - uint32 baseIndex = (uint32)edges.size(); - edges.add(Halfedge{ind.x, baseIndex + 1, baseIndex + 2, UINT32_MAX}); - edges.add(Halfedge{ind.y, baseIndex + 2, baseIndex, UINT32_MAX}); - edges.add(Halfedge{ind.z, baseIndex, baseIndex + 1, UINT32_MAX}); - } - for (uint32 i = 0; i < edges.size(); ++i) { - if (edges[i].twinID == UINT32_MAX) { - for (uint32 j = 0; j < edges.size(); ++j) { - if (edges[i].vertexID == edges[edges[j].nextID].vertexID && edges[edges[i].nextID].vertexID == edges[j].vertexID) { - edges[i].twinID = j; - edges[j].twinID = i; - } - } - } - } - return edges; -} - -Array generateArray() { return Array(); } - int main() { - std::string gameName = "MeshShadingDemo"; -#ifdef WIN32 - std::filesystem::path outputPath = "C:/Users/Dynamitos/MeshShadingDemoGame"; - std::filesystem::path sourcePath = "C:/Users/Dynamitos/MeshShadingDemo"; - std::filesystem::path binaryPath = sourcePath / "bin" / "MeshShadingDemo.dll"; -#elif __APPLE__ - std::filesystem::path outputPath = "/Users/dynamitos/MeshShadingDemoGame"; - std::filesystem::path sourcePath = "/Users/dynamitos/MeshShadingDemo"; - std::filesystem::path binaryPath = sourcePath / "cmake" / "libMeshShadingDemo.dylib"; -#else - std::filesystem::path outputPath = "/home/dynamitos/MeshShadingDemoGame"; - std::filesystem::path sourcePath = "/home/dynamitos/MeshShadingDemo"; - std::filesystem::path binaryPath = sourcePath / "cmake" / "libMeshShadingDemo.so"; -#endif + std::string gameName = "MinecraftClone"; + std::filesystem::path outputPath = fmt::format("../../{0}Game", gameName); + std::filesystem::path sourcePath = fmt::format("../../{0}", gameName); + std::filesystem::path binaryPath = sourcePath / "bin" / fmt::format("{0}.dll", gameName); std::filesystem::path cmakePath = outputPath / "cmake"; if (true) { #ifdef __APPLE__ @@ -90,55 +47,10 @@ int main() { AssetImporter::importFont(FontImportArgs{ .filePath = "./fonts/arial.ttf", }); - AssetImporter::importMesh(MeshImportArgs{ - .filePath = sourcePath / "import/models/cube.fbx", - }); - // AssetImporter::importMesh(MeshImportArgs{ - // .filePath = sourcePath / "import/models/culling.fbx", - //}); - AssetImporter::importTexture(TextureImportArgs{ - .filePath = sourcePath / "import/textures/skybox.jpg", - .type = TextureImportType::TEXTURE_CUBEMAP, - }); - //AssetImporter::importEnvironmentMap(EnvironmentImportArgs{ - // .filePath = sourcePath / "import/models/main1_sponza/textures/kloppenheim_05_4k.hdr", - //}); AssetImporter::importEnvironmentMap(EnvironmentImportArgs{ - .filePath = sourcePath / "import/textures/newport_loft.hdr", + .filePath = sourcePath / "import" / "textures" / "newport_loft.hdr", }); - // AssetImporter::importMesh(MeshImportArgs{ - // .filePath = sourcePath / "import/models/ship.fbx", - // .importPath = "ship", - // }); - // AssetImporter::importTexture(TextureImportArgs{ - // .filePath = sourcePath / "import/textures/azeroth.png", - //}); - // AssetImporter::importTexture(TextureImportArgs{ - // .filePath = sourcePath / "import/textures/azeroth_height.png", - //}); - // AssetImporter::importTexture(TextureImportArgs{ - // .filePath = sourcePath / "import/textures/wgen.png", - //}); - // AssetImporter::importMesh(MeshImportArgs{ - // .filePath = sourcePath / "import/models/after-the-rain-vr-sound/source/Whitechapel.glb", - // .importPath = "Whitechapel", - //}); - // AssetImporter::importMesh(MeshImportArgs{ - // .filePath = sourcePath / "import/models/box.glb", - // .importPath = "", - //}); - AssetImporter::importMesh(MeshImportArgs{ - .filePath = sourcePath / "import/models/rttest.glb", - .importPath = "", - }); - AssetImporter::importMesh(MeshImportArgs{ - .filePath = sourcePath / "import/models/main1_sponza/sponza.gltf", - .importPath = "sponza", - }); - // AssetImporter::importMesh(MeshImportArgs{ - // .filePath = sourcePath / "import/models/town_hall.glb", - // .importPath = "", - // }); + getThreadPool().waitIdle(); vd->commitMeshes(); WindowCreateInfo mainWindowInfo = { diff --git a/src/Engine/Asset/AssetRegistry.cpp b/src/Engine/Asset/AssetRegistry.cpp index 7535d13..1dc9714 100644 --- a/src/Engine/Asset/AssetRegistry.cpp +++ b/src/Engine/Asset/AssetRegistry.cpp @@ -224,6 +224,14 @@ void AssetRegistry::initialize(const std::filesystem::path& _rootFolder, Gfx::PG this->graphics = _graphics; this->rootFolder = _rootFolder; this->assetRoot = new AssetFolder(""); + if (!std::filesystem::exists(rootFolder)) + { + std::filesystem::create_directories(rootFolder); + } + else if (!std::filesystem::is_directory(rootFolder)) + { + throw std::logic_error("Asset Folder is not a directory!!"); + } loadRegistryInternal(); } diff --git a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp index 01eb342..c2587c8 100644 --- a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp +++ b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp @@ -1,6 +1,7 @@ #include "RayTracingPass.h" #include "Asset/AssetRegistry.h" #include "Asset/MeshAsset.h" +#include "Asset/EnvironmentMapAsset.h" #include "Graphics/Mesh.h" #include "Graphics/RayTracing.h" #include "Graphics/Shader.h" @@ -59,7 +60,7 @@ RayTracingPass::RayTracingPass(Gfx::PGraphics graphics, PScene scene) : RenderPa .useMaterial = true, .rayTracing = true, }); - skyBox = AssetRegistry::findTexture("", "skybox")->getTexture().cast(); + skyBox = AssetRegistry::findEnvironmentMap("", "newport_loft")->getIrradianceMap(); skyBoxSampler = graphics->createSampler({}); } diff --git a/src/Engine/Graphics/Vulkan/Buffer.cpp b/src/Engine/Graphics/Vulkan/Buffer.cpp index b71fe8e..deaaf94 100644 --- a/src/Engine/Graphics/Vulkan/Buffer.cpp +++ b/src/Engine/Graphics/Vulkan/Buffer.cpp @@ -11,6 +11,8 @@ using namespace Seele::Vulkan; BufferAllocation::BufferAllocation(PGraphics graphics, const std::string& name, VkBufferCreateInfo bufferInfo, VmaAllocationCreateInfo allocInfo, Gfx::QueueType owner, uint64 alignment) : CommandBoundResource(graphics, name), size(bufferInfo.size), owner(owner) { + if (bufferInfo.size == 0) + return; VK_CHECK(vmaCreateBufferWithAlignment(graphics->getAllocator(), &bufferInfo, &allocInfo, alignment, &buffer, &allocation, &info)); vmaGetAllocationMemoryProperties(graphics->getAllocator(), allocation, &properties); assert(!name.empty()); @@ -437,6 +439,8 @@ void* ShaderBuffer::map() { return Vulkan::Buffer::map(); } void ShaderBuffer::unmap() { Vulkan::Buffer::unmap(); } void ShaderBuffer::clear() { + if (getAlloc() == nullptr) + return; PCommand command = graphics->getQueueCommands(getAlloc()->owner)->getCommands(); command->bindResource(PBufferAllocation(getAlloc())); vkCmdFillBuffer(command->getHandle(), Vulkan::Buffer::getHandle(), 0, VK_WHOLE_SIZE, 0); diff --git a/src/Engine/Graphics/Vulkan/Graphics.cpp b/src/Engine/Graphics/Vulkan/Graphics.cpp index a1441ed..a3a0006 100644 --- a/src/Engine/Graphics/Vulkan/Graphics.cpp +++ b/src/Engine/Graphics/Vulkan/Graphics.cpp @@ -447,7 +447,7 @@ Gfx::OTopLevelAS Graphics::createTopLevelAccelerationStructure(const Gfx::TopLev } void Graphics::buildBottomLevelAccelerationStructures(Array data) { - if (!supportRayTracing()) + if (!supportRayTracing() || data.empty()) return; Gfx::PShaderBuffer verticesBuffer = StaticMeshVertexData::getInstance()->getPositionBuffer(); Gfx::PIndexBuffer indexBuffer = StaticMeshVertexData::getInstance()->getIndexBuffer(); From 40debf85806fb7c0de5051f94f8b62899be62abc Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Tue, 8 Apr 2025 23:18:50 +0200 Subject: [PATCH 11/12] VertexData refactoring --- src/Engine/Graphics/StaticMeshVertexData.cpp | 12 +----------- src/Engine/Graphics/StaticMeshVertexData.h | 5 ++--- src/Engine/Graphics/VertexData.cpp | 2 ++ src/Engine/Graphics/VertexData.h | 2 +- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/Engine/Graphics/StaticMeshVertexData.cpp b/src/Engine/Graphics/StaticMeshVertexData.cpp index 60f39c3..7b43ef5 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.cpp +++ b/src/Engine/Graphics/StaticMeshVertexData.cpp @@ -7,9 +7,7 @@ using namespace Seele; -extern List vertexDataList; - -StaticMeshVertexData::StaticMeshVertexData() { vertexDataList.add(this); } +StaticMeshVertexData::StaticMeshVertexData() { VertexData::addVertexDataInstance(this); } StaticMeshVertexData::~StaticMeshVertexData() {} @@ -168,14 +166,6 @@ void StaticMeshVertexData::destroy() { descriptorLayout = nullptr; } -void StaticMeshVertexData::bindBuffers(Gfx::PRenderCommand) { - // TODO: for legacy vertex buffer binding -} - -Gfx::PDescriptorLayout StaticMeshVertexData::getVertexDataLayout() { return descriptorLayout; } - -Gfx::PDescriptorSet StaticMeshVertexData::getVertexDataSet() { return descriptorSet; } - void StaticMeshVertexData::resizeBuffers() { posData.resize(verticesAllocated); norData.resize(verticesAllocated); diff --git a/src/Engine/Graphics/StaticMeshVertexData.h b/src/Engine/Graphics/StaticMeshVertexData.h index ca6bdb9..52b4f42 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.h +++ b/src/Engine/Graphics/StaticMeshVertexData.h @@ -28,9 +28,8 @@ class StaticMeshVertexData : public VertexData { virtual uint64 deserializeMesh(MeshId id, ArchiveBuffer& buffer) override; virtual void init(Gfx::PGraphics graphics) override; virtual void destroy() override; - virtual void bindBuffers(Gfx::PRenderCommand command) override; - virtual Gfx::PDescriptorLayout getVertexDataLayout() override; - virtual Gfx::PDescriptorSet getVertexDataSet() override; + virtual Gfx::PDescriptorLayout getVertexDataLayout() override { return descriptorLayout; } + virtual Gfx::PDescriptorSet getVertexDataSet() override { return descriptorSet; } virtual std::string getTypeName() const override { return "StaticMeshVertexData"; } virtual Gfx::PShaderBuffer getPositionBuffer() const override { return positions; } diff --git a/src/Engine/Graphics/VertexData.cpp b/src/Engine/Graphics/VertexData.cpp index d30f3a1..b690a82 100644 --- a/src/Engine/Graphics/VertexData.cpp +++ b/src/Engine/Graphics/VertexData.cpp @@ -268,6 +268,8 @@ uint64 VertexData::deserializeMesh(MeshId id, ArchiveBuffer& buffer) { List vertexDataList; +void VertexData::addVertexDataInstance(VertexData* vertexData) { vertexDataList.add(vertexData); } + List VertexData::getList() { return vertexDataList; } VertexData* VertexData::findByTypeName(std::string name) { diff --git a/src/Engine/Graphics/VertexData.h b/src/Engine/Graphics/VertexData.h index 843a3f4..20007b9 100644 --- a/src/Engine/Graphics/VertexData.h +++ b/src/Engine/Graphics/VertexData.h @@ -64,7 +64,6 @@ class VertexData { uint64 getMeshVertexCount(MeshId id) { return meshVertexCounts[id]; } virtual void serializeMesh(MeshId id, ArchiveBuffer& buffer); virtual uint64 deserializeMesh(MeshId id, ArchiveBuffer& buffer); - virtual void bindBuffers(Gfx::PRenderCommand command) = 0; virtual Gfx::PDescriptorLayout getVertexDataLayout() = 0; virtual Gfx::PDescriptorSet getVertexDataSet() = 0; virtual std::string getTypeName() const = 0; @@ -80,6 +79,7 @@ class VertexData { void registerBottomLevelAccelerationStructure(Gfx::PBottomLevelAS blas) { dataToBuild.add(blas); } uint32 getIndicesOffset(uint32 meshletIndex) { return meshlets[meshletIndex].indicesOffset; } uint64 getNumInstances() const { return instanceData.size(); } + static void addVertexDataInstance(VertexData* vertexData); static List getList(); static VertexData* findByTypeName(std::string name); virtual void init(Gfx::PGraphics graphics); From d14c1217de2302f537941138d596fe50bfb46b0d Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Thu, 10 Apr 2025 16:42:37 +0200 Subject: [PATCH 12/12] Some changes --- CMakeSettings.json | 2 +- MinecraftClone/Assets/arial.asset | Bin 1036637 -> 0 bytes res/shaders/TextPass.slang | 36 ++++++++++---------- res/shaders/lib/LightEnv.slang | 4 +++ src/Editor/main.cpp | 2 ++ src/Engine/Graphics/RenderPass/BasePass.cpp | 3 +- src/Engine/Graphics/slang-compile.cpp | 2 -- src/Engine/Material/ShaderExpression.h | 11 ++++-- src/Engine/System/MeshUpdater.cpp | 3 +- test.py | 8 +++++ 10 files changed, 44 insertions(+), 27 deletions(-) delete mode 100644 MinecraftClone/Assets/arial.asset diff --git a/CMakeSettings.json b/CMakeSettings.json index 38f2e2c..a95c7d1 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -5,7 +5,7 @@ "buildCommandArgs": "", "ctestCommandArgs": "", "configurationType": "Debug", - "generator": "Ninja Multi-Config", + "generator": "Ninja", "intelliSenseMode": "windows-msvc-x64", "inheritEnvironments": [ "msvc_x64" ], "cmakeCommandArgs": "-DCMAKE_DEBUG_POSTFIX=\"\" -DCMAKE_PLATFORM=x64", diff --git a/MinecraftClone/Assets/arial.asset b/MinecraftClone/Assets/arial.asset deleted file mode 100644 index 2a8a2bd659a343f1d64eeff19f573345d2adca6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036637 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

=$ae8z-%9ZP#A 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 }y9 zBt)&c`~_^jSSa;m{&91mFq#XoZuel7Rq4*BK@NWriR~1XA;)qVE)|&`2x%IB+l9}dSY5>`Z^vhq7cxY{*FXy%1e3%9 zn@hW@$t$&nsx-08wBn<(BqDG!B+_N~tl740&9?kJT6A9AlTMIjOm~%)Nfy5+P-chK zSQgZQ%(d8|Zz6;LsH~Ny*9e+S`&%flQY-kO7T?s+SUYM|Z6bTcmz5=)=O15F-;_<% zj>Q^sa z)leSP*nHa1pshzw(U$eMWseSRj8Qt#^Pkb0MwvwNPmkX&`z55;D{}_aa*Xqhmc8)d z2Q#2Ny+n>CNZ`{NDEVxkcZL|@f1fp7ysKZm`txFhZ2pqsCtOhE&j!9fK#!!tG)e8! zbUlfT!j=X(;R;2ya&Mb26N*V`n`*Htj+&N0a};UQl$uPS6em+^dI5BS0 zdFSh=pBLfsxQ3Bq$Bk$l+xuT*G7aO#HjWsl&YN<6Y%v}hJLUZI`)U`*&Yv=A(Rrtj zOb4MWOLd7!eay#?bJM44p zop!~FvhYwqb_oT>=CR@P7Kb&n=LB+`L+2nNNJ*EdB*4&jvLtZ-z!@Uvh2GWeEkkV@$oHOeHI#xf-<$qo%(9VSQnT)u{2UG zUc|Fh0)Yy0X46nHGmz$zx)+YVtV*eHR9c~(L+^79Avj3;0gR%ql-x?VK~;eT zDEE|-eSzFd&jsM5cB|Ft(kMdMskp7AMIYJQ3W0&zKUCTW#AHP-u9Umv4ajsTLr_9eLVOykPdG=58RL+u zT$dOM80e0VE<`&D`cc0OHFRN9h?bIsauvx?&_6K0LttK0O8?t*rHg_1UmAw?m8%Te zM+Sg->{0B^qOPI#>x9rX3OXTsbf{7&vEC!f^HK&qN2%^(sm6Bxzer<~oVo^eZ3{GK zC~EzB8c5)S^fZIlizvcj^|Z`KSJS}guT~C=d3U0M!#v%o1Rar_jb5-Lj&H-egKmhz z_)sS4lJ4;5aFEj6cHK^&?Omkd>$5*(RN(o(taQ{}CkP0TfGg;1wc(*grUekShkvv(mn* zcuO{MmTDPMm!w&Eq(fR|7NFDSJs>sD9p zq|7o#jO%J}R#ZJ8FIMvlIw@(MFjL@5qN#;h4%#H~N-@*L4@Kh!CLbi$N~mBaMf@ys^euW10cZPr;i@jhv)c-Mms*&KprE?lW~8QFm#og=c= zRY8EipdME)Fd<;W-RRM5M6lUuLJjaal_LG(lndMsG|Cy z!h^vi$Ozj)3MVZovp&`IU~=k3qg&>rA86{Zw%&Hz!<)}M^XyF1j2V(#vcfQqvQ<0E zHAh7bLFmU|h^rDOOe`b=)#cur9@`fIuFkrYL* zO65@VcLZ{8SX^TLs(kQ!5$h-3v3~S!te+3-hX@3u-bYyrAJ)&;6(Cq&(h)U9>*t{L zbI|%Z#QGT}uPK+-YR7t5tNI+a^^R`GW|*yxI#kJl^+Vzm3o#*!KKn|%fC*WM31Jho z;ss2|LQDwT!G{-OLKYUaWUw2$Ey`+K2n@4^TF(Gx^Z~0#OM^8v*76`RtB^(tyb;_= zKZ}J!L6ugOzK1Lx<7?OEZ(6&SeS5$HS~lHQx`MoKq53Q7CkC&FFTA7}yh|~aPz?;e zVBwRk7IF61zXO6qjR93S9a)6^2h^%_v{NRI#Uc)t2B>to!sN?_NJd=WAL)BoXQ z012Y?a<{AuBL#@@W7bxYk43*Mcv(;j{o&A}y@q2G{a_FbnWr$f0T9ROYuDZYYQXGu zZ`}&1AH%HumzXsNWPn#iO+C8C2bB6G^O%?(=ir^h64`05s+LFm!urlFe8c5$gbEE12nC!BhuK1MMM0 zbJ!m`vOlz!XwW1;(iMs%cZ1LuHr{pDUCM)~EY!|a*=5tLG$H@K9-2>y!+m=7!Im3bBbyf|3*XnIDoG^Cx z{c=~+NM@NNv!)VfS3ti7cSliy#Z;(?R_S%=Z-5@8bIu=jMdB9AB*X|79bL%_`JVi< z%G;ua=tsE$MqWuOM?cNz=jYp-M@VHrUU*2~f@e#hD>v}h@vNJmzq>sebGvDj0_LGo zn6}G#m+_q3_x$$eCIOJ1yCr|96ds;~YAX45a4Dw6pj#i^9*Z+)q4%Zv^VMst@Ozfh zc&bi%gMCAcaUJ^>W@h|0KDQkh|5>kYZ!ZJNQZ|;Ila({s)!Fq~Ijcx#G;!9xo5y!F zFc!5TfCCX6@P)?E$d7q$euaF3s*+374CvAek`FVuPI!UOqA~u@&K&NYCb4P~Ngs*MxYa#ik;TeA zn15D1Ppq=&537s_0m;9Gi^R}&xE!%)%;UjSqvj@NV_N>%(tfbgKg9FSo!l3Nic8B( zPd%7FR0)R)AEN(A)^g0+~J$=<1sxF%XP>0 z#dvp&p_S+d7eusE9?YLMpr_C9?FK$lL!&_3#QL-Wus_3VjHfCa8cVTWHUQRgF}8{= z9Ik3TyKHUtL~_7PEE@oGIfs>o_Gm)4Ida%<+Y?CvTj2RHsP?$E6}zaO*2jLWfL%_t z?PH?06XRk#)0jkjmgOBhdj=rZ8PO-$aZ{vUvwCU%PC20ms&a%B#U;}FR+}9?zN04- ziAa1Bmm+Ybn~q&)@9~?MM{dYQ^UGU z@Eh!EsV-t={jknA;_R%Ig2oOD+7wYibx2?|i7`a972v;wR@fQVMC0>||(@jOP3{qefA1iT`;g$1!C z^fHe(7Y&9La6E<(h9a{d`V{^%6bFO5X=?czqZlIUsVd#zKxhU_7h6zIlMw;)j);Ik z>;pY7cpu_sct_K|Chlq)=?P#skU3^(#wu#{D0o?|z^}<1PciDM%mX3CSlNJH)*|}j zxOo0k=JOU{1sTQqe!j~eu?caIcl-PI0*r)nx90wcuICeiCrO zv-X)!`GXWwV(b)wEya--unhOr#)#%bo9Znb^5(a? z-Cxb@m=@kY{UW~SF378XtS!pRGTSBp4 zfDi$WL>Ha}hFj&UR~Cj|uBTjlu4}RDq)QfFUrWr*CzKN67WY7!m-GwC zOfoi#s5#xuV(zSagS*GQ-%Zw??QW0J`6@vlw?d|u^p2L*Xc^nWM4Dd*GCO1uce2TUj`0+`9#3iDV{=p{sW_hE zNx_Q*Ji+k*PpUKE2~PHB%zon*?s&GZ2ks$leb49~hl7^R=!usyT_Gv^p3XnZ8w4!$ zO0bv_t@c_U>6=jsB(yn+UmF;}<+z_|6;|?4>F6*oo#yC}pS3W$zVGA@aex2lY?q6u z&5A9sE*Mm0v5El}U@jW~b2%JNj2Uy5^}~Dwlv-T^bGe{YnpZnctA%;J4>5Hfu}7hI z6P>ZYVq~c;Oc-6f&^|UG-2;mE`8c*(NfY9F7MievY!y<~=ew{o8Pl;1;y?KxjJ4r+?TPyJ#olEMZSLxhJJ5u^1n=dWZ z&y=M$cC77W8~3-hh0@S{LuqJ#a+}^hHrJ+?`|$!>ahqLwdI5Hqaa(%H;ztXmIh;Y zEzcKbGd^TC#mT~$&DW&2#B5HHju|J5D4i_m=tn0DdM}Os2C>;$Udc4@U>QB7cmu-E36<}cEJIh4%Yoq!h+9G9ZbQ=&NBDiLCmaZaeP;8 ztxz~hBHFS3q7T6xj6PmxZi72;=Lhsa+`;I<;0_VkI->9w+}-z^UD3hah?Dz6;6hJ` zen6|lRYa7z!0hm@bXtrh(Jy#_*&66jFA6?%HdO8kdH44&P4r??6#vN ztU(OgNkxS?^wZpm9)ui44*hGF{NCHj_G ze<}iCVVr0$1RgJoQw#7AG9P$g+^m#jmlM4Vm(F;SiKHdc(#buTVOm-HFgXMIV$J(8_$=l-v!X1ey1M5 zz7p^;yE!~BR^hMPTUww`MmKo}?`WITM!Q;1wzajiOkx{yOv(}d_)8b6KyGg9 zX;a&DyF1q=WBrhClhG3pq`+6s(~un=6Au%P)Zte;c|`osFsZWr@h zOLoD(>YmZCA)SUB;mq(G1JARR%12YA|-o`LE5VLMR_jJq`zJIsD8Zwe)i4i9{oFBAX-6 zMN|!O;xbwo(gYDzxUI)%#Hj7p2^__!<5gu+|ER%*jtPAXqsESXmChvCMeA^ioi8oX zXK|EHI+kPpT&^mGODIIRqMstOs!t`R(7oap;?ehqlQM7@bs^;~juuBz*z<#_pY zXRb;=V=i8DlkqY#o9nKkX|mB^`qd=iTVqIESZUNW2&gMl8%9lFC}BD z%0FwpMvO_|q1>QcjOS~0WX#nUeU3VwIJn~`G4EJe3+7{&7^&zB^RW_b#o6D7yoUaA z(ny5vPAfA*j26zq#PQg&0*CYkI1GTSKLro%84p(G4`LMO8_!Fd3ZwA)WEwmY1eJ_J zz!z3P1OA-?ej#fOH4s^A3TrPY)aZk9{1|=QDf%$lAd(A64b5~zvpY?U11m4aQOxt^ z(!@Ai19q5^$A>h_3(RqB!#L7<5Lt+|a5gMcQ8v_LLqf1YS&WP`PXi>&Q$kxlO|(A* zOE@y?=t!?FN|-J7D3Yh#0`AW|#f}9xsmBZ+6k0R%A7FY&dICL<*kU9=3R>+bpMsn7 zmEJDz1}{>=!ee{DtfEMgn570tou|b95Ex*M>6A}<-tFl>OV(r09~3)5^oBiuzxkBr zmBiH}@x%tmoDx`&IfYX-POruDay=|oC9oiKdQDikdnm$Mi>FE~%78_ZiSP=PSd?W* z+ML)IhNQi-??udCN=GrhuHdmC4+Nt{dCQANVhCLGRA*4r39O$%P5&XNiSkH^=wuC- zKF284eHBp_=hekcNvA`M*jRsRZ>;}+NIw9UwPqeC-Gw8u6pkCor24HfMq49KA+?27 z7?G2AN{7)F+=)x$$5dD2oK%vf5PjW-v&911o9vh7UOTTqV@MZDHj(}4Tk@UfM26~WUgmfBrE!m zc|)-ibIu31J6h5Xz7Ga&GRO6Z$pB8#?f}mEOQiHxSzI2%5veTKl|Y4+1mQZMUt_)p z_j~Mv+n4lT(%xEAoX>*-Z`dMbK3DJ3c|@ON^gMQ0%u8CnRnl^N*LWToKf!1@dQeLv zzoww_B-YU4cmbj&xrG~LaFC!#L%B!Z9o|T(!ZO>#VMaG;h828B+g`LyZ{c*Op?gq5 zXKp2nA;te(gyh0tU%S1svZOWLd|B40&r5Yu67xiTzk=PF!EAc~U`LrZ_ml?*t`4}R z!yy&2Jtl3GxC9f6#6}W%(NR@!n4ys9=HioqbO4Z=Oq{kN3i$&OIwd~GJ_Zz=yew-h zNNH4@pM!HHseY%-J3JdbSdRNXU}gmG7z*L7j|kynXkMQY6rMFH{1$^^;eatJkpM^N zCqAO^!O!u;G6Er<4Kw#1UFPl^3q4{8+r zu`i5YW{~Phg7^+SqkD1HlR-^4 z9qCNF*+ym&I2r~_1IIydkN%6`9{3l*JqEa^>uzLPEZbMcKkj580V8JP4xB9CAP<7CU=qE4(lCiuKWUgm zr~eepzW<@I3)$La&L`@ffd|6FAd0Jh-d*-?8FuL1AAU*&)ei&rtxp23bR&33r{E?b z!LeWXme8|th7(?0WF0Kw4TGQVEj;ZIH`+`seY)=fX#I&2*st7LptK5wF2IGyOaVGk z&5#yHi!Iz{3wwVLqQ&pf$CV|09C&SsG}1f+Z7Z+J3Bqu=pk09}RH%cyB_j>`9Sr4| z356UH2nxM#bvOa#Fl^5zlzvo9C=UY{UGNEGE)QaM3@(vK8Xfl^!i0X=H@L-H#TF5G zLDLNN^Djdq1#R&ef?k^k@D=0`VSVT5UJb#HlOzQ3hjL7JX@-1t<48@Mg=biYp#V^V z0=Sf#8o(fk23HxsgFWZm=fq~6se7Hyj{w%VO#`O#VFS|=&e9+(psRK&N3S$OA_AoM;oZXyGV825FXs4F}p)Xc1*Nx(%mv&ne0mP&g2T?it|MvU;^n!fPe`4 z>iex_l6nw#T`f!cb@g%j2p+4?BIBz(xBg^357fgdhNGxN#_z?_dWlnJhE9o66YZBQ zIG7@Ckxr(Yf_oqY_>rR1)@tvr|$ zZtK-fEjOyVTEHdjHX_bkF)&2V5a0&X3@$hfM55V$7UE?ljvEAyM8VSvINCi1j&;_y z4b^N#HM`qH6m!{@L4qy=-DB{pvFZ}2$(%|G1Qj|V&A~wUMBSep{9AF>eO<^XER3M2 zR}G3ns?!*`8Pj!IVcTL&20z~`y@Kb3f7H9XLSfNjpw2$Hg+WuX?Jy-Ku*v^SYCAP6 zRoe|+ZE#D2u0+cSTK=9?ccW#$BpSY@Vbf}d>`l1lvG(;2@Cj55WVn z$e@(LxENNhv4BY74Fu5$b8xzHDs zr>qWxdQ&@aFEQ5#e%7sf;X21Bff>LNHHIC`v1!Gjy&$oz4;m0mNkSAh2bfUw>Q-Bu z2x4_;Mi8sLI+5Ftlx-R&>k&PKEJg*$Wbx|2z4yD4yt+UakS!uWx+s5b-0bOxg7Szm zTG11^BX7fv9lh@=({jh)APUr9)XQ8h>L4c4hXZRerkU#ti?#JZAps|tc)tZDVU(UC z$6oR=U5T`U>NEp@f!qp#o>D{)&t>VxSFaaEn(&ABIK;vkn>zG$9eUAKd0>NgEh+M4M6*(r|4KfD;!^!9Rqx zDm}ETVR|}N(rP#CRc5Qw&I+vrJs9(LP~exuik@C@aqZRZr%yGyJgvx=3{ELVSJL_| zF^9$}{|(*Vp&QLg3Lyy@gL7*i@^PlQt3(0@b&c5@DZob3<+<`vS(e3i8LovvA@Ln- zZfbD~+w6Vajg;MkTNW)^*7fMEj-$wy*t2AXnt%}sE>aORxJWrjOGoHaS42)kA_NQ8 zDZ@+_MVu%HGNfn;^2fa4YYivYE)0|kFh?+6a2JQ#{YRt$);tg=jnpoIT&+eQ!u{gu0 zz}n!B!$5t@ggVxQI<^4y$(>`zemJPceG=V8823qtmHH_rC#1W0cP*1@YX@BsiCfAu z=nkr+%{u8DXd~{pl1b5^|5l9ltgz>b=Y>TZecXxX;r*YcedRy_2q~?lH>R=8PQU|i zkj)z0eFzMTwC-|>($g4noS&@6YrSaIfA?i*gTg*VJsUPH^nB956k$w0al1B9TNwQO zI_bX*OalT_$XO|%1vUhL>1(?J0Rf@Eu8P34?>C^V3q_yetSe1fCy@s@C4k#ug>$G1 zY4gr5RUDN|%mQdk9PjgJeYm9cy4%Tjkcs3*WxncM2+3G+{AEfB|Dkr`tU>L}N<~v} z*1!zy;O~a}=pO0#uCUOK+Oa?*c4n;O|KWBj|eP< z?tpovd!+al=Eo?vLJQg5_p4og|DYK*MmV_bIy$Wj{|)Dm8KspMoK^HC__8#G?Kb+N z-Ln;e7_=7Yw3Fhs`lXc7*WkA6*g>=vH~IB!L;X|rJ@vqYy)`{xXJu@-Mz zr8?ub6~0Yh;ZXRcgzl5OGe{IPl8V2Dn@5Pf-w%UCGOf*EDB=#b2&E3bH2qMz>)6nX zS>eDp93-L579ln2RZ2IhYAqDScNcKwOJ1<-BXw}WwMyV54Zy!9-6oXJ|(nM z-wO+9h5c8y-TDBMKbSw9C^e;6Rb3r?{gN z^D`KeA~zfc&M9u~hJ_>U?TRBBh!3oD!`QBIsz~4&l>1fZ;ojO609|vZWal0mk zs>qd@VzEE^UEnEt5vQc#dii*_gN0s7@A8Nno)9BZCtxH~bPXjBYA}+LEB=pkU1;oY z%-En_aJr(A{EK^m9r6D`FF195(!KQk56zh1p5mU7xMxW((`m1d93j@_<6k?9wHc-- z+%Xi#^9lAOoddcl+H{C&$TmSe$uaD;G_qkxhTeyW%-wy%nRyItWiT9J={Y5w;fz1S z!x8qM5;!Ps(axmy(GC~3zcidhXm~inCUiDnML3P{uPMQ2ci$;YN5jJs z)}vFyI)y>01XjT+M0|I^y0sv3Uz*OO>C?nK{X;X;@Gym?X&`?6Fn9Nz!uVvsB7R)7 zKMml<7hqq-^#Ectn`D^Bhc!nPIn)3c{k)c7G{KT!!uSUksv@*fYf?W~RsI{$rXew` zl+6I6f5K)}c)qg=hC6*@iV{%sIR*Yx%knwzcyH@}F4eZb4vHzO>5Nouo z)Ye7Z_OF5mivGlU=^bLdKDO2_l#)|J1nddX;4C@ zo^{tVtv*)2vR-bfuXQnO!v4cP;-AIoQrN~&^Vn?vnrNTY{X7$A-EoxcSsCXo@uX-S zFB)+Qt;ya%=Rf0YYFOiFl)~O1ECp%Qvq_P?;S}~c5O&d0K+%Z?9wr1tc^K^|&yi`% z5!Q*4K7}=}*r%{@6#JBh+V=|miE$$;#~k;oV%)IM(YRN{SxbC`7;?6M$i{q$5u5FB z*DBf-dvDT1a`!kUjT=iN{s2e@7KV4UwbnR4Gplr%%{RR15wuEPJBR=%23&{}GVJf? zibz`W#HI+^S%v34<>L7P-uHvOucay9BP)=b>!@tB7#_k;d3roZGI7Q(;XciA0GcS` zFR>zn+9L9+uNE92w1ey3#a>wGChhWi;rW3~*k+^R37#^S2>h^$WC@`BN}8Dh4`@rj zR&@3P?xM=Tu{FuTtPY2&P=R8#>_#d-UyiEtd&W}LOQhbT!g_U7S_nD#*b9l&^5%&Z z)r)_jPFdDAwt0T2JUnJI!GtA(ZRxvFk|jh_GBVg8o=akkxh2l5aCksgWU61+A(Ejc zDq7i=?e$C0h+HrKB^X(h7x<&q%7Y`u=Tyb7 zq!ihQ9QUjS2}xZQr0DDJ@g2Dey(WPdUnLx%`0lMxZ`tEqGzJ&THBb;iIk-iZ7VylbS9 zJ!z|xas_PCeTFkD$UFm2+l{z4V{XBX26);IfK%XOEqWQFltz@5XeFgIdPMiR-QZ`K zt$t|G1;G#nG+~P+tj-izHI-nMHL()TiI3@(reC~HsWpUqZ3$kuh&1%ML68b~<&2z3 zI{>TGjkD21dZmFDaxe`K&bV(HoD1wL95XH=)m(*KVDLStK;F~`fIkY8NssAuRyiQo zA=J*ztZuv8h6-RBi=mV*Tgy>-4bQ+jimctc`B_`xFHE%P0}}8{#2i`KEnG)wgi28_ zVH?6;KIfAVwTdky#LNt(=y~Ugu;^Qc@jb&#YV5#bL684DtW-v4JWlOC{E=7=6rkq zu7URQEIe`@l*f@9H=&1d6Kce18<(F0JgEB+W68smb;Nx7HCz&lr z)Bm$vdwq9d9!F7pyg84r7G_;B{MH9Vk{eH3s|U^Ft70CP74icHEhSSYE}uN`5eZX% zz-|;5|A;99MXD%V$D!P5X^udwBVQ(TcZy7e?%wy`g-BRualaH|!LbAWjORZqba&(V z*ZN*7Jm0@#`k%)xk@yor)-;#Mn%piHLq0>4ZQI?quGGO;6H#HSAqAge@W@7m3L&}3 z!LAo*A3H;-*wwtDlJa5<)afUNvxzYG~VMwDGYg$xnWvLHh?h@~+k$cGwT?+1vE zlA%F#$ODH)qN6Y}LvjorTdC}L;}et}*%H|il4_W>##htlXCD7%Ki1NZ!i^zc_{LD^ zxRq_Zrws=R99D3 zk<9RsXR$1Dn^0oZ8e)7kTqJcwVpJa~aw0LRFY8aaaT6AO{6athy=62#X&h1)Pr+_8-g2y zJxH5i)$sx6jUk8#dl9neC{u;kXq;vRo-QZhX^GiCMQp?1=X?8~A2znZSY47z#%hWD zH|A;?p56mbJjT3`TpGAqXouChY@58g8VWR$*H+h88fz4yHEN=@AmP*`gcB0df81p% z3Ma#N(gI7-G$EaEyGPQAO)p3rpIhV*L2i>0X(OH&(#d%Kwf^Ua%{hWCX*ndM(*(n3 zP@K=&&3vGV(M4A-*5!(kXFE#cs&9RREgn$Ap{iUlW7Tt7oyFC_`JZ` zusAhsLkJt@?)y7E9^vpzQ|7e7-+2XjQy1U}K}VKEe5wB?;IxuW4|~J#IUTn}B&0X) zXfN3niy5I61g+fKmX$V3JR`z1WC^0jJok|o4$zbP-cerWKT-b^CnqavZY|M0b5I$X zTi2>x+_BLHZ#iD8hwR-pn^o!-g)eZHv?^Dtx<_U8GC9-f&gM)`{Wr_Tl~!iWEIRS) z{__vYKtq^OF=$vO_V@OLv=e642`kP%GMO8G^28G-uKw9G&ph#j@^ViP^XGrp^8r{{ zx*U8Xv!mj4t==GY0~LEWRpa4qAZP(rlE6wA7%3a)T3M$+>WUACRUOG36RXF6cJ)nr z1XgF~e`nyuq;nxqe}OfSrG>hS&Y0~omC+k?RxIZ_&Whd~zXiz~M9~v*ys}FkR2$>+ zTB@vv0_2NWrWeK5%@d-SHLA9bnPI=cL6BrOt-H7@6qXP8-GN^UzdN#g$XIDa)R%Fo zkx7jWxVsXLoFCwdXWEDbM9Mb8JG~?GG;-vDPmGjH)Io;H1RZ= zg;PK=$3(F-b~9FoG**kC@EXc@_cqvAwIClNW-5VA{@#Ts#DNh_rrmfntj^h}E>eje zi=K?a>in`Ez{#-~Dn&6!D@ie{ zgZnhKFW6c7Z~MRp4W81ng~f>^9f*5a89x?383&*0*%_yj6T*8Oxy*GqW0UVV*b}iR z?68Y)`}hE5TI4QcKNNFSM?J#n0(OgJz0r~}Ri}bh zT&f1K7YZtm@{JNT2hkkJ4YgE#MM_AI=$9(>@O}Pwg*k0u+xfOjZ2xXktu8xr$(~qM zP0lk0&aDr6o`glk;|*0snz$#vKHeSQ99OLIIIC&u46O+9P>6Y}9cpb8b9hp2cft~> zO;zE%5)DfUEfGuT2_=#8CoP#1umijZWiJC;Eg5dX8&7mlsk2q|a^WKL*N}ULC7TLQ z$KzgDvD-v(GZg2x!k}%XYR{Fe-nc(*d@D+T=z1!Jl4e;Wj51so@2Q~o)Kl?SX{M) zEWu=h&01xxOxHP_erH8v)>Y<9Cu4G?p)M;o#w&wiIbw6Ti?EHW}i6H)6>%-Uh(kQ3m09uNIYRa6c~HMTKAqkd(=Ie zc<+Bx_w2zR;3~Li(ISR#db3z9bqUnwO4s2f>DAgtr%+nFG9X^CgITgd#%pDu0#Ew2 zfO^gNZ$9|n{;CZ%(@(40Fg|~B^LEx&xgj`ta_xq;yT?BlY0kgN+COz*%*^}?=$pZzL}r1)E)flD?ejDW~cxAD~?(79ieM~xZ>;AIrN~Zr4LDO1vKlUItVf`BJG3T_z~^u9M~RHtVg5G%E0-J9aq3L< zI`wu{z0c0}xLMB4rny;jdG^!ZgBJGr3 zl-`r9KldE=yzP*i}SDl zwQI$v7HoQWY1jD|PMkdXrp5>xKa2h1`0AUEzQh)=SuY)UW8VnY^5p%!hwt7rivReb zr^kJ-?v~Cg4^^@YY0cL5ora9{4G_Xs{et^dHZ8Uw#t+r~rjA$Cp&Dr23w27;;dFZv zp14=5)x1u(?5e4Z%MP2bI-00WrlZ!d1sN4wAqT3^gEl$hA?48t=1DM{Qk!rj!5%#t zYS&`DX5m(DzQ!KawrhJd`7VU+d26atdWiLeSjfpzb0oG;>I21D;+64qT#h?aZjZOa z`<(Zv_g$~r;qCOU_sWu&dA*GdM0l9Ro)ayL4niH$@ItGBUm1n$h{iyWi#ivr()L1+ z>^aoa(XqefV2?Jtx2Gl0ia%>NtObQ>YZa5w1d+uP-dvq1m}`~2i8eXG+E9WP#N?%# z+GY*XJ9>jB z&ZGqHX|XjFIWDK7k#a8(OT^^3PnP3Vkvf-NS&jl@#KbPB|5VQHwt7R+v_oep#ctQ} zn>nZz$L)42nptI=&&y?RyrMc0^M?bhYL1`n^B?uU>zDmaYJEHgvE^}gT31;4dTTeX zhf&pVzx9|^v0AZ(S6$KC`eu)Yjf_dYqNT<7EN)PHI(o40QCn6NZtOvUPGWYnG*nKn z@bg-2cGKD$_Gn;edobPf3a&d$)d>QDGvQCu#->in!Nk*Z7h z)qAh~Y5te_hG(wD*H2j^dyPKjU(VnEV7`2z>{*z9>cOA0=kk+`@5fF&#(tciOy7^4 zIB|mAee=z|9XI16B-TTH$L$O=K0=xy&0~+~=c?S#`S%!`IrqG|eA%a1+w`f^`Lxs7 z($m>BI=el?&TeAYq}dna?58!a*6^Ean4>CG#qHyQGjSq!GR4L;83!A$I`z!R*se)^kAjA=vAl8I-UllE zno56`bI^(6fMRDaExA7bh10f1|I|78thVGg9&PE$)_-y7W6W~V2=7x>`+jqNXwA;> zms^_NfBa9+Pii_dH=;Rm=3CG6+kdcd&D7KKpEBiI&;$O4GU+kIqmboCvW>y(vckH7&&8N{!%t->9|YcH4ba<)#@{$ zx+|7^F~4bSIx+W3{=o0^;j57F6IEsLg8Z=H2npPcG+?KWl5*Uy_t>)RjFF!o$w#Nz zZ_;dRlKnjSc9OpqV-|nfe~n*$(a#!u?2K||hd#wCEo^~>RmtpJoHaSSFU49?lT-XJ z4J=d>VZ4e5Vu`wjU}e0vzQNz1G&UtuvO1zUowB4VMviL9`N}id)*P-Y%bYfB%UnZB z)~umGWink+?s3<|;!VvXGYE@@-$rfYh*4Q5*iT)(qPDc!pl4fUa38PFAFNU}Zo%2X zYD0M0@om+0IlP|~jvBroe)4G`5o-*etmM3bqtG#W2=6C#H+~`0pJaLnW_j@^yr0xB zz%PP1c7KkYmt)g%EZ9)ra7M#l8kBn**x3#2d@GxZOIZs$&%$n#+1WA+@_K$Pm*=Cj z4W9{p#FF#*Q^-kauhOF7U|OomR&iU^XouUI)-osd_h^S;h1d^n7JyV4@P*jf{x59e zKr8-Z6Jvja>4~opF+%Z$-xod>e@8GOeM%Uj;ED!s9R8!J2a*o4O1uzp;1i3>35W=M zx3$)Rh03iJ@e1)RgN<5SQ}IA6Lj-aH%rs%G!%x;kz)yGN-F?Xm*IoD6q_^|m&p&tCOZkSGGx_9eC+6Rud~#A}{zq+lM}Dz= zST@_wYMCqlKfN#fk$n@4_rzm=gqDG0EmcyI{A|_JlBe(Fw(?MpGFEN__kk(vHGM;Q zUG8&kW^=PLmG9uZyxcE&C9hYKsY)_~BJTA`lGlUc*^1^<6zx)ly`iv8$}^N+W}m{R zDYq!RQenSTmS*4uig(g8&?GUW(S{BwQ)&x5zdNq-hgFomt|9s8`*iy@>OI zv9*Lc2+0|QK8f=Jq^QAHv3F=MiL$d0#iUt+$qL4}YOM;%dV{uSZBU~(Y#$q5u&cmJ z=`r$U!cj9}H6$!aRu*Rgoc+{!eNw*VuKS<=!WW)jz`w$*z4s^h>G^j4wY&2Q|Jq~x z#@^NVelqhIX^DvYrM&g4maL3fvnxmht*}DTZ=Ki(w9->@53HWeOb9zro+*-|tt(VOQz?xqePRaX;No!k6Gh z9I{CL4z!*Kw15KffwYo9tJKlk(}7Q`_8u_~Z;R*yX@WvCAqu2#P#eS-l#!HQ_2U~8 zsJ5k0p&{jkUZOmc53@P>E%g0-ejA%DzH5}*RagGU+aBAt58wIuZ0gp>w(i3>`~DLk z0AylbX8pBgm*hjf{^`hmzJ%52XIlbH37#HY5|kI#f4=_OdO6s{Qth8@zq(zv&#aos z9d+~D=ktZKo^s)4PA|_wvuI`uwCx z=Rfq56?5jE7Ok0@9e;lQKkuyA$Hq*5t!46ZUdA4%8!=<%s1cc#>C;9w^gcN0oHxc# zZJ4G{sGm1$;qmJ_-~ZBNeZ-_yXGCo*dh487v-90!r`3LzC%!yq-Wjvlf&9i3`8TGI zZri&1%;o9Fzsk%ye9Sci)W3SJZb!_8K+I2GJ$XW(+!Wg7rb;` z{zv&&@2u6wu)yK`W6cvsESW0qX0v@G zC5h~SyQ(Hq<_fw()lsJ->|lzD!fSRZ?C{u`4dPl02HY-})rS+EW|gaJDr6;8RVhCQ z$I)OQ49js=(m{wshCR?z;y9Pcsw^O`HJxOnNb z$zQ&1bj#(-%PZ$C;FfU{7vNv*h37>==Uun_yz`b{CoipaxEn`~OxG@zGH>q19PP&( z1wbJg4HQEJgHJ>}1HQ#`D9|n5wU>?O2R&TcMmz^v^AY{Dw$z#L73O=ud@uanI_T%Z z?+fpP|33KV)FAkU{^Wz%TrT?!dimehQLUqr^eNxog0Cl9M~!Ob^XRoVM8DuS6`$>W zGMj5@5f8JU(ckhH&?`WUYW)U%lJCJw7C+@*ZEYQO6hE+g@nHc0`x0K*k6JQqy=UOl z-Pvr8$IOTFR(v>4%?{_Xxsmt)xz~4=vV&i0X#wxf=&nj74Hbi>VOBwIHr~BeR^bZR zy-mlRmoQ9+-UyvwnS&>A8?%VTbtXY$p&LD|9hmjt{QP%GwdxPwbREvaa0fv*N&Y}cLk zF1m%2Izn%>gif>=h_NIXAJ{4Qrpj03U%&RuyMk*HM{irn;%emVr8C!TJ=+*}2~;Pb zqN1ZsKvkVxK#`!n)Y=c#0%n|QQ(9X_xAPSQE`OAz3AXw-KwJyJq($IV1C1>WT-$V? z)6&FL6)KVJa5{L(sv_G9X@sb}EgNnvFZVz}dP(XaX$|8xwk)0IgpmMh%%;n?uUN7D za`tOT;$Pp)ew3er*?2hrX*Lc$c%)@dt!Y|FcQeQJk+!m&+hVUqRyPZ5^A=YMJWS7x zftR>Hn4@bJK8LJMQJ{#D&!i@R`vr_QN)p1ZoMdY-AKyPBpOun!0g z%`EdMs0=dGs2~^xWzvX>22nH$YDCe0E`~|aB#;Dg3c`)VL~~VcVw9Nh7n5ACM!I<4 z+NT=O;LW}F|L%M5_gbm0s_w3H_S$=|^{utOwf3;EeNW5JhR+CWaStz^t4<*njRmLO zyJZ%sJKK3cDZ~BQaOP8y7Y{Ltk$tDKI^)R4v6KLi4olRytZ&8>O-9qvgVAHr_oG^c zs7rKDTU1Lr!t;X#iSD6bL4@Ze^5TioNHiEpbdN;yV$oP>JTDlJ=Owy#FXa*R+=`@w z1;J8F8f{b3QSznIQFbiKHbz+#zr-yiaRe|NmY}5|tyX(uk+{7&Q6jtv!{Grh;iPd* zG%uq?+4ks>=x0%}J<3K#*$vUP(fgyq9%1&#YmvW2L_9Jn@&cZ|6S34GxG*vz$|7t# z!V8H!c!7Q}+Wx(OS<-rKu)v=x@zyd=ZL$_Pxwd;n2_}W`hb>i~QT!zcK*?7K^=?H} zz9F7QR3V2Za!8}|5Cz;jC;&k~0zvg=0@LIiAqY!TXht0{c}JuZhu=1RxsK}f7O-zA zCbeD#bhhLmG`+UswH2>D_%ef3GQ&zpTGn0!!Xb0Q8-XO6GC(H+p?DTS*u60aQFQdR zD$;|IKo8YDvhb#ZuBj7NTs>{V$PG+eH}K9abKYQO4?eO{XX8fQwq{uSflTcZW*Kvn zy7#7C?eBMv?N+jE#L&Rg<=+O@`IlAMPu_cp7yO!)a!0&w^^msFBUbhvd24MT`_JbT z93TQ%*$;NV0CB?_r8{#PJvD(?0JDX?rBRns>8<2#M&-!L>6Jph&_!isiJf(;GV+~O zRYrMLrmD)P6{L+cNqZ5}S!h?Tq`m1>dSm)b+G6ABw6&xF1a+&mwjx%TsqNv9WRexg z6ILbJ;N+wvZ%NWOVXKYRa=X1YURzZwoVCfavOHr_mPm4>>;*vgzIFKL2$RbKjH!|WU0*N#7um6mcA6O^B3N0i$X~!Nt@bGm4R~?1 zo)A8M2H@Y&fLGY7_(fI>%!g>th2Wx$1i>k$DQqaE7;j<7k|~Ef)I-NZy`|r^`Ay5R zuV!!m>0S8Zm3Lq9@rY~Mm>85jP;+_R+Uyx~Q6XYDEo_p>E{i2HNVuNdjqkPl z&%I(SfaGtlJ5|Tm)v)yyjFSpA->+nEWVKM_dbEv0gM%BB3f9I z5m9W*b^2y~yDr8#SfgWrW2{5uJ9Lp$o3zH~l82JqlT0UDlLBvP%?9`6Dad@CLhi(q zDT$XQqPnAwH9Om#+~Z`9I%l_p;dXG%ukoN>LXlwRQZ?PFQvHzXEQ*&lwdONVelmY$ zzDVXD%jZV^^!#o4B0s-(uwKC?-lhm$>0MQl4zh#6W5M@>A{lHAjtEW*szFk$NT5-g zjI=CXHFO?6go*bxG|=2mHFqpc{!~N?u_WZ&A3Y=;3Ia70i|K%Y#csqO$iE?1fwrf` z3%|fDj%sQol}r&r-0Q^L z)i2K7-PW>fQ|CYT8v5M_+M8R4-M?vYAGV>nruRT?;q{MY|GcaCo~6C}jPJGQ(e{BW zRzAk2etW=u-2JyZ6B~H9XBXae``jnDEn2^7PUqjMTI#+BWAsG!3b1BgQ2apZht97A zKk3(-VtJ^~0>wA~Kbl!LX4b1lweWM^LtgIjroF9R%&b?7WBQb+yVPOO+!bk{fM1wB zhdFyI9XlQGJ3eu!io@$jIfNsSQdYqx51l=UIVoS7fa1@>TetJHY_z|qpZh1S*%`$d`K;;IH2TVjk-hOjL(Za zqTA~Y%0Llq7@Wg-(%6S5>++Z-FOgBISfo~I70(qND&n4^ zbWv*&1X!fia8J-4fxV0AA?*?}?AigPRfyCdOfgR?nd18K)X5ZImD-p(loF{_I#^0! z3SI}XZiIuRD(Og|^bMtq!u4PXV zAQ^zXc+FGVsyO9?zBAKQ6!ezM{`{<17GE?g(;C~eAMSblhIfxotnk_gHC=Lw_@1A( zq_U59{!lG@VCT&}hjqWD^ZESTlwm!;f|H&;v}{r0NLKmIuV?6&lg4wHAes}@&(Mm7 znwq6A)z|6b8S#SPJsd3LD0MVCL>LniRa0649qlm^v`3W)kK7X-5#=@!)rzzC^STK(i*yq{=^}+BacdJLw!S(g z{KJc;WX+o0d-wKjl`|n#3{x)X7+$`C>GQL9ZO9Ifcg+A(?BIQVj$MO}%0?e8iUg|~ zWj>dd5B;t3R3wpcCH#7U#$yT9!QA0e0+uPtE!h-rJ}X^}rFtAzst~H=t*Ko(9B@l0 zr`-xy2HAWJhQgM`K8=)WBjsP9Hp@w|hC?AQP=Aj`UxWJjo?8xmF|sULwQ^{`%dVWc z?V6iTj=Zb)9vnaEyKm>{ho5?=|BCXbTBctA=g+d)(Rbg>2ar!-&t9Re#r;<+GYrEa z?>`^+@5p!H{&l*4e-hgSE=Imx>IhUyWJtBR4*=FT)L|Cc&R9@4Vgpm z9)@i})4B(o3t5I{#PN~Bf|pj+qH&?JuB)md{nd|F z(zvJ>VP^8PfM^2^ya*RqvNx06`ph#dhAX_9ox*;5?r#{$NW*187+o{)@ftHr;rv*8 z454~lscU?|lzVB2D#mp5hy-rAfiTm>J4(TDdCAho(vTiuzct5`onj7;#&zMUmm6-p zVYO&*lW~pQWpM$f8WsU3oo+|r7Lp%>{A8^0E0=}*ER9X&jTX8Pjp`E;;*!1OnQen@ zww^l(?=+%JHwr>)S_QjDu$AH-G);Y9sML@Yu8Q!iu^Bc(%lT-}z17BS&NZa%v5BNB zsVn|9nih)^z&VXfDb`^co`^K4CoqMCfN&c@tU%;1v4_G^JtG>4HP?e%uN^Y%+Ij6m zuN~B z-9vwRjz9EMukUDBGxbTB`C@<@{2Ma zmC*qJ=TxDpHY=y>GS}8Kgj5c7PCZ2P1XO5xcCtK>)DY2q=^kjY^TiwA{P?#I9Qz3O zV)FX9(t`W>GIu|xaD1^I)hj@9Fv}Xv{51+SLH8YPBrJx7%!bF3v~bINHas2Yw11p!kxp6srjpWhAb=06}zjtmV zD$j21>gY5iVbYgfg&jW#j0 z4R9;1xNBJ^KCCnQ7NT9Ja|QL12hhC^w@SFgBK7M(te)@Vd@ffR-lG6VMRMf;+r-uZ z9}}y*!U!p9Z>CthG;bE0RqJhGy*YO!vJvn4WL5o3H#0-u!Fq?rU!`RWgtGc0R7r$9rP?&j696|z1 zq(mJ8Qz9*xoKJcC=DyekwTI8Z+NA4+E^%k_jtnQ1DlVr9+#)7Z-XeWBZ;>5h$C*gU^Tlw)5|c!GdN{{~ z&dgi<`6X`AG%1)X5YXfbltL_S#LdqBj7?P+{(iQ+SF9-Q++Ij6|~HGZeuI#51KlY9Z{4WMpv0!Bi`11+V&;urN~{oQCsu@=fZWcLFQB6lqP&*82=ZMK~=w7|9kzMF{`hqtF%al8rcu8KKeQV}!TU z{Sf={LomKKzK5p37e2|N6dL}oeiE0TgOB;@r^wIX6XZwGC$waz@D6zDHl^JNX;#&W z#5e9FDVWu;(&0K*T4Ut$BdufAR8BP-HWhc+A^BbnO4?lW?_$hHQNxb=wG>8*MI*Rz zg}fu%zWvHqUb%8Rd;SN1VR>$rhvQt>x$DsFeuI_|{LtSB;|koc4l#}j>xW@v`) z%8;2jreP~Haljhx;kJQ@epMb z!wnOM&7M2Bx=-&KbtReXcB8tspTe`hMzFqITMKEsl%=Q+RmZEd)n%&sk^1i{xAF=6 zTF_F|Q~YzzU*W&z+|}FZM3-p<@sDG!V8ymRpR-<+9Wa7PYZ`XcO5b*3?wG~d+aY7} zoyQLm6_Nq{cAh{14G;)IC8VKPaTy>xG7?BjKvS0Al=r}$iJOu*h0VI-hd;F3wthVm z*}9`NOU2nXGaFW1YP%9|oh5&hjMx8BBt!6#obFo=q_SR1WrDyjNx& zP+Xu2l<5A9Et)LJSfbc1_B9T}A$N--i6gVHTO8^dm?mDd%dX;pS`_PH!w`Tl`b-s1xrWe=;?DsEd z_1V?zW~AUat-H~dgg9$?1SrG3M`64U0dMRXsd5_&#n~^%t2-^XZWT>t6h*v`%#^O!l?}#JZnZIC zw}Gl#2M#;871?&#eri*7n`W`vtNC=XSa2^koUot>-C}RoC+fTx429N1YtzPQs#Vi% z!oo_?qC`c+j4MvH6g6zBr3B7idMX83@qq0JV}kURWW0bYE&Y2;k4Zg~G?zk29%Bsw z*vI#ObVK&h8-Bzd+}!=Ok@nn#Ja?)-*TLd-e)Hd)m+D_}}(_;TK={*(5(J@n`&dz#CF+TBX*m-J$K! zUe)mM2aUh2eW8J~*hAxGc-W`mqwMZdv{$h>(TfFXI$c3qC<`iK-UHo)ynGr^gUt1q z-=;31ZYf~+NUx%+B<8d^-0pQq27oBX&X>M0U$L<4>>QlE^}$!UUo6i0*{h&H@y@~5 zoG^#~aQ4H8voEn;Y;Sf5Rsp*0Yp)?%k-_QULs+5l(;X_?Y_RoxSzEtx{kX>0aejY* z&8TGKda)Y@t{up)Z(Y;MTN4lHPw9NQeg_5ApM!g(cMpA1#a33`Q}uq8sH&Y)O!aAkCMoO(2rPUc_SXD`NTS=i&XgJ*&Phq-{ zTMJ<;av<=n(`W%@;=vQANr13*9ZL=osUFJ+o9sBKyXX{kxE?Ell;ie$dHnrqwnCa zkWd4Crw~7C>Y=?hd(8O5o33T^S3TD|5!l(d>+01{&FWRL`WM+F3%YZDj)#-u+b90I z`G@$G&+dQie?K^5(Ltl<_-n^bOL#{9d0}<0&X&&o2pO*%F<7`KZz?T|2MS`|TV`HS zHa7I$!1DTh;~rLU>&=0x<(G|VsQ%X|L%G%9(ObsUme)63S--uw%wO0o`{(TOaaUj^ zU_Yx>*bPx+-s+TtX!r#dV}3Z632K|P?;-r|KkVmffH}~(E}RMrmns`frEuh;ry^Ma zMnJ@wtXAyR)wY6aw^mbav&Tw827c+(ZXB*Ge>v!d=ZW(wQW4=25hYYsVmbjv(4Rug zqdr+v>Tpp!ug)f{HcZB$H>iylg2`sI;pdc7K^RiLlF=|sY6GIpIjU7IvWMge$f04H zreb8v;7sKh)08Bmxj;Y}@^9)9=uy`7Lapl18dYu9)h}iX7cF92*IstbWsQwnv+qxA zTz=%xv}FIvqHb)!tYz<<{#MgO_NG2?%BG?1?9EN=pf@)B^6A&~+jMndAp4fZSyP&w zlNle*{v=cktvM3siJeAIFAdc?q;u9o%K4D86`9UCMw!=}D$bNJ_5m1G_B6Uoc#{ZQ z3WvoBkJDAH+HGA~r~JspaMU zI!Z8Syce#;sA$jM^vN;kJfW6{c}@afe-O;f$qHZ6pk_5_lFbU-*nAP@q{-b{lh zFAN~h7b?}Pml}gP-{*&6hNrtG+N4aF1M<><{|(w=P_GVQ8Oznj4$~ zFhw&a2blerP1#p4MpO*Jl5NGDIKYXCYt=TCQdD!zj`~Hbs<LJ$H(~gU@y=HGMx*IEiZ<9)A#AjV;$faExdWlco) zK+v1NGiKtGn|~m-TQ@(thmGDoedgYKeLp+K(fWcZ=nyMDmy-IUQHgU#6DDRCNsGe) z9D~MUHe0D(1nqVK$Xlv7Kyh{;0CCb-);&XkVX;bVL>S_vI780JDzQz*Bu)ygncm{4 z?wuhvi4TM*5$q|!)&VeZ2jZ`Go2Dr+zt7`rQ}mHU+|3@d^LG10`xii=_Jp0+*x7@i z=_yJItJY-|01qjN9587pGsQ0GSVE~*K!-#4A5V!^LCo4N?nI6)Gm@RmNZckO)6p`|G4v!Wy|)w_##e{-Z1mNncSMack6vyvx{k6 zZ-6fQE2`%;KFdUiSRH5N>#OB!d6JLReWT>-0QSLi^ja^M`=Gy4q&}otz->w@D~+pf zwA^la#qw*5x|Bf2a{C>2zSOnO#oPT8{d4?(0N}E;g~x?wg+B~`7Php-$HiyGMSH=- zf;j~uShCW|4Ci#`D(5z*>P(cV-b4;y6-Ej>*K*)LN9EyS-+LrmC2xf)cMcC#Mm zLIF;f$(E(Xq%R-Z`kgPbZ{NN2;Z3L6^=tcXTD{==PtIStYTmQY&R@lYe_3&r;r_(Oa1E z1uZ(U4yfQ7bxG<&+2`_pm7SZtmf0e^ubsDT(_h%4RR%B2Zt06cYgV8A^@pWDNL;^c z_vuwjKe`?Z0(+rI{TXICrW7F$e!1~Gq`o5=l?569D`R)653BG4hUjel;o9EgRzA_i(8avaZRSDb&!>}I0rjdI7N?OTaY(}2Zq;&9|)^sV>4qn z#E{EKBopbx&cwllMX8|H$grgzE4V1j_2w!W++26Lcc)IpE|dRZ|53d(X!`OSlO1fybWfuh!9?M? zBoE;QHgl<7PRIt8l$aJoB>-e(;xecU6KJv?aIDU++@H05dqV%K*Jt0{&@poTz`OeQ zU-0d-4?H!#=dBB#-aL~JY5RWXf!3AtzdyKF&4%gojBs+t?LXbRV$PNGd&Mf2-uBn; zJizj|jc&_idr#iVelq;(C&vtQ+Gt*ZZ1lb|Pn%YHGQ07!8yWkygUtX*CUPwDenjku zuq}}t5xyqIZY*F^ix(8%Tr8;N`r=a2qilQGzOo}_>Zt0gtCv)ZskIAgZ>|+f8`#@T zY+}=#rsYlITRvvi+KW#@Y-Q*kRCfx*l|9woI<~lO6$N&eW-Ob$41>+#0o) z1QMYC)Fjl#gx&G)ab}IzRg~0uQR?n-r%H(7Et6X4644SW33o5q=|1Q_<`y1z+C9Q8 ztZq`4sDq}RB6|=_eF?q**$j9J)KONt36$N*`3RC1YZk7^nd*Q|nF^kHmq&o)a)A5+ zN-o2RH@$(}B%Pn2(n87M2XVjepKiQw`L&CiH+*q+)nbk)?}%}meqrpHgwwV|tGE2+ zlXWW(44m?v?~WZbXv`x&9bR_!&Cb1!wqdJp8#R=tvKwyeSKs5B*Y`cj^etD=uDWGy$CFPkT=mmw{`I3KO&SCH2+fT6dl`0Qy|UOCT*;d`@Ov{(dJ-SI z*~ba?WG#ELJ4-rtmb3DWAr=aWm{&_D1Y#y$5HX8Oa>_O1EA>{FB=uH(ggy<$wOIHl zrzAylg38AUDj~d@MomRC;%HJv`7?n#s>pZ5tk#v7c z!mU#GDi=GsS4vE&2Syzm)vp0!KqC;)MAaHmO=!`Vm4om=dmhSP_~gO~Hi*}=!6#;3Kkka# zCrte5`;QDQXDa~Vxi&En#?Lw00Mo90=jPC9X;oec;A3wf_F(xwgDsR30KiOoiE9~j*Tuo z@J0%D5XT1W)W$-PRn^-D&AXzi=5y?E6n`HW zs`sA9z6Cpj5m+9QBS--HzHVHhiLije$_-^GSLI-oJT@|qZA0_VxRPWelWbd(B}Wvn zf`Xv_pBQN5!a$Xx021ouNT|p1sl(px;&N)vf$R}5+w}a!`K!PUjUU2Cr>7n|D!~$* zv-dD?gety49^}Mzyo+t{)=@l|(vg@GrUEkgntZ7JIQe##hgLR@JTIq;>U-Cja{6)^ z<%QYdqf^SgQd(CGkkYFEVdt?Q%2_`*QoT+61oB#cKq){BydL!CMmB)`8(JqZA1Wph z_s)xyM$w>0Ej5HY>4mqMbms+=!tY3cO=eF2MN&cAeIw!)g65yf8NhD^c+4#Ts{bVN zSOiO;fwJjuVLf;|-=c*eV-VG)-a>PnSPAA+NxCxE1IWu*6WND5%X1ATvM+Z&z;|8f zE%Cw&4`%n9y(yTwr>iZ+$Ng@>4nUVyaf((vI3(niXkd^(FJDiRuPgBL6Y}*`xg$(( zybOJh6|$?uMErt+P0?D#FpsV3D>`y9WVe7=a^G zrJ5zfDp^6G1+`L9M+b!7+WFE;*pfuHiqc+O@{-Iz%d%QHd+=$eE@7mRmn?x-Nall@ z5Ww{}cW7}Vp!!hdS>?8I zL)hgd)0d_*V^);-?_#yueao_Yy;H7$-f0EGsDW**R8AjIVpxG;u(NGyOnp^-TZJp5 z#Jnih*BrF3?t;8LKo+eIaSnQyI!{w0vFXXh$yKrgwasiseI|)NOxleUorO@BGEyT` zi&LvomK1?*KFz+!4!S;X1uuJRa3}PcB}h!WIur|RtlU<4rqWVbp5TsTsl%apO7bdm zHdZLrLA0YPp(HB&1PwBkUeR$FTL=)y4|0~_l3b?;7`mg7Fn)=0#U0qtx&BmmRgHvA zmzr;sGRA{I(?Lok7eQB9)evg{AHT)p`6p?9zBHGcZ=r@B3R8S77P47qz%%LICZ z1+u^FKVsALeuEu1MT@U)9kx5cs`18E{f0P}n{Uu=PoDc%^+%9(xw6|>#X|_DQD7ZWLvmh72K#<3I z&>!TN{W-{%2k$_mP+z&H)R*8otfyWil98v9&nNkSBzrotKf(t`STf>()&D)!hR(LOURW#s4VnBecQA+CxY4AoJ(q4f*pq@^ua` zam_JYYL6ArF3rGCg~|;FlrS9m!9}H+cM@!HVp4(+2#*c(BjPQ=^P&mOX0xV%nyvO! zX{wMF=INzTtG_f2XJoN;qjj5AP`}1HJUMQ)SgqFLA~F&X4f5O+zQH#{`x>YT174Z2 z3X0^CoG2VsBC7$=?bz%R0#6ctAi5u0n)51FER`Lobp9qUXLqn*oaI%#?UbVeg1- zU>)f=L?DSS$s8$mw@`t#(EKiAGfFG*P~Vbq(MuP-bkR$>v%Bf;j3b5j9rV6~-Y;|Y zaJ9M6^_i6dehsh*ZUfY^31k4>`$ajL2&O1ih&&;hv@mtQh#P~WF7~wR*RE48^xtT= zO|*$GY%EtI64NVn$|b5#>-+Ur(4Rm%fb5%io3d{eT2GB@E}IV5j$17~QS!TAlo@{F zz7eZ^qhhi4#L7j(15t(;ESjO6_8!L?J>4NO9l_Zw-Ln0D)y3c}xEi769V%bAkNIRbFrSzoDk7v6yg#@+>DN+(r17%hHbNzg- z|6~8({9?bK_4E(&-|iPyf7D;$-|t5o96#%Ye^!Au2VT{VKgaQ(l#R4Hk%v4$LZIOA z`9vh7UvlxAFqrx zqf1eO*-Bz1Jmd;N00yiBI>IEAmY^w>R9~AYS1clq(31yaawu_8wp*zPr7+&-iJIdN zW-K{1Pc935)q3(&Nzs$WC&Do0P3TLSNDR!>-{JBL*`vUPr%gRXa@K^s*>&vtw}zJA z`Qi_z)XaVPS7R$?R?h1_{lkCnlbBQze%#c`16m{xe2D38N1|mDVc%bU;ZV16K&-c7ugYiq4JliK#g$E{Xz0#YMtztBzIk zP|%Se88~dz0wE^K%B*=L1(#C(BM8AztPn%+-0|J`6q!`;L^DBP8AxK6Un#`5-6EYR zr-gukv(suN*;pYP$~U|LLdLz1;!;SsnPr3*@@-U-_KotI zbW1;y*!rukV%I@tZM#lSu9j`=i0-x6c^T@2bi?2)(hcW$=yK`~pU+j% zvc{cXoURIYCiv0LeY~{uH~cDG4}0GB-%Lb=J2xc5Dot~$S7^F2yYzW$)a;MqSV9Zje`h zO&qbj1`f#oGAdnu77(&HQ%fvOtV@Wc(RERd4kNCao*O(|c#s?s%xx*cjqNTj=29U< zorcfw`ZFG1(s#^kv}YGSr&2&d<08JNs3;Zpy$IES^KWRz%i<(J0)QC7c>pLC1KDJn zcf!{>njGGt!QhSDB9QS}1|*&H?`1R=Z4S+#5cRAiyw`}4iz7dIJA3HnK0RBnTfBMU z*lqPotLFC_cFUNdLwAk8=KI%Y-(^qm84vws*}Zq)xc0K%MaJROJ>6nW_50^%KbufJ zd;blD_GoSNmTO}OxPYSkd6-H&CC6UGgxD}GIDFNNTOsytB|CB{ork-pY@%t{XgCPW z$Q&0qnxgmW&a>cGat}T=XEJF4IuBbqOIjU?Pa`?dW z`)r_Tqh}F`?n15}xyAr?#pyL`XszM1YT4_YIw*ORD~!T?3z`eE5NBigOnw6wZsi`c zYagq_M&!DUcBqQWxnLHhW8~AxUQrWSGvov&N5@o|&_oc{bZi2Y(gY?#QghVJ#>DKW zmZjD^=M=bBi^vB9idmKS$k@{H{F$6gNrO0)_YC`mR3>C+*v_Xj=~ZnmrRfNunkOWf zMXVL~i{A?ryo|*+u=}mtA=8x*m$b{h!ghAV&K|cjZui@Z?4#^zPj3H({kL}UXFF@Q zx7)eR{wk$0b%C^>gQM<4K@Ny=m>18T?A2=OB5379m_MWu@MxwmJ3tfa%4_01AnjZL ziux#Bl+k1tr!r@KKfCpb)vMX*A7r5b*k_MspT<-N*`KltO_}gVArp(7Yd|Eq<)0_v zBXKR))z?%G2ne_#+AUJmfOWwi?cB76ouU~(dw)*Ozr$yGl}_@#5A9CZXUxv&c;Ynh z;6ZYW?3v&}unPeWn$(+F&gofo_-D@yX@>w#n7{R02ccV9GaQOchL@{-QNlc+LU__DEhfoI6Ds| zR;%z(q}S`bpU!G|AI^tC5O5Rr3)DU{9%OjML9qj%CN05W?8=OAmzHo4aky0*p{WSi zkqDlrLKmn)^`bF%zJ$4z9&zVOIla+rCXgwn0F;caZVm~dAelU(M~m08KVH@6>3<2VBZt- zuDcN-W;ts9E@m(WA9$Nl|9atX3jbIr4ku3}KS+wrXr}QN`e*pqL%wHxFZe$8{mo~2 z2v7JHxMgo6bZaHNy3gz7eut9E8RUIi!Ypic_{k&(2(24-xi;Y<7dz=qhf;9SRCWn~ zGEG>NW~xc*9rDsnQ>KX+dteDe4oG2}iKbkdiIPk*#pH#xQl}O;5OfzsN2SC+)Et`V3!} zv}GTWbN7z;uAI9f<}~Lh z1L6z8uV-se%XEUN*F&3_o;2Jv5PSf!nFC`ikc!)D8)=)4w2IAX-e> zePjWlZQ-IHKO}|Karz}>UoK9+ERhKq)I^ekqL_(<=Vl&?f^xYgsuI8huz&Z-)pL5L z65)m|tJ(e~eI|9Q%ARVB_o}Zskv+oVPc_8ZJIA({gfvTbpg8Hz8#>^MQ)Tf;kKycR zk7f6dK(Lu9-JvJ?L&~~h{J;e4nj%Q=T7W*wj67f_FQ`x>#dP#ry6{v8lk7FM<8UW{ zJ2=16jN(oK9Q$YYug>mAzxV-X?-%n-ocy{VO&U`c9#DLk$qICSKM;B~#Fu*4d3lxI zq7T;J(LdHLZ>b-uyi_!b0YXF_N`Q2WhTB0eo7_f&MbC4Qyy+M&$h+$puG|JAlin49 zLWom_pd{Lbew5Lt9Ly4Z;>A}^*qHs(@UqpO$bgnH+j@0hEpAyqVqUMN7bic$dw0Gx zuW?*?;T8RN@LnV-L_X9nF@_M^f!Hh6QF_353Td)-4H*f1KW@04-i$E9Q2+#(IeC7b z4X^z43XLWX8QoALW%tMZe2jC3lW%e|yEE?OXyL|MQ2#^6l2|pTAH`B3w-uCYtj4`= zZ&@Yv>pW!~#FJw5f@ADu_AAC;U~CvTaSKoxf-Y9gyq&9Wqrp4+SX)BkI~_#B}d{}BJf zeo=*-gHsc34@Xa2^q<8fqKMcF&_b2(7A0b%XqL4rnnjd(C_?NJY9T~lG93$LLT{PL zNz#bg0#$QqQBTvvn z`Dm}60_Uxe&|C!$gL|%!r4y`wY)ouM44z)n&cl|p)fdXV>SS+s`$ISWV1`xi7x{)u z^M!q7K4J6uEJ?)p;=39}!wVvxfnNc>fY;oDD zvTbG0l^rj$LF_iDqXc@HbjR-`Q5J3V?1S(oG4a4j=KYV^-bbm1ZKv%ZR2)d+a0+w! zh`LBa86D|-2@N@kR*rmVs~ORSdj$bYZZhOeYDo5a?D7_o5k}V~NgzNA0+Y)_Z3wWl zL?Z=zkuabQ#$Q?G*S@u3PQM}JE9we|e5Z{ScbhW0vL?7Jb?bmDpKVRpHKyIxZ*BF^ z%)OhNg6y5r%$)8`Gw1ipbJ=YED4H5oCJKgo?@z~u7In`b{rFw3Nlet_1+-{EpC#8- zb=me;)C0&Q^iY09y}V8u`L19llEQ2pjIflS4e?C&%<~9YTo<VlQ!319 z@e;jp`uWbNCy~%g6xq7bqy?2@iE|0QD6uucpGzE1@VW#`ARW`Oi(H z7tDs^Mh`oBpJm$f+3fsf`FwVKS)9)fEerAX0GsVv=0d8Ai4i*UAS<|46HYQD98M3} zS~vG1=01<##2*GDG_S86awg~5BZ&PL#49J}!-vy{NvMlR5!Xrmu?<}?HK$M_a*Gh) z%=F1v4QDXZYGub{W8qbxs7R5YU-(${9i4|M)I_Z*>X90Yk^_jh@dGf}Nb4YRQEYZF zl1#$-2&zD-r`UNC6yLU@?@gP=4gb!-v1^AeTzJD3!xvRG&bp?)lD#u@%JTVJ{xG>_ z@$~G*d+%9)_rf7lCJcfNC3%5axgQ)RLm9~a1{D!>Jult1b)N^PN1C+ z7(d*L9oE?K+LN_htqsZ_!@sZ>hXaFYqcuc2XnOKYzYz0lF0_3D*W+@$k7N&|lA^q@T`j(xWYrM-gQ zu2lMo#PdkU8qPo_*#*6c{DKL_b|V!x6-|F$>IDBm=KXSkV&qR{Qd;UrGj@z}8~Szn z!;c&D9$6uDNkDd*77THQpes%4V^`Yi5=A#=w)H~M4ei~F_AittRBBTX zOCk0;(RgoZSvzY$`?wn`0F`zO&;qG6y7c$WAJ)vIRdw-{F<-pIj&%9&X z?8}GTx}mMb2-q8+9FnNWrm{=@&rNQu7k^ycGwyQ*6Jz`Lh&Q`8*Tsv1Rnvbmerzx_ zy0T|+{)65>ty@>$b9P5jX=`CeB<>6+_Z@9%!VaH-9sVZp4tY24(^%265JCvGmUpLunUn&RfGXEauep^wa4F>f+rQIB5r#*RgU zrc4?#=Qd=bhU9eQV~`*sx5~>#h20AgSV&P0Nls4wCMjm+EzN_9oEUf;^(S_QrY=r& z$s`HyMZ>;;JM<$dCFnm2U>mL^_3`8MfOD_OJV8vmn9uV~nlbj@)QmVW2O^Vwuw)Ck zoV*|{!UJDXjR>FQ;J|rNJ=W2G?SU~B8wX9eWzh0P6%BJ|buX{Z%)F)n>T&YCJ>wSq z@yhfyY)0qJ*A1CAW#HoZL#B*}hBPh8%g~Tvuw8-&lmymU4KhLN66`>X9S)vA#^2*i zI*&Quhm=rybjq7rDT@p&#Bp0KmF9K#S3RX(SK66w(BQ-Mea%FH7<90 zA@qVM9_}b$`{L|%?KfzU5DJA}3jH#KRzf%uj>Y_%Q z`nrn-&0iih>4~l5NAl=-(LXh5?3(N%DfXU?V&GG=7eU&oIeiC{^so9W#NMl!{7FJk zld#^)!AGwx^Hz7u_`Ow#EPDaqmzUj9wxvwif-L3m=lQGsI5I|UL7N;aPP;>ZE#C+n zPn=AgNr(iRa`|@paGtR*V5$o@WLply?t`hDWzDRtAK~h@Ni717TgtOPxQ92Jaz%O>MOpbTR${&KojQrjazO zILrgMNVP;lgmB5dkO?Y2sr<8!L8Io69nv=QjULxk&R#kqF*I+WuR1?oQ`xeikbm!; zhUNt;S~3%^>DBaFVEO#9=&w6XSc{WY&BdvEzbgL-^{F_s8#92jfzRy5BovXAE5t-B zwXU;nwhArIQfeZYC`pK3rMwXV-ZJJWL;RB_!hh0#1|`+tEadOZ$3*1knG=!1MCe@; zfdgDN>f1n~v$%9Py;67Y3kD0yVkL+@CH52)C>rVO-5_@%y73RDLI#_0WZr*cDli}a z>B%q`e=aj+=8CDyF8HySj9dpg&>{JxQG+@@D_>H$p;tvsx1#vSyg{yRnWeKUuj}!~ ztN}yD&gV}oXl{5Xc5kYvrQ~v(J`E?p_N<)0Jn&kNUNa_STBP<@p6AbCHxw#qR%i^) zBU>3JTWRaYmUp`Y{&O{Zp!%t5L@U_l^6ll^TEcEDxxIvck;j_z&;dCfX_3v3Ew+ce z&v;+(Qtlkbnb;}Ghc?D`d&omBoPlUk9x|yhFwvx$ElHM{U?d-4#MOSO3xmjeSBW~xUmE0WTg;oPnqNfTbL)+gG!miLYcm6UIo&dOB3mU(68KqdwCz>U-j^0>y`{$RXHG z;$iW+_)_3}uS&54!D6*PPG_nV&7xh1Kg$4|SELZ#L~nE?N0Et>scIBHVs%W^6uTA8 zLu?M_Dz^`$GRLT$_d8|(JonVI&wj*?YTPokR9EdmJ8#}(|A2^|ah$o?l`$ng*D6IA z63w0jps-N#6vG%{nP!1OMTc%#oq!xMGIr*XGf<|G4;F!38pz%q&&9oDMwN6ee!Sjt z{xq7eWKqTWf>6G1^XYNRm$THP+0#g(E*_oz9Rgjiv6Ad(q!A%wwLA7;QhED;5{D*) z0xX~aR}@eF9U(#Y0r#tJ@qp(k58qS(_=H43e0N@0bAiQ_ujIov$KbK!a2P-;B=d{_ zQv%+=$bhg0Y|?*s0?U)r#&PHc_!$Y~G76QY?P8DzkFB7_s>BH$VLxX+IcFCk1#w<( zEVgg6^E#Y$Y_G%XZFW_++mSATDkC5z%?BP&*UQt<W(M*^zMWLcAa~*`w6$u+}quXxhKGB{*mrMnH z{J7H+lxvE7pDv&XXRr&D#{m;ZC@ckdG7`WXpqyet1j+%95=M%mL5Rd7vK+&qp)Cik z$E=@N&so*2XxVg77T3xplf&Pp>z{ieaiJ+P84rTzPq?HD2j+^VzMiAxZ$2?{>XQ>k zFPggc(aGa)uIo8(VN*KYv~XclH!DR%}9S)NkztGg}7|d;_e{9K>Ps5 zMgK%XBI70(iLTS^(S?mEDgEc|7vS^-IhM)u8hprV=1>HGV#K(| zZrm2QG4}8)$8IfJR`Zt=!^*^E+pnH~&yC*QD8KdJ>;K(9jU$PPzH*)UlqTmz6s3}Az1Xo{>{u`MWA;x- z2W>?$`$1VF`*-W*!k8(PP6`GwA@+CGb^Ohn(>>=e=$XEG%%mqCpEO4FUD7^&T>EuT z&zLuVW^M(%Df+^(q48MWv3zV1FNt3gKW9IxU+BnNVRg}XC??|jPmbrmvHmYTo~~to zzU+~|IcC!1PfQwvQ7xF?GcEdVpE)0k`?~gVZ ze1il#mtacdWQ6-1!Mq?(dFpUHH&F`w9 z+TS#sLCpMlTKkR&HQ7fX_{qHl~Q$&<6F z{j@2xF1zygga&@%;US}!4qUNl_-#KOQgU-e!;Bd{sw*01&dyYdwm)5!o|Jt;{Oi;O zd&ke5KX}SjBjzt0IO)nEa;+R^8!b=3W8P@w-Jxz#cTjzb3q4P2RS{O5)W*+g^I8e# zqB9MI7{W7ne7hBo%L~Q0$7)C(wQszDW|wg8Y(0#FN6=UR9_jYoUF9487)b zvyU#eyL8SZ&-N&ol1C*~6Q; z1I6q&j-f>h*(1|-wSPG+J0%l9?K>fl*I+@P#>hq^AV?nYXI{41zunIRob`3cm2d8V zFnV-QH{=iupJ@fjBJLYuXDRdGD-^nt%XZE>| zxVhEIK6kP(s1iVMs{#!5nbv@nUPVy90tE`LoF|+Nr^5p0^o3m^+-`oC8SCK-FoX$Cn73KH>I9%YEokc=Z8HqUWT zC}@pC((xc`+9-HUYZ4(&War@xTvW{_ymGkN%h}!LaI-7<8#oNh`xUV)7-P;6(Badt z?>{$^a*phj0sTC{w#WCykHp1;c~9r@hwYSe{xN1O1`voj!#a%bDhN4gPrD!%kKtsB z)9W1R6jo=%458U_m{6CwoZi%4J{<%m#3NNmsUCTR1&TiD$+;jfA-YTe69%^hc^!3~ zptA~v9t>Ur5jFr35-!3L#x5q_A^OJ4mC*$VDWEBnoaa}Ee3DxvYWMRf@FHZ$-Z9}H zJDu%Kz>qzb?MA?mT@OitDZuZ8r0h7atXVg#t_-@2{#O69&hOJ7*LUfn8ud&=bTLns zGzqs}pz}|4c33~5e}HX=w7(r49_5Ns&vxLB4FZR z(g8eFln0lS{*xV5!I#Tr&-s1XGacDaRy`C8xl>!!r#tKU8`)89L+U27eYjWr|C> zKSEqfJAih7XN<8}C18!X@m3GMuMqVt=AGrd8py=tgT>W~F|Q&Y^{R zl8|KW7k^fNQGXqkV2FSD5!a>4E*~lfVurn3@!;4{2Wq~^D4-7?!sJ)96)~-dwFeo( zXHi)O=83S;lxE`eFd{N7vNK}w-~o*vLP~_?MHG}}jHbf9>B-~ClSxZma-)2r9ztQR zI}KsM44gpt%5*m1m*I(|6w@R!=f>fx?)z} z%KUDnCAIk#{bpTpc|-qr>EK0m?E|Jw>p!q=(U8)3{|4T^G7;?4y?dWvV&$-_>Zae@ zI&o6(=H}j$Cbr%?z3!@<1^%7obvR)S%0C-@>?v4<9qIuTGm2U6rEdPK&_^M(Jd71_ ztu$Q9ZRN3Y{)ck*cKsjfzo-|sKrFy_1P%mV4Tyk@o`>r47w6-cl2m?OzLEc2zD3W^ z7sb$G;7iq7>Ij+$892||8}JqsRHY~y;#I;}uu-a8;-&n<1qLa-jKi8b5!W~IRpx`0xS$W_LRe@5w3No%FO>*8$@<9ka?!uBXh^wj*nPbk+s4+X`Co2( zYJT=!@x$Z8sxNO_JZhQSao4iGO})dxiBAt0msile`kL$~bE?|A*Ys+VD_wb6?sF@1 z8^e29hgi{gJZ9xzSOL(%Y0>1?zfGr2FQ|yI8mss>`X6=8bBlhr&acuLQESGa_KIw8 zN*8`jS8y<^j?>;CJp>=*=GUaSEGp`&Xv60jVI93DRV(tx6>3kF->yEWK8@DMQYTn7 z1S}ADBg{VU4gVav1BCxI=qd}R4|ix^=>9hQ(4yEKtT^?%1 zidN{DfM}~M%q4>GMLGhehC=1$x~Dw)w2mc909=bfMhyg@EB^Ye>}RW9d4u!>f(`-x zM(1n1M_0b*1R^>SFgVWcE$s_9ORE_q#~IMDzW%#A#(VP>~|4 z-$!Be^Zq0yc`ouNPlB3s-lLSUzXT!brWWECcr)Zq@|-J)iMFN@^u{(fZ7@V|KCxrw zit&c8nR;U);n0A!4OamY!xzZ^7kr`|!=|hp1x?11s>7qpKVJ9z%w z!DGe@B2Qg;MT}PI)Us;jXGXa-1rh%nXJ1;`O}0C2U)n^4i@ojsgZm4&cq{l}kiS*+ zVHNlGMO+)seK8*MAmR$_Z!+#wh=hRZUXRDGRe*w?*b~+?2PiZNBa|Xz;02TweZ$9Wa=inn8(;SN&2hCHF>Kx)EimG9sy0Qqg4xtEOvnkXA)qsYW=w%{V zN~RP|XoK};<_&s8%p5_aOF^9X)T!iDjJ|8gjW^yubK2n1YoZ%^w#@BWdfBcks#YaR z2d6#yte*8^`t!H;k5jAKo0mRt$F(v+Oprm9YB8Q+^pDC3)55^XEKEZNB2Z|L6|q^Jn?sZ}d@;@HI*A zBoWPV;I{s2J__1sm@wfV`Y3BI<)Ywf%DHdx`*45%qo^~PL!AZx@1jmV_^YTB>l7yu z{7x+RA4WZt5ps&uF5n(|DzNf&_x}T^r}Tdi_1yno06kb`kTb0^B%=SvF%QZVOwi;0 zCcuN`C;?Bw|Mvh7Ezyer5A1GsH2)PeToEjAr!n}hx<~5x#9B77lFh1ITFLJ!d!&rd zDO-+a2C3~SZp*(Te@p(3eAO0VcZ9cucZ9_(>ryL!5^Aqb*59C#6{R^<79Zj`dy1cR zVti|CXY61M*-j)frFqT)p60Ykoy)zHoK~uCXgz%-=Lw-cov4+$FTnUxGe8E2L)=yT z_f?LuNof5V0qa*|Cq4Mk6wAz}%~$){l2PkCJ=ik*qlxW-)bv3sU%V>4vRh9AK($Q^ zXZ1+`?x7iTZvS~>KDQPp2BQJft@A#6cJ#Uty`H|})`i2Sj%=HML;Ls<0|*Oc=ZMjK zvcy6^`Ojk^A`Nw6p@NIBQ1W@r{r?vv#Mplg2|+I$gkEqcJN{3Q5Ma<(kdWJiK?O$f z*J032%AE?AKxnDDPUZg{D1_pGZ-hdqBK{f{VoKY&QF;@56FaHWaNBIET~$1EjsVK@ z5AaWbhSR4T4!?Vpr5n;mkG|n+j-}~bmQoZ`Q&m@l8jR@;deh%L=M>A)JpZ8KW!>y? z{+oY#+}XBkSpAg$i@P_0kE%NR$L~4!-r4tkCX-n*OO{D8$t;;9WVvApI|<6Fji4eT zE`SS)8>zA?3aFrHX;9p-Do6kUm!t}~RF+nY+6vfTtCd;`?OT0IHIx7M+?fDs+xPvy z_4oh0pMM~8?pVEjLqg!67EbbyekFkHvx0 zx4*Ky&|4WVv%QKZ7IS5IHE=ZkLjJnQFNX4`^Y;T33oh!T7z<2a&8nb*g|?_i!EGc z7FZ-16YO%dzcQInAMc9}9#?zyS64xx*4F#V6{0`0Wa>p5FP{0}#`CL(-thZL&o?)3 z)Eb<_JWZj7?6HeBUzGLEXt^FH?A;_Hw(u8&x>`JGf~gcS{U3nMke(u4I>$;`2%15Rc)8v3`Bn4K=%SVCCu>QqLY3Od>m(f)36>PXvRTYEBN`6S4V%s69`kxL zy~Rw-cD+hn{t~hq^jr-+DFp&mRaG0R_^Ogx^9Z29n2FX5Z0>|2`jd-Ovx3q2#IN6wo%bG0-oG4j%x*}d0IzxADW%if!koe}<=r0za{ z>f}FXPadBC<;Izp>i;r-a(BlhUF8#(-1h7Bf#Fr5vGZroydmnT)0bS)n5nd0llsy5 zrLUcwJd|uY|AJrqEc=T^gImC>e!ci>?h9p*CD(GdON~!Bw>#+)=UOMd!AT}LXF6%x zIm`)I4Tm%8MCJsR09pixxXYy0=#+Ys#i7%i+#0ngp==#ei*(XoFWa5juRP+6X z-bjmPlwDiqnt%Oy7X&gB&$~eJN@ID6duY^p;Q~c#*QL=*U;s!@)MG(%XYl?Yy&*^nIJe)5z#@g-Y%OpWB9B;aMAVdEJ_Y=(ours`IC&&-Ac5)< z@1eIzEE)O!ezXq@9RNPz=EU}{JnYLkyi}j(fzqYB`8TI;XE@lbH9uVtDrP2ZE4s%X?5do5+9 zzT%P78ZI7k!`0{ePrfpNx1`M>twKZrxa^BU9~l8|^YH0MxN>5XUizYxd|FEOmj1Go z?kFX*Lu5*bj0}<55YdD@p|TMFjDENNZ9RXJewqFuJwH`{g`SSklR7a|8=b9rtHbgqla%R&%n|oglD;bu3;av9kzB3!MZ;AI|L4Ozi$rq$sHrmM=8`-EM zYjk9TmaNv2MOrdbJ6}s5&^)f8muYU$EY|RoG-RlTL^Nq+b;7@?Azy09?-^9eVGVsz zL!Q)-2Q_2~g40}1qe?9pj82!q_^6e1T31==JS%AjFgtCrqEu7BS_QufD^QAJR>}AF zgL?AU(Zn8XWAYq7x*sR9+#3E30cL+kZ1QTP5Q`&_+6>!rWjAHUL276FB89c>*%KO4 zF~KKV?J7}U5OtdETE%Uf-IYe*k+*v5G;NBw-k&TfSER77_8-hnf;PGdHY3#gM0q)& zkSJHdXoeuH0Ij0D61@cP_jjOk`;*DT*k-ZNu(Kjxld&Y?C`xGcrn2wXj20s1TS;rQ zIt%0v+TSL;&uvrOg%vzZ!qTCq?c_gs@+8mT20!J6H9T3$lk0hMDNiQwMB+(`Clafh2D01mw&7O>{t?4Z z4D>Doxyo>>fnI1JV-2LiKq?HxYan_9`N}~4XduiRKwmPDXAR^Q!`+5Q4E(Pge{fKP zgVXJ!WE&+u$^{BIq2O@`neSNQSnJ^NTa(X@Q-qHweOqAf59KDs{&_(2IdWhRc3s%_ zJHWmJrlWW>Z{89449DdB8=}7ljFo?wd&zNLe(kVgsxiz>u$S%8xg9#=WJ?nwd5dub z2cx$wyl6-ulJ?uoev?_tE6z_FMb{2eY>95qx>d{%Rvxw!kUxS{n&_@pw7$hJgg|o8EL%O?yVcIK<#*02ptx?R@~cC zC0*(t%fv5HTBb<#_h;W0q9ml)z$wLK_G=lzavDIjyTw;%l;4EzD#T0!$2oxt1Kb9S zrGF!3H&gmGsPys(*L? z9l+{fz5HXYm#{rg;)0Tc=W1#Ko)*4Nvf5L1av8BYgqNeAXFvP@?Gte}2ll8qANB75 z!z(!vUPY)|f!gqTP7By;q7T^QDk2|CM%?J}lK`g&74%37{8+jKAhz}ZUOFl1)UMKQ z(DDw3=DyNE<{QXLdzXE)9T5*&gIzG=bfg0)kOG^bmKy8|RCaJ9<8wK;jzg~DhlrYB zseu4xh;s`O3Mz0Wb3n3McG9<{5~t4O@}``+V%<{RgE~Q}bK>%Q+-%bA(tW5q4v=&~ z3@8=5=v&zTzQnnEAB(AG@Ni?lOnC4X$3i$cuZ8EIIa%P*Nzx`Po1Bbw6i~?TZ=d6=3Vp+#Grn8VjsRikmeJ=JON_| z^Uq_zY|L=b7e|9Ez7wS+95OtScva8+w`TVr|H$-PVkI{})$`RCJv~(O>4f3ljsDB7 z&HlFUbvg+Gk7^yKfC!#}Eq|<3k|rdkCJO+XPh)zLwv$pjF?U&vT{flIB`CY7RvQiA zLp$ld?M|WDLM%W!H+{(fY0)Y64I<3VwsP9?du&E!sJ-rP#tY27+glk2Hd08#lC()UdTB!Ln0uVH+fGApw zj6QF7JFNi=klwyz(G2JWyuPdh2*844(jJl(Fq}exEC|do;o6I8#`jq54GqJ-Uj8b7 z6JNOZwh>p|_RPxJEu+ScnS94en$BJcUOfU{T?SsUN^DJ%cdCxeR327RRHsxf(|w?$ zhSP%5d>W8!GK;#c<^Xi|H#iG=Au|Yc0C#|g(E({RhZ)L}na^{`EME3i4bgv0uH5ui z&l=!*ZN5%0gf5z!J((Rxy51gHXXp#D(U)NK&&%=>lkBa)IAsZG1Ja>ULppZRH#sw& z$NaPdbU#NBdB4Wp*ACnz`(F{@(rrIEgvA0^rG3!%}h03rL}+@9t2T zT{GO?1a7z1)>g1f@$4d8ws}43NEL1*Lz%?;%gQ9ZGgVe*8-yS2a2vQZQKolN1VbW1 zX&(|H;;f32Tt=xck=R4xec2NrndxxfQTW$kabiv;oIYxj3G>-or$dCdR(bXZ=lmI~ zCY%3+gTJ>r6soQYPsm*=-TLgQS+fr1f0+Gy{^riyHC(kMR9zhkS7krQU8A-+9Oezeml8q2VQ-QG(}fc)J}i5=3dp(_s$^ zNadh0``$YYOUi*n-1OfWK7%!?$`2uT85kfCf!qJlSmw?8POn3#qG&**Spfim4MFdW z(7*1lqz&E>xS{X{uNTqK7|AwysByWwrUUUlh!r^djS->1hYVTpUobO-bqMw5|H+81 zynfz48PWp}%)%V){~A~pbKo`MadI+}G)FyR0Mo%Obl>cXjWhkO!}KW^ABz=-M=XmV zTu0tsy_%iY&gYNQ3&gho{`<*WIDL^%xPFe~!jgyFV6mvxEu30HsQ5AD@6sw{_^v_{ zFR4WMQJS5>`Va8kK-Jp~>)Sp34BtFT?mouAd zqLhEYlEFtR5d_u32@(Pb^6`dk0;?&%Qs@#k3yJ_DDNr;Kkvr)admz5iV`e2KPb&jB zi5;lEEoEd$F+>SLcxal%2iU*bCD7 zd%M;BDSiIRu%Xy{hCR-%EK!kN)jRt;yPf^42E2Tg!?kli$L}3-ZTM}t5~SDkb`KfG z(rkLW8=K_o)>Oi?c#LY_COQFkv;@HSu&i%px zW*(zzle-3sI$b%9$H?RV%Mz(6R>qYmh31@qi?Zwo_8q-P&__m zm5ML@UWY9eW8457S0Q_km~1TkcZ;ppCUU4aH`m6`u`RTHY&&HGE+INKB`sghlP}$) zMyJ@@?xDlw>(-XsZyV%`q`nYLl2D`0#*X2+FAyj#r>qS8AO_OJ@WZomafUjIYx?&n zM{=LB2wf5=Aib#U!k$($h$TPub~_8@>sH{M?Ck%`_JRVHs^$BX2g!GqFzCTF?;IqD z^X=a0-nqyT7m(H5+kII-%Wm%No-#FeZ5@%jHZ;mtNsWRrz*}*oyaP1on3qnUO9D22 zMu4;|AK7)}WkoVC9}2PR0}fs>VC9owA=3U@aO1+`B>3-AE=gxkxnvC|&2*f!th?EX z28j3DVT5`O^S7A4N7%yVn0_+(bN>?VLJ85$+~!BejBlaKS-&056uU}sy&?6B<;yv) zMc|*6kgNTy^Q4D?|Q8KIe? zp=%U`l}@K?C>c&CQ(FBJy#&V`fnFl18IS?>)>g!J(o1$Q_#Yb3;da|e7>L==Bu!;y z4Oea|r{(abU9wfBtzn-IawdAo3)qF2i=?^l04o%VExqH!QC9r+BV5^`_aA?egkZ7T zDEysanoe25&LRQ$^cEqR2wT!A8YY0Mbig8mV`IpSTD?#hqETRWfB7nz{q`H#b$j+? z*S+~OGW*r8?7PoAManmBB;`+T0*dAN#JRF_%r$GK-rsfY`6a`ruMyvUJ-cS_>)D6i zc!SJ(eJ{E4_1iXPfByK!>@S~sio`ZPPU0KCI?k6@%x#`}b2$4Hd248GxXz2+a%TVU z#rfj9Q~@$E8F`4~6h`cSI_@#abb*${v}B^16syUlI1lgaKP*i&8V65A1`l3E`E?Fr zMYI}i6s1xCtrZBM5yNzBbZU({nv1MKw#Ix78LhceLs|L^RA64vh?I&NK~QQDv#3-t z?T*D0#_`n)*Awi#9UVFRS<->xNgaJlS%e|!$e{(JIw|`D9Q$GHXK{WAHB=a1%8va} zcHB#S9ZGb(obwBaaBgC6EUYB#BYP^6^0!WK169ayAGW;S3@)WbD@z^=#Ezh0=iZZw*G$ zivUuLg$W6cy|CKJeP{8^7{VDnkqzLSAp{8t3V+>}-S=qr{Vf1rbV4`a`N>~z;yeF- zTzuv0=lSzs^W^SCb^4R2Y!l%sxsB45!@@`ea#?9BDl?UknPIXdK$g16d^ee5zR67C zZJezo7iv)*LPOzE0l?peC?7Qy2KdTIp)KM>VsIh&9{sE&<&aFe%JDF3o<0#5nAr`a_^C7`PW(SPQIp-iW(g8pj zDtmDi$ezjPN3k206Ae!wOp)-Bz@K}PeEk>o@blKZJ#KeL_O7GL!_Es(kNw7Nq2x+p z+IH)fKiqNStGe1r%kP-brlxjN;KvtT{VQj7)2c}2Z^^UtzP|29M_xr{)4Ji)Hm+T< zWXP;36Bl9bwt{MVAk{ult%)>C^B!t^x^ZVCUsRu{r;0j9-IH}Y>VzlLJJK|iN~Wl~ znyjndRK2VEbhWUcf~YIp6`Lw{RR}smxv!iqDP3Di=SP-A)vsCTUby?7a53=`sqsGwu_N!k5jJs9x7us-#_bi70Op>CJI1RJ3~pN!rGNCPN6Ps zRGaWeY7_pVw6U&nWFtRCJxfhv>Otz!YQ9k&8-!AbT9w8hW(i%ZFfw`S&lA-)R#*cVIlf}V@xJ-aX~vPpJsp&4+~awZl!mz-B4*Ov!#^Pnm< ziapode(dGhk6gCr&MPmk8}#1nJ71dJeeDbHp4?eKYVG~wT2d2NuNf=##RrY~(SsxF zn#ZnrU{oUw9slvR^^2GMc;xV#7d}cl?izLb#&dQ%$ zbI-EbPi&a8wDStkW<>T1#XiiHLfEq!$!O_^RSfE5UBjk^T@8FuU80UEY8|yt*6yek zo=ojX(NHp(r0Obix{53)C+c!{`KIz+Bp(5BA z1X@(UAJ`n|2?)CDy@b`;r4JO4N6ch`ev$qGJ%2_D!c{IiPR*ZngTe9@JZ4vE8l<4g zUX(zMIjd4-P^e29a#9e$U#J6GbE>qVu3=;Y-=Hq5XY6+lswV6=wi&yO zyirx@kW_P77T*R{FGHGaZek(r|CId$y#80*heZbhz*s*Z0LTfHB>*e0ECG4`qw*3; zB3r)$t^FMV*!R1+w>&p{+a=q6-Fe-ISKR*7xewp)GV#qx?`#Ml8b&?v@R-KF ziso@^)#^C3 z@1C>jiR)M2b=BjK%~^iuZ0Pg-ef?|1sR|KhVmsIQ1Fe3XO$E>flvU zNjzmT`GTo83dk}mDKSkkEi>`k)xT6zmCB_mL4D;Zs)tlht3FVvOlliNwXDI=^$KkTue855R?4)zI79i<|L>6N$$C`~5 zptskAe+<0hM8{#E70TOIKFCsrvNQd1-$2p{1gVbw0sGEv&G{{D;9}U5FZ*O#x@QmS zHk+2>J+Aq@04yf>pIcF|#IUs`77X!063Vc&KV%9hv6#S!oeUN$l_6f7dgLeB4cRU0 zTi&F}pa1aW`fPW%Wq7bK@#rdY@#qD8v!EOFeR!p~JG+N0?K>8!e);ifa1?kI zO1sh;tWc|LKvhT5cZswLwlqh~xY8~vy6^#)5b~MrEOQk_=y;z`K<)=H8Q|zu7X-Z( zLMf85P4)o1879DwBYYaZc$Ly-S1YUzmEIk71(-lF1;@Z3#p9*XfSwo;MJAUuV39ui z^2|TXP?A}SZydQ+jN@E0l3ROCCz>H9CRjm{i6{dF;YChZl%<0S2=i0QXyZ8Se4~gr z_7mB?!Q7Sk<%I1i*RlfxQoH39MH!O4lBNhd7G#o$?!wW4IIybl`2&I+MTTFg1{$*ffT)UvUGUF{JKmTmuoo$bv znzU#q3QFyoGUoOJS3FrUx#8=z?6BNR2IfInV031YiNWQJS^X z^uCGy-bAJplSxsc3cJGe&M^5ROfC!G5T-FddEHN@c*!ge$vDYV`0pThpd1`^Q~Ee1 zPFhSels{r1{4ECZYXez?FbN}0jA!Je_#8PY$jOP-;Z`fmLa{6-Zm18~6atK8a}g+A z6@U*Bs>_x@FAiw|^FsGZcNb7x+(O7}R{F3#6nldOf;+-EF6is*WI4k>-vl+-?y=Lq zLn_>1S74x6b?N0QGE;R}^{MJh23yjD>JgFfLH#j3Z9XFu^H5#01MwEXy*Z3quma8>QsF^%fZUEeeB5iTZ+~!XT*i3IlSsN~Fn3JvI(Kyzq#rQ*joJ&!nZS9JPVt zEdiv&2LO&J0lH9Bs?``*04O%oIRJ7-ce0%Enr#3 zrhTZX!_qV{MAM=D_z&#{n@00TsDjp;uXM*&clHIQ%DNbPg&`Z0Hwl}*u=~O6*4MJT z*OT973;CYP^_7*`cU}*8&3(5}$}80;w5sv?rRAxi?JUv4rI=P>A*=u#9#j;tVw& zKhFhC%CNu#agzg4lXA{B_Po5uh=mW!|CsxZ`LVG0<$~&Pi+}mh4W|RqIDFUTbJx$k zf5hrJFRYz5_`G!ZfsM(|s*(jWpC*cnE6iKm2S2^gvv^0r?TOg38=rHy7o{@IgR+Mg zKlaO6lUF<#u9(soaz#pQ)#F;mu9`AxapNr4^UFtvHQ{Pa<;bQVJpO}rx^4IraHIqr zISsAZ%l)UcRVxzhOa&1XHU(8H+zRSu#U^Q;a-H%m6r<72LM?4UXVX!Q)nlarg^kqC zw9U8CrS>=M@7wv)4l>+9mN{9ORNn0*Q=Md~^9|?wPX0324KDhLi>O>K7tOec&T6qn zv^twstMh>DmsyBtv0EY*L=9J2=2|)}D9mlq8BjY|p>@R)DXo@#uKh|&wN|f2WASo6 zBc~1EZ6P9A_nG!34lqA8OEG4!kbQe|7@f@nwHhJ0Sb10)JzIn1?Tj5$;G3U^Z<$Ha zVkoGgH0~kVb^?{vnPbE0%jZs#l0$Er*148Gj#|KN{EWWyE@`dkxOGsKOz>FI#I-lx z$E#2Y`0L-Misr5bSwYuAtTV0Rd+@?dl+u$6$Z!uydB|*;C^fW|PNKX$49v4Iv!@7= zD!^Vk>@KC+D+mg+*F}(Njn#+Qq7sPjhSc>P!R~$57R7WlhRDWbWxx-O08skT=aRh(Ytu>4iDp9(g)ya|aVuq4PyWgYlwUH zGi^l%eDb{0f$&Q%=4A2TI3eW1jxmp%K&w|E*0N{Bh-g!5u(G0X=rGS%so=sgEtx=d zNak^=f@7*H+9pM-C%TO0^8&7`Ly3+;56AJ@p6qxstiJ~TE|^Js-d!?v9Y4EA^U#@?*2CB%8?_l9yfCK2+@$9J+`vBsiIR< zQ+@CE9X@r-Zs6O0vOAHzlibGgv%x40?1sazCpln0dq+wx3n4Vm6`~bIBI6&0|bjZ`zA>&8u4CfE&exS0MK-6fVQX4VokD19zGvOGxpZsFRsjFjN@1DNi zJ*EQ#FwZ!UaLpJTcB%mwTy~6y$Y9Wr6|8Le)AxWG2d5O-Q=2rKa#8tM>e%s0UOI$f z*Z=T0d#@wS*`IC$rsK~)U%GHtOWR}FV-2Hzw7z{PwSD&RGq)XB@z`T4U~g~V_|WO+ zuUee_!P7HtyL~pS%j02PzL;5;6|2AwrjyCmX4qzmNTc-O+e(CXlgZ-cBHb&JZHhe# zDj?WItsuu0rxg^5>~AaouB7$qQR)lScc~v%i%;vxdloX(LMB;=HW&-iLBX$r)ZvTz zX8L%CJL;b4<_ql=_7isgD*LT=+F&OnYNT`MLfS1Ny=%)gyfh;54>q~)u3#jSGt^C8*XRI`0OeE-#MC4C zKV#g0#ssvfqTK8CKiK*6flZjuTBPH5eEghyN7bs>cfD=TDUBnmN0!wqD%@E~^R8gfZ z8n-vwr@==Yh%zAmg@r4DYJ99v;V*0}?7_{+Lb0$=F5UEF`}3&qVP9@XnV=_>R0V^( zT`5?6ZeHU9a_SlKfl3`r4Uv5_tQZ5^99gXsZr;Fgi)k9fBx0QmBhLx5z9wyAvd$xC zMK)ZCfD{ui&Te_^wGXqu0HsKjOuVcTgvvfX{xwEOvbSsO*I$CHzsN>+P6e&92S{xB zDzbXXuI9S>8j<)=7S_ic9^iYNn7-^g zg4*U_G>g=dqv(W*eTF5^{)pcu>c861_cD19tq^Wm_FYz`9qq*=7ut*Pa6kafg(}CP z(HOLm7}SM$?D*>+cz|BYukPcs&7=Ztk^Ujs^SD>A;+nXyWK=7aT0LrC z>vdYepv1X3ab$mTKXM=9`%U{3@%`0RN|aVdZXWD>ux*6W(ex`bCSN$??iqI{;%nB# zFL@|}JRmrbNdL3K_1pvzS?rwc6;6p$0wt#-b7I=2%=sw8czX7quT5;y%f{-vMhXYN>hx<&xNrS~5 z(zS^2vT}o^u*lGftcYCGp4Mper&UUg)vEQwi=(jw0%Qy6CA=KThFHUn6UZ@0CgWH{ zaVJN#kr)&@mRpHQCZEVL!%)a`ZI-hXw2fGH@eo5*GB6ZXz9S>b$qcG^y!ZUqhwa=Nzrd}@zJ&R7%a=P$Zl zE|~v#;A1ente{%(01{5u9Sn-7?5o=HbYp;|Dy^s+HnS`nd#EnrZ}As~9+T3XMvo*U3Z4 znX>j{8NjIaA4Wn6rWuZqY%uIw$*%WacgJ-kikJ2HrZ?gxyACg_@eL`gMfVnCJNqk!g4uVy8F=3m^&tLJ^2z(2~e~%%6hB--#@r_Brs2s?oq4kOsraRc3X8o0Ny8y4 z*n}_uoIX^r&6QV>Z$6n)>0{)s;TXk+*o!B7_T$mtd2*;2HoD|fc6$G=Q2CEhj(!DYMo1Xl+|`NF@RRjBhQ(6 zyfQVXMtf^*&Riya<}mQ2*V%*1DI`EyPL-|5g&2uZ!hY^eg&D%3MWjSGn-QoQ5UEUM01iG`1DF~Ftu5Tf1zN1q3|1F*}~_HdeCeeC&AspNa|GUWuV{ba3cw3 zmC$Lx>7^A83=&=(hicqX9Wm?5kmwZ-!@m}1D$B|GKs;#J;QBxAX7WYgS`%(WWGL!4buLIX@RcUaH zrrm%p64@0-89*FS0P6B;R!T&z1ug}Vw313e*n423<=#UZVeg@j>;j!o92;sAF&%t2>iQD;J8Wj<{j6#Hj z4`919NhsA!xZ*;Cm4)iCXr}-EU-qx^HezJK*wu0Ff& zTpEdS!1V$9OmfRK3KX{&^DV_ekP7dklGdJzvUNkPNkz}Zb9Llt_%VZzy@fn zU?bs5Bv@OC)@gRjv1Ja{6-T}+jx$|38=LlTd_G4LQE`?ZGEJ0XCHcE>Gm{oJ(trN@ zT>r(1IT-;zSpV^9P9wa<_`yc^&wdM87=yMoXP#X_P6>CyFHuQ@XeILk&JFz^N&%TA zg!2dd)Z%B7jMTlbDU84+pM+``K2Rhb2V+RAV<6(~|60qCurU~s4U$(V`)MN-k+q76j~QxPdb04qZ4Fnw8E z@%PXM#_+^BGKb8t{yq7A*ibzUL49${LJP9xOqPH}f}wMR1+de^a&AAqk2bh^;4*9% zzR2+(e6Jy|_1D7V5rcOr5I}CCOq4nPg?<|M6QkenZ}v|ETB+!lOqP^iik78N!6z1j zElOs-OrP(+O*uaJuW~=-bx^E937uNx#e@l`*RvqVImU%hz?oOgZ)`SBGYUr5K_ly+ z@oWdrMALpxZE-c(aY8_xfw3js%kaLEd#rG*kxB9LfKOiQdx^duAs za4;8?$|%J?ot8iS*g2mrl>j3V7*;imRt;+|O|mA228K2doi=pk(4L`+q4_4zPChnR zXq4O7m~SJ59;78e@-hHb+F6K`@^;Bp=+ts(O7aquH{fmdPD7>89h#R4;rK@Fg z3-4}eHV7><&CrGjH`p|oN`qGo-Y}RSoTEW{9&4OEM5aS_ozTc%iPm#;jT0Bvnfz`Z zEFh4%+-}ZR*#F*N0{`h*oLE>K_a?MeEGALa=7*4)YVJ+EzezF+eEW#$Bj%3aYe$R{ z7`s?43%wJ72nhZi&ElFzv!j_C8{%kc!7615Tf?^dEU1p?V!_mM473{uWX^TaMXOvZ zU8exB;xf5bxq4gzVxloV1SO|CSo$Yh&(c`1*@@(TZ_lRnKS8^N**ThlRvB(aex(c* zI6))SL0;&kthz}6;d67n8@vh=O5b9rXIJchyA5dYa!xKk7bbh0y!rl*yVd3tHph>p z2yOrqX-?I8MtG>`v3n>I+U0}|h0lTo$*onZTns?Q&8xSn>QTN)!%3(BsM=;S!G6fv zaQady;!}BzE+nTe!-p&?HxzfrPM+W9h0=~#9na!;($ss1Ddp}sOZbj4pi7)#@#=z+ z0`4sL?_A6i#B|=?BYD#{JC#G#jf8Sx6?qS11}Z$v7&&kXXemkl`0$DM-Z1Khtt-tx zlYV&Dpk#J2*=yBJU0e5r*E{{@DI z%sW{kWqJIb+F|>K&@A_-JJ%mnG-%*5+gJ};F_m&T5`UDOtx`e0U&G?VrVr~Hws~03 zFvYMl{bF2AxVebI5aoZ8R`ig3yEB)Idmw*v!r+A zKAqcEvE09R@@-v%{tW?4LRB2iee`0y)EPi)mFSCvpy8CUvZ``=WoPA~O3_r=T-k;< zb1SriQ$5k7dH09*P%G7-9|zL#Pin@>Pwi8YvU- zxe)P_jX43&rIj(-{zJ-E%ao1F()i+wGAZ+vG^4vFS;TWxR4^){%WPBpNA#=aE&%hfE=gH31mxXFmw4 zbH&+pic8NKZCoBLv~euhHrV3jH9Ez#aiq4%h5-aGvNcW~Gn-rgb_?u0M`P!VJdTm) zdZ3IVH-_zAG1h}vz6Y^y_8|B9b4Gvm^JbZD_0Dr&hn^BYu{DgqTNE3h#9U9wkHXtgaQx9%;(l#^p0FyyRO|+z(FSi68 z`I{}Znpy*`D_e6dwYCO>XlZ!!@V4O#hYQ15OT*7?DJRWxOW*-(iEBrn2E9l=hMnGr zvMOMPKg7!SvD2wBmGJot1~dtEu?@sK`Jp@l8f7lJBxdY1&Bw! zL%II27C<%Df=so13%Sv?$o*+Kgx%*N7-cAav*+(J&uaxKKSV-UtsSln-r45LN~ zEvz4Htev)eJD^Rz9X39B&CRaEe#82bld?F+vLkbS8Cz0RCfnlv)!dPFF`wK5qYZ3% zH*s7nw_k0M44I74$hsl1Zb`;;KtNT?}HribT-DHje~tt~XtiFDPK5n_z^BW;msk) zQb2TWv@^<2$7MrwOY~F}p4UG}&C!SoV$X%PglHgC71|Iw6%vf0Ab!ZxmFdmtgK6HM zo`W0Sn2x90({t0u(*0>gnuH~-H5CRKVJT)-7FpIHZ&--ftovWvGd8bivC@mv4D)vs z!^`nU{%fo)N$yr|8z^RB6f@aT@6j@y*=)@ctP(8hZ>!@HoKn7$>hyYK;IC5Mr$Htb zPlM9XQK_IbI31KK>v2*lo0~@c5G$Bjy|Nq96 zlOXYvGqPR7odSvw^K0ej6_fpc{(Ht}@>j*>XZT#xzn^=CeSW~R@UMOk3(;`SAn1|f zALo81S0d{+no||5!aF?;gMHN}Y7*cuFkUjZ1YmP2J) z&I~YLjZj|76}!Fm!r)H&m81y-e7?eHahMfvH|;1c<~$yworQ74xN2ave6Lb2fe8hu zrL<|)kNvvBZ2uR^81cG zqdsvhxn`)pc-qAl?enA7-g$_v4+GRy=nxQtNCU>Lr$KEGw_2_qEt$N9DYxKIDj5)x z&BNOnWf1}LGAPT#`bH2TVsJY+J3_`)qRYjhHX@^~PNzohjooZUH5b!XyB(o4rmdWp zu=F?<8uJ~Jx#EZj$P*56Rx;JjB^wtbFt725%L91;#Et+;L?|hX8G)?i>8yn;AM>Ao z45VBxV@o1w(pD9WY-}Tu=V@frZ`{Kc)M@JrZMMXuXHd_Rdz($7E) zjo~;vfy@ucR(E#5XL?xfdH<77e%tm}&F{eYilBMNM@yq|Q23jq9X&dgVuKum;zYSY zVx)NLzwuc{=Wo~wtI0)pZcIY#ZXD<5X%f%QeP&52EoF~xncmXb(%S-Mky&}9IOs_7z zt&~1ly`!4eRgbKufc@^`e4K&q1VCb!6fTHcnt{h_3E8>wV3{|htWqQpcdXJx!@V4e zr4ugWMP#+4E>KiDf)Tq4P*z=%MSo01I8}h<6Pr*M6oDj22AaoG{t-{SXAiLck0N4* zWg-AVoPEOveeIsUuNe*iaw-s#$<~q>rp7?ZxEax6sKg=1(jktJ#TX|MkXg)d0KSts zF8Eod_?1uDb>rw_lCGU*wQVafH|p+Cyy_~r_S+fb`5bZKm&$1uHxCs$9#>EPo$`Zk zrHHe5R-ge0Z-L4sTrDv%nf^e6sXkT62#lTkO)1ID@tKD*pJn(Z$+bzkH2z?m(n?Du zT^?H(`!IGqb~+|1O->VCsw1M#4rsh6BRJ&>KyVi*XOv2q*OZp=e!sPdlM}rQ!L^vZ z!fRF5Wymb$O-edQNixc`7uXS+0-5@rQe}}n0y`;tmn>-$yTr|6k0=<$I4%dpW1?sj zPl{9})>nt&_UthpG#)eZ%=g(Qdq3G33!oEV(zRfY%%r1v{(u>bMJxvfT!MpO4}1qX zPO-3X`HL<5j2p;bV;2_emrw2gF53vwl^ABjKw7`>mf}^b^{I2S`hDg+-yHsKtFBR( z{p-0o{o;(@318iMZc0B1>lo`)7e6gd{<`bjWPUKI2dwJ^T1*AoXD#5FQ|U_iO?W8_ zs0}G&%pZ%#c;wG9PFT4@aKZyB+D*YAAl$v>L>q~zq6#Ncwc`kw?AmIQus!!my2h52 z$)VClik;YJ@d>qrZ9vU?!(sfoyR1W zSEkm(jrB{QynKk9h7zFev~Z`TvgLJTSq0e_J{+b(*cJ|ld96Wh`OhTDB%9K9r^VxH zLa=o-T>_-ju5D6NNhdJ>u&%gzkh-I`)dX9Ew6GyqEmYNeLw;p}LZP>53Y)Bv0vo_| zFdv+fjr0O(Ct0S5L~`;ShkTQRVn1RI6+uTZ8sxRXWW-?1G-rA;$6%-tn={igD>FQo zA(_mO!HjtD?)5^5JKh7Lfh^z1lbMHT@7}&Wdy$*iE7RGTM2cP*|zKlcN#R?{D#FPcRf1i-9HSz{cSQLVEB#NoT+TeeobPx8~WC~ym=5% zWt|J@EsLh=wb`3VD{ao+MxGr)a6-5@RKD&9f_ZVu@@m*XDJL3qeBQ-oWId*yM!PrwV(V-{v^-J_?^*qZR zALiQY`lag=mx4nMxynao`EK$p^YP0=WO-;^Xj6#Ssm;dH!T|M)fHnksOZ}Yz#x;lW zAWC+M8e7EcP+Am%MiUSsh^)h}oc=;1e+(HqJUPktBVe_%)TW7O5pLNfSqt?!ef!GFwr5{_tv)ca<#F}!QK0&2 zMDzzi^(a?ERM?xLi9y@@K&r#8;rZs?oML-(9UVz&U3g@eHkOSoqd?A#m(gArimLt9 z@oHYHu(O5Ai~V^gOIMOSlFML_yn&R#U=jR^U<|vo0@yHuR@O9)OgFa>GjA~z599~2 zpRsDUl&cNK6=uL$b#2$0BYulK=jJ+_+jLt^dc|HgiYME zZ=kX_$MS}9Ig%&Xb}l2w;Ju0M6j^ys#~*aaa4=Z9IZgs=i}G+4q$=Y-wrI0wGWROK>x^|P+?1-@q&u&5~8r^JNO?= zLwFohgrUAfxZYiy0SpRZizs0GL{zL1Tg82%kPn6CIrt+2Azmvw7%Pyj09I&d*AB^T zG+F~Ne0@D@5q4LVb1(BR0ff!br3jl&uk87$P3Z` zHhB|tU(?{hcb54gZkd{eCEGM&o|<~qV>3H16ojXWmrT2EoN@B+^w}54k0>J_@;M*f z^-X%M&C$y@K(9y<`J#xhBF?2n>xu-Gk`IKf-z1e}XQX0eIhQDmB-_>?7vi7GqF zuqw&?6j=}_Z^Yh@(M2($DfSdo^##${Ktr1md?5IEkT(YX$Wk+tUpIZ;M2$`Urj<>= zglej*W9g)=a7xs99Zvsn|BHV9X+LrK9g7`n98aJgfFtT?bxd*ytUACB2d{LH5sq1o zoA4Wrv2sr3!b+qIR#thXQl*?~>SN(QsMWUx0Q*3$)Em7TZJi@wtqfOK!wPxL);38^ zlFgNBQb>L#sWx9C9FZatPBsyJghK`*)ivWpe_~JGd;rcI9k@5K%Gu0l(0pRg*=2&= zqJ%s0rso0lmnFM1>?pQMRXP9Wq3Ce7LEynqbDF^wo zGT%*sXPNI=zQ*ctzcb_3?2V0E{ePV{_;IIZ!R>Z27MzJ-fD3d(8)|XcJ=>-P8QeU?D^B2 zzF@^1@vt?;RH8PerkG}#Xe_4zII)JsG&;AQpu*}>Calwwx^o;p&1^UX+pMBU z64fy|aMtv=Sg1Wa_2cN-*Lw(TJKTXYCu%#fL+8M(0!LV2h_dFjo-qyG)eh6ZN^P(&TGYLLyVnlF-t{~69pehhlwGEI$w&8z zY<&@ka|KaemAz+0cB5u8)=Nak^Y0<+EKG`aabB#;gFrqFqu~Oc)EY+^rx9FOhkZ}}1?coUK%Hdu{QaQ8OboB6H@F71-`u4D`)U@{; zzybMC+L!IXM9SHb@(3D0OJYF&083&l0un(C8E0v7&O$$cJ8)(nP~z+v)R--Y(wqQ(ZcJUd>f z#<~|m)v`ZH&v#T`T}^ANM^w}ID@jQudB2SOp!lj{I;Ch<5uH>pvw$kCPE?ku<45xJ zm%dMYzzuYk6_@cD-*6uleRf~O$Cvp^yjudqALz;UL{`hsVCB=Kr`>)jjI{ORdgKfHa`6FDqw&MFXfXh7#T=M!$_`g&AIA zrO{zPcC(W-!{uiAuk-qPJ%A?l$T{CA%z#q^z-Y`#`qYB#W@K@XUqC)0P1)DzJK4je z49^&mogkEBZZf32m!vzV(km#9YRLN@fE&&7(hCDu2I%eplo>K1JR?kphspTTi%V&1 zDd~t^9it;+q{!>>>lW&0kM5w30$)c5>@!QuswndcMzj3_-E8bF?I;fQF+x+R%VlBt zzir6>wR7#vePXewd@v(M!+uq>sttxFhMjqoEnPCW5WDW5mq7I`a5t|nbj(Z2R;C;? znXTze&DXQ}SS;evp0iQ>17?^f5UxuJf8^{*W7;b{AZU;zjn^_yE-qOH*Y#P z818>Vd=>VI6uCkg>(*y~9j*9#dxSnpXi3@1 z+xlK2r?ObJx=emDy1Q->y)?hI^}PwK(LZI4RFj>d+&q3g&I-uW<;XLbOImK`3t9j* zl}d5w&;WqpHPf}ksAXK>m0ArP%tn#4EELHck)Yg)h}xY>UR3h1H}~#PYEfArm&nTK z>0+f}7$g%kv0jv!XSxF>1@?DPgr$wMvEm=QD5 zp-<1o&f|n4Rm$y`nv_hXRxsPPnY|#u3gve zfK8yPuoVbjIkh-M<(*}KF*#gJXEK=IT$ExS6t_m0J=%IuM#H?~ik#+KtQnjATGul6 z_Uon$HPPC>J&ON_x;KH3syz3{&- zR*j0FR%@(^T5CzQDsC4Fh@iIQwuoqp(7M#6D!upC>d$iJ_Sf5DF_Yi-dCvqQYWw^D zZtwknO2|30B$;!b_j#W8S-(%)>9>A!x`riv<$6NEl)r&>CD*s}()Du|FFpI#b$4HI z`Q;bD?Umw)Y)=611<@j#p~a=cv-G|$&wxHlkH0j|5EU^XxB`+ zCLCbDt$l0FbD2tK+I3}1wAq1!HCX-)P;K#JXk*4ewCdE?fbDsCe=EG zrB|q1RfDFo4s{+L_tG<`%1o-m9nYApADCD|Siack8xI_5*b99C-OvhOUZ?swm>KIilPb;|Ua_kC~11oqo^3-7b^yX&6VaND}B zcYfWu?zRn2to!bTOIOb$%CCpTNjWaUVt!Vu^(GFEGezPxH( z6}MGIaG)7TyabR!h{Q}asZbEH(mZ!XJ@%-{8I-c&(rDCF>8p-4lpct_(}GLz?t z!R%I@uRNUnAOJY0WPnqbMqNNQ2Tt0LFcA;vW_&*d>mk$PTSV*y&Jw|ul8^%lmkfU3 zU+5XFqW>z=C9osE8Ua~J%xfICamx5~b7H#RI^#m5w03+&`s%}Pef-li=6mihIiqyR zq{;_x0(AMQ2*;q`M9^;>=$FP!#b51~h9O@yit<(U_tk$?FR!oNSj#t5-do9eg}Z{w z-^@OceK-3__ITD{4EaNRy^mp{p%28gAhhUANT}WXNSh7vXXE7{VrxBH1Q-`SQf2jO zF6y?WoK|B=Hk~R}i+XL3Qd2mMDM1m#4qE!ZCH zLhBKj4f!avjjvoqcKUln-2+5gupXT#+6WJc3^@=O{{+-@HFb-_GaV%Em$Ff`)18`r z8aIT*GlyoOwqI2EY-rwT#0erd4^2MtlE3_hEgG71LhP<^rpP&!OV?<%8Ifi}@mwy8 zG*ckzcFNH*W=m9?lSVsG)TK&qBFcH}xqWA@!r^S~i(BRFew8*3bO+9@V=C)v4MVmZ4IXTI#$#AkNDYqp@N7K2eGmVi`YCsEg1m*>L16u>8Ks4%c z*4HGnIpZBp)`m1D2ONRqRGmquY;!ux9N9K$IUH@6RIm^Two-A*(l|iGXh2c#(-Kj@ zskdgzv@)%FSiX#`g*{~l%RVR@C{q$;tPHF-=$Q|?hAR2zD_2rU44qeDf2Z8skprD= zh?(eINg9$|jD}7zQH^-Anmom!>RX!2>D|FpDGagHsmy8EIAl4F@w!V3 zdv-6o{uI~oSBr0hUkOmmr^dB!g!c$f^8V>##++QL-(Gll`rNH2UC7_C_8xebpC4h4 z-X+&vyXZlOwE z{~BPSP*_!+E&v;5gD!6{=u(}|Y&hf%heJRebb6&5LM#v}4_z6On?uY2$TNAJ>u%S- zxnukP7GvBchYw0WQV-uI$Me@QJ1+4R1qHJI7o3&i2_10!;<>so1RlF=w z6;S-KXibGFW6U|jrQ#~f(pjyP^_8;HAU1lUK!=o4}qwvh@UD$JRPn5vzNA4B|%Ao^;>078h61*?n z=U@^Rt06M5FW+|b!RdGQ zzpa$%+1LJ`fMVZ-98CtrveMe!QUV)g2Z}IncClLk@W&^{*`sl`F~R(avIM8ajCi9l zQ^=Tc25HaCI8xesV z3?cym^{xC8GtxvwB%)8;I^{oIjmqSqw~i!d;lmw+Y0vYA-tu}RH46{*zo3*AGo6JJ zNEUcQWH(b774(MI93WrJPgYrs4mn|(C8j3$=!1HJS~*TE9t>RX5vI5voQ)j z`XB^1IvL_pNDbA6WEj<;5+r;`uJVMnHfTW%CM;pCLHdW76uQNxmmqzW)mEhAS7s?k zL@S3-_4E!5E%@s6E)QznqX10TqNp zJyD>K4kjQmQR}c)O9{xR3~GikKmB9|GNlHymZ&*zYL*A;g2<=9~yM4So!Ja>D5uJZ-~*fZQEHZ z;ZjX6U8)>lqudW#E3t zCWjdcDadl|0cv$H5cZ+2HxLeZ!-#xfhzARJy;+aj>+!hB8x44v+bV^<9;3yT)i`Hw zF}8s{#$ICb95)NPE8N`c4zRGnQ!cTE(gx{X=`rag$&ds%0K@=_At%WugA^4!94@cQ zS9sVW&&{6uJexiHJqFlQ6LXEnc>>j-`AiDR>-}zWsY+`JE4CALJs(iMGJr)$NaMcCA ziuvMzwf4o`5sy3Kh4B;jWxY2?WgMmIKKaA0he7}JG-NaK3|3O_J7 zatss4-UBID_V3jPo#^=XVzLzslT*aGlrj8oM7ei!OAA?u^6??WYApP|@bNorUE%)U zJY1D59k%^fn7N%9YAUja3!S`z6+Y8i@?(z|?1c+KJHlP3Y-vQgPn$p7HQ6=WwacYk z8Dvz>H6w^YPk~@ob$M0QMV80K0cHsJ0@(l{DCz<$0^I>5Jp(RmBR*p=tO|^Dm3^Wf z$0)CG)M*X60xAd_h{U{-n#7AyD7}5^`}@d@rX)Yom!#*ukiQ%Xn2uoGDP%y#vWSi@ zQjD=RYPZ#yt?_8NDV-&lf*!QPkIOjKoZ6G zGi#y>Mtluc;Tr13PuV!Gad_0c^A`_Xxa|6o6B{pmcL8ghaP!rpwD{KCo`ts-&Z~4< z%okYw(-X~w#D#n3WTwPJr;V8N!I`nbe9!zdemY|Kv{l%HTSXw&0gugkiBI>XOa%FYr)RsRnn$~bK)-Z}SOd^W#nPw|h z!?AoRjoqrD!s^rDq+4=xa(r>_vm6@P*`KP}pUau0jIAoW0W~ugm919StK5Ov*fT`| z>`!gMM|tlp!=+>07TeFY&8SYoly ze<^T9x)=@(juds!Yb-?U`jp7PiFG?AdS!@;Wt)BBj(4u7kytOTd}y}5K;zraxKE#g zb?3Cv#r0Wv%l6)X(MMo?euY>H+46%chD^TFqlC1dS7DaMv1cmCoQFNNUz?5<2)43a zt@~T~&Zd1${Mq`K>Ul%mxH=>YL$#H)^6uJ~kvOafRq)R$n7KSyKD=DEZHW9X!VM8$ zgqO&uj`kSsQO)HQf^&%3pL_LM%dBEYAF0>y`}8s~b1* zd#4v392!-ms_V+koa5t2GVUiadK$U^tBb?xe&0K-$X6)wc=S4eLTy4+CF;y2a_zaU-13~kNglijZB0?MAXK9s z1F{m&B+4_s`dl!RaI`tv9kK(N_y(lnUq5n0#2+YmgW97b$i)M&f+`mWg`&O=kEp;x zfRvMMqBFnVN-zW*b#NeL5o4YWCdHJ`1)VQ@>VI$OzWS!481=|L|HyLs%#9cZsSCsU z!O@SpAgnm!{%`;JPxn9a@W!KR^1JhB6680D{PH)7lOLHh1vKsijYmqKYPZ^wpo&K| zqg}2(T+iR8Fjg$YRoQ7{exoVrOXN+B7L@!so$2V-a#mh$=@R-vMr<3NdoYYajmbu) zHYOWaH1;(r&PGJR8o~P(o70To&2+?VT&1P)eDLK!hNq3rlQRKG|AbG3xYlwntfY$Lzaqm_8HQYX)}u=dgO^*y)dGH+s$3lTA7H z=Nwy{TO&62&#Kvi>ebbJacoVDn_|q|8fF_&>SzgBKDNkKZ`ez_Nmvcf3(Kk@OIj>Q z5hBu6u+aPon)K7-mfe`aRH0UA6&)4xDhyHuGszVdHh(l?qK&@7oiQa~o+ZVQv>1M0 zO#;JmUa~uRG$|(={E*vBs1g%W83txRmR3kANQ98_$BNq)m~LY%x8+;sGl8&)$pSX64AZ1pEM zbz8QGb?X0l{}xhj>&|M|wHy20=Bplg_@4hLsx~(3o9lnye+w-U-%9%JY_hiy>F3uV zstmhdnyv+XD57K6BKdA~+O4*%qDsyzk~wzho9*y$>8x47>!Ly{6eRYfeX^K-dT%cb zR*Dq~3l-VmK^;QD?-QoWC<_aavWmj1eGOa2vW2X5RV#P?=eK*?FFh%xn*)VEv-{Y_Uqx6)p>TaMjxz&xU#YYX z5QV9iQ@o_y*8&w~%i5YSy3T23A)_2kvq+TYXL+17X-NxEjWMP`Bt=}uoK3jwS+w|w z`ePT^MMB{**Ahn)Jdwy|1lJ%fK@i}GG{8m%5p+G)|EA76cmXuPou9D4;G|%7L`%^I zYc9sWD7eFC=%!Yt@wUZ@W?^g9S%V@~j+l#t>y*fx$YSIpEJ5fEb1a+0 z4xKufWHiHf@2u0ka=4QJ|q6IM@KKak~LgmB?_1V2Glf-8$P(jpxK zKufOz{}`srNmgoV(VyzB^2r%(iV`gR{x_Si=4Ntqbrb$ao^fYg)-$X9{Eo*vS%*HZ zt#Ai>>flpvojoB|wA6fG1KyPTlXYm&f;j&Qe6~+89OjqXZrY_SK(;kyz zqNu>$qLl|5g5o;;6nH(k3k+J{WF{a4KnD1rc|diiqzGLq*p@%+`QF;^&usth8J+*T z=F0T-2lqb^;=fpX`z04W^4ZMle|6tk`1iu^x6|I<$nNI%f<7_Kq6OeOC(3Z53=(aE zG64TLyxkd~KE$KiXs0j#W{kZV`!L4G#n?|`?8)%+VZPI}&-A8Ae$w>3i91X&Q>{t1 zEB+*Y*y>_IzbooAS<)GlPsX%3W&nYpz^k=HolL|0Dkn>@HrCESKqeFSMM1v|&Q3Y} zY}ynzxctHR^Pr;*gWm?}sFipi7gC$VmxG#K%xj2hZYc4xdEVIEA*f!J;J$8UZQ+acf~G)82~knNDj#UN05x7o*tvNI>1|q+uK;VK(!7 zSA*iQ?i-&!XTs7;I@IPfU9D3e=s5Qe?bA9JHB8D^50~Gd6_`El_NV4IR5k|BoD@3q zqK(I9*7W~k!di?pq;(;_eZ_z#7O93!dnQ>29z`1DE#lP*>Ihwc2UQg~++5A>iLxcp zwHO}_ubo>KdDu)~fjHTdHnzrki}i6Jzu>^F#wUzimUu7c_L5Xci*!WziXc;h@Os)@ z%U##G?rwo?yh~4x8+lQAq1y$9h!a46UHqKcI13*p)p#8GtcSEhK3_2(mh4 z<$IBcS5OTSF+_rXSrU7GxWu2oL)wG;fdStm^+^gnAX_L)znnw^jOKtDWo99#nT?>3 z&8Ox88WT)m92wZeLCi}L(=v-IDC!NdoUQh;R!EbQSSu5ZEmv7( zo`yyCn0ifHO$LVv8-iHDonCLeEJR>G(H%g{G=}hCdnRMVVQB9k4%@~anCUe^5Tf(g@RT*4o|w6*b_(4EQjh|FmgQx{{V;gy%H@x0PJ za{lc62oW1#@31!vFJo`G2vdIC5qGs)R;?vONfWeB2pT-L%_rG+$>D7!Do(h6$%2_t ztaYBP+t!2hq>UZ5u`YBxa72Rx!f1uTfl-LBq7E5FcHl@<*Zvd((11iz8>|y0mTiwW3iD3D6ON=K`+;43_VxPpHqSvWzK2b_3y2?L?`9)#`KZ5p0j!7Oao* znP;%WW)fw(g%g8?;}{miOCCB5^VE2C?Zt&5j+QSdPGS?@Qd7jGM0~s z=7~*QC?zrAp6bbn^L1zc)S5pLJPtH9o={J;#W(XOyoqzCTzbv4S@LRA>9FaW(pJ`S zvbOo+`Hj_k7dKY%k?Y4^)KHNhb(On0oW4GL<@w9!-}kQ<>d8Js2{tKl6p`^f3mZUC6AWy`}k(GMslc$m}XBX%&B~; za7CduvhWVKMZ$bIIl6NNtV7^2(8G2!OPU$kgGXNP)NAsI<3yVr8QQSZ1ttb!>%SROEQkBb!rK&Cbq+1Hk<5Z6PvL14BHWfAaFfkbV9iod(0tB zAMZbO=v9n91EYI}biBO3cJ0)uYo|?HJJnEgTmO>6E;e}%t0}y$Q%rgvJ$16wfKGQ@ zi0{i6VNlp}umw3jzOC)V$DuF*pV5fF4WhqVr2gOSZwV?XkHKh~x=pf*X1^dXe$WaD z0%4owDnTyM96Ku%du#_rx5;KA5LvBXCe4BVz5`gbAv9qXIz{C4NpjGR0hv#W)$t)G zfAwzcMn^R((CJE&7^vq3m&CSf2EQ<;ZDxDk?{~+s9_}CGqvMcG3nV#=Ey=zJeyRhl&g!N+ali02*;To^i)%~Qnw*V+(tVEcO*blr;{%gIO^`0hf=`YK$?W=} zv4oV9N4RGprn5A}hbmpnfwsX} zd2~_GS=hAtQHO*JJE`&^l1(Bk$6}?m7uV$irGZALscmf=d*;Tb@s5R-rqINU{Ql?P z9Ml~Qdz3+H_%UonvPO_RBCg+N=+?VSyIBw8Nye}lGb*Y*Let&a!c?L|y*DY&3Ky+K zp~E};=lwL}6ZGDtt0-4Y^zTwCGq_47JElSD)iSPK4{ zYN9Q+1JG7K9%&%c2$2f?gqw!~5>1Ij1Cgme)dUiim}x3PB?Cw_Ar4lfHu#iWx@JMX zI#BLzDlr-T7j0d0-RcVOnoFnN@x7WEx4g%;ugjliUu10xOkuy%g0o*Mbg^GPw4~{R z!fpJ({L8Po=BS|Ye$e4-lGoU{h z@W?*Nqj^9~Pp^m9QDI#jo}&`UlT3Vxn2mypm{<;)LJgo43Dj&8t#VZJK%+?rb&1Ly z#2!OZHgvO5a%-mD@L(+nwWc{&vw+ah?yjk5#vC82?%tJx$3T#$5<{6V2%oPMw@B-z>SXGuTv z>%P&-V&4Jr6r>nrfI2)PdS1X$ctx-t#foXa75eyw{x>SXyFi71K} zuf#wSs87;b*jNx!)+{SRheJH%bd`XecD6fN64}rqC5QyT75Necs7jKmCcqCxjawuG zR9o@ZiyBy-P@P{;gIdjoAFo~3eh=>5=*)Y{_u5Zux{oof2%a4(h!p zp!Y1&{aOv0rWI4h#1)elCwZc2rir&<+8?jx=rD`m1Z3zrz;%GF2L-L!822*9@e5`n zZGlY0-Wbdj#51%60vzpVP*GOU8{I}s+64*bDR2zCVSNqW_lwkszcNf&CWrvy7kWV% zVi>q<@_sv^Q>g?Q9j5$=?!u0>-RyL-I$ZsqLeqZAU9en4#Njnq>rO~`iYd=vK%5v% zh@K9ga8l7y;L9iJ)!9ilF}Wbgr$iS=`4uHMl{``+8*t!PIBs%0;*h@-b};fs5p}>+ z;20`8f(gWDmLvaW2+6@<+&k8aWu_nl?f(>dR58xzM4%^963n+tjB0&45JC_E1Wl3= zLI~pT6=MjLiut-2!WZKQ4Ps*G;2?W++Co}jlauH`UMLocyeM*`UllCyn+B^0PPEqY z*B)x`dUVcN%R1M8f9{Oy?TsyS<_vGNqug$ep`msD{NeTTwBvJYmd@Y2zpG=>MGNP) zj2hK4cmATW)259jnoB?BuNrnpKE!!SrI)nUvQjoN&6*Q46MS-nRfXB`!0Z4wc>~^Z zuWWV%9Tg5V4hJn27WrmjlglO^;M_yb%r=`)vfHJQTg1a^W6n>FED7hF!)qTQOp|#= za1juE$wcWk%3I*H8?zZz3dV)dk%0i+Bm_?(TbUe62o!ob#ka6vK%Z6E(K<208ol@A z@_=;o9HBDtPk1umH&BawTmZeG6%ITBoMoO26VA`N8d;xl?*x*F9h7b*;P^btU z&A(qLLdQFLM1(h`M}({C=je;CzjgfC*NlSg>nRTi zExgwE@FUsKg4Mx0&zZFBhhyXRD_yreFxuI9mG5r;^v$E=quOB_TNjaT?)TiYsxs&b z$1TIJT{t{9r)r|Qy0bB83?cD;7Pf0pnJ)1gW(fxp=QIAVLUggrpR%vxI~eh6GAgz#*DHgl?}03(1jC z6b!P%tNA@t^}XF6&5P>q1lYO<)>fZKmOQG5S2;aw#1_vU&p`mnd5VcxVMM?(6`&i4 z6Oj@*o8B@V zGsz30%oz703nmMA+)}IwtcBP!HjM>rNQU(RiPwhl_RfSN?*X;Q$}r;WA?3HtEeA-* zZIW*VKa7pq>HbOY*Ae6sm79II{|17WBv>+nZ~%e>!8L#g z_^$^#ipkqAAPty`Km!Qn9Gia0Ip2OcW1ci=Ejwq;^nHb=Ou;LzulC5P!tTXux0X+B znZs%euhI7$^M&z+i)jQ2cI=k{t?(FVF=@Btfy!Ix^5x$)d~Ep4AR7(rP1A>_KLN7b z#O#%7t2#wptgcaSQH?e=qVlPMC4sepTLX$LF%^*#IYOu*++nm?oDtgSBU-XF-xgs` z3@-m5B0D3A$fuEkhypnfF=On(1R_Gl0iCr#Ad*kY-541qt8$&J$sMu*wE*PAV@5l* z9&X1U6fKBN_?!hTQ)`GEkAmizATZSt8y zK9Q0QJ1yw^wy=?h2ySGarQ6bDQIa@u3piJJq9Q&|t^(v1d`cnAA+=z7JWfO;L`3eP zNz;1z#)a2rtIt_k?p!0w-#%;RJtHq>j~8am9zJ$q`RS}z-0Lg2*IlR(dW!PaK*Yo% zuMe=fB}+>9ttCwUqm2o0DY!HMHap4{i@_xc8EZz#}Hm}$06q4tZ z?vRi$lmJK--G+=Qaa#xzp`0e%sELi*YJ$Cd$i$PTZa}pS-eht4g;OMCQxsLhJJKbS z>Su7%LP=3qr|tm=ADfa4{GrBadkO<<1Ie>~a&fBMJudf>{Kk80cd&A{voN)*Y6Sc4 zwWcK)4~*D64C!wp0%#@7Xa(2SVs_*m3Ol0oEBry_Y2`h_=UIG<86x);0 zv9p&djmT9X>yGxbQW<>$Cb^U~@^4?WDdF^mzSGTIE8z_8oRL3$Lg6euX4!zde+u4@ zLwZ{CC|0jEV@2CmM6Q-m{AjfZmb7pgxO#YQAj<}8y^UM#`c?*KSF>56G%T10hz1Q> z+j^vSlSJ5FB%Tgo(uP6Bj>eH9#C*Ly{2>374{)WOck%1^7QTlY_>eT=K9qMrj!}3= z;!TAgC?9&GudV-$7f)7sKr3U80t(LvxeJI*DgIRddbWT1sKT%L)I$B4li4)(&V}5r zT-ee7p%ItTAU!L$;w~c+I*%2X*OhU}HfzLMO}SOn@_;jUTC84+#TqJx{I;o9#G7e5 z4sElzJoFF&lV@C3)uNjkKmb>9&#KpZ;-0<8WcPaeyoV6#G^kz&h!TP{k03Spsb#>T zv|G9?*IBk$_E-R-d@?n`YS*Nk z{RQ^&MP-F|i55$TvD3wd{Lj|YOD~yxf+)`x_u&S13I7l}E)1WsohmFo+U^SE!<5U6 z;=%oBb@Q-{huQ2Ad$k=rfQ1YjlmsZY!>?H=5PVE?y1aRZpP{fW;<0<&9wGKNyVqv3 zyX^>el44Nh&@(Y0qyr!fflXxkiEJvKZw>YZ525PZZ}TMl^s@?}>cS{Dv)i2RoSPpe zbYc~w&O6+S$sM7;Jw<}mz{g0^JcL+!1fLnn#l~|=QiJ14P>?G*lN8cAYD2uihE=c~ z1lsg~O=$tlZ5$vKj08E5JK4BLW3)oKZVsRTPLO;Q7 z7%T=Awlu?5gyFj7gqL%YSsS6A;7lPH2sQQL+-dt`;q$HDLnoK4vNpc%hG}z_HMgFz zzJ;%yHlwMvGE#LBw<#A9JHIt^TFWxQ)4TXjuyS#B23f@)X(iCuc7%>G1p<%2mMB?9 zUOJ-Ua6c-g5yr3>L&i#@>^Iq2%Hj=qE4}h03y!VcDPE-+t#>nH@?6gn&svY{jf6pK z`1>9&+7`W4G#;mkm<0#WgJ1dt_UOUMb81n!iDOfe05v@i&QQ~3nHOa4dO*c z-3eVHQFo&rWkU>IuM-g-K-nO&49ccUn_6^TVOpqFhcQWZ)DNbgaREO=FASTD z2a8wssK$v0Prau_9M z@-&K`>Gp6`xKmmjA)Dp2X)i|+0oSX>;HYY%@WZaJ6Se2VWS5j)1)UHI#ETM&o0Kie z9_)xi#HzTD>v0<_!r*hVUW$>M6QLW}arBQYIru6ms(eiXfi*1~Qf>&#uELKBKVqk` z)2_8Y_ahU#wXoXs;~&c}7Z@AhQlXwLE!=ZK;T}nn3oj_IveS%}pgXet(s;^Z9YYX zB@(!$GQLsreA?4bfA5M9pL^ixrwxny3XiaJ3y<`D`E$o=K9d z3^DDWKEu^)wJ!PYnwGp2L768kc@1z2vPJZhz#GcDEJ2@U#|YzNn%@=52hBLxeU_jx zBFD`o64MC%ZaXYEfr6K>$>%pQR)?2YFiHURu|w=IGfS)&r=u`@WL8pwAioAaCJ!_T zzjGJM-GtdULTer%#CQ>pfC@c;24phkbKwK8zXuOg?GyZPKz;qaeIRpnHCj)a^3VD@*z`UxS@u5fS=OhPE?t_>Hk!xg7o30o`GqSotT|Y2u|(p5GKbe!RyHwJVKhck zA@iS;JZ_gDTW)UmTvoV zc&hL;_%!@$@BzymL2?cD7i^ExG*y_EH8pw>7RkVQ>1=K-{GoN(#Hky`wMJQRad8~D8a}yO!gfXw>gx?Ks|7bYrTy9iHbs){qbvr*&w)BJn!$${}vBb4(vHYQ_~tSu*w-`DhhSI_Sv?Jl$$kBm@oVl|x2@-Dnvl zVFuU=t1MZ2t$Z{+?4~DmczVcs*lMV=&J(XG){;>UD{h!(FJR63MPJ>}2YT4#{LVn* zkpQ{KU`tU{QarQu2a5lc-yi6|qxc`*e#5{ed_SKH498~ach8t8Kb4|1AWb~mnqs*q z8y`9+G(UvW^Mn=EnmIE(;g{{~?O`9I$|R3*kkDifqs#9qbAgjxh6Jqb#I`26k@gjX zoY;9?_>M5wH=TqW-zK}OXstkm> zbh~3NlWQU#XoAtJE+ZUYT8o#k7JgU`=&7PCSPl7lQMNn8_Ih9U0%5?O07UNxc7>AD z2h|T$#VVoX`;aXA48nbL4I7Dw8#`<|itX2A1s)_VP#7g*_yAHB9ncPnsH8B<4Csh@ zbXtyMtzt0m5|kjp=7X6#gJIDqHXWoh^)kbwkQ#_=oyZfEV1_W(DN~}ApbR>{qNKNE zYssOK!zBg@rROm2O4x{lm~J?LGW48qkO$$AUR1x3EznDHi)}nB`%u*aLmR$Tv7iTL zfylFE2YV0oY?EHSW_IhPvu zE*U%JF6T!JFWmg-!WGLdet7)cVG}Q(3#}sP{u<~`HG02%#zVEANVJKHP?%Df--Q=q z^y=(5yR78Kl7~xVBUSEvDH&6&0X29e@Z!VfthdciLxv#AKsaUwc=Dk?UA?ct8jN9LTpyz{2-ojdEAy5UQgwd8Uw%a*ka zJ3<+jiynVzUdQ5#9$Pti#>~l=Up{5#oT5QkghY-gDL%=oU66R7=*zBhb` z3L;F?#}9GE>a^$VfCN`H$Se>-KUD_+<)C`3LBvU8T96`j+|p)kw|3E{pjuJgYqcsR zBDUih!dwB!?Fnh6tln2kt3@T%>VoMHktNkiB5UcjY_%M+9JUxF`Z(bg>pn5`>rjzJ z+58t|_6wbNUnQ~>`vd=-;J&88HanqUPvDaBm(H5=1BfXP8uKGA7NYyu+!^Z%%SmkK zwlsabdBJi>YjW|}sU*D@{1IY1ayWMEO9yHVyNzQ}1364;l|IoL{24aKve?4sn%QER zE#_=$mQBtuZ<){6G%3WAEzM||Q&Vb5Z4Eq7XG%>GO82=E!0`|%Rl`ZOi8VDDM`B!T znbGTOj)y|&mi$dMjIa_X*2p!vcq}C)r^Ag}!`NI@+Qcli_XpY4!EXlnl;GkZuLuHY zH*RyPGf_HPf+AMHVt4);=^z5k>_nmunZ3@&;tL|MedN^!m@kbqn-UefjX6EPjFAE~ zRDh0q_p(k`BSw9SoU_1H>oj)@avad`uKHoV#;*O@x}hi;VI@SEHIl8u^+k0+FSV~@r7@CY-9Hix)nQh=FN=4o+Ga`MeqR>5YY?9k&4K&3dW z7NeoW5Do>C3CnTi87_z>Vf zW|1ORgpy@3P_9o!aPSC#ez4NT zR~RO}0(t~+{}}!8;>pK)D+RPt^#%iy9zztCQ0-9cI&%O9NZo+J6MKQLKKMv~2b%ym z4*Mo-MEt`5u2iXv@upONNvQgsMi0hv&~Q_R-P33?vGSD3Fz3A|`ycrJt50tJXnNsi z?26}q@e=!1;n}nPyuC2rHYpWr@UX6Fg{P;n7YgIq3!C?EW*-*9IPqZgh0E`{DPQQ> zzn^vn=fH22`G!vfmKhj#P&iwr&9v{JLMzYn0^#(4mtruC? zJt%PCw`AD*3U+_(elm5>zLfSB>Loq=UsSZUv1^)>R9!7GtD4b06n}KdN_jFFk`jn zUXj_&W;P2gulz;EcJRHNE1Y3x;ruhsW^slPqRiis*;Mmf^AhuS%ukpNyX@@WypW@F zyxcU=JJZV}VOAafBz!z98%zDAGfNkgDwKF694W=}qX0V+=nwEwfzt!r9$>cp)Z)(& zjASGJLt=MI-$wxD-z1io*m!B3^hZhlneScSCqDT>-_t&x_BHr8_c4s8F#Uk9g4*rLX6}t;P*vMrbxy*?qa|A z^qN(+=U)i0u3f)i@9dsxU$NZ!-cM^;*nj-uQr2F$U3nl<_~R{i7M8DX#VU@KzR8!! z-w~ehB&|jAm!fcq`(ZmF}G z+RqkAw`)N~ZqIk+xt8w`ARJ0OpHFv@FYa~`8Tdh$%m_W;UcYhFRYNdR4W31DHjrMglIW_BZ@uoA9= z2#H|!dJx0cVZk)vpijI1^7Z~&T<>eF2G@JnU%%d@$%5-;63mX?l-!Xzn&R>Qwu@f% zSFc*9@&`kx3`7~Ogsg31qIewLiewdFX$;M|duzw)xbp4k5l*RB(L)mQV#+tU7lw@&c%TUs@EdQ8_C zu8r9`hR4U`h@W#6Y*Ph5 z@8c}q$C=*O&}x`(sYndu&ucl}g4GgxUJybtMy%2p)-#4_V|vE);yRQu&&vVmfGqy* z`8VgY`2C%u$K)|vA*%~Tb@iZFkW`3JJRL|pR_WsL71I2+^lNeFx^(=D=GX6h#Ta?$ zy^D(trLy@todR3}0ghJ4@qZu^6ou_8X`rvZE^BXTZqT5$tCef5EZ!>CUfe%ov-v?L zV1K7O&x^&+AJ1d)TZtoR@ms~>x3ZpArnUC8_O@!G-TuQlVjZ{jT8}JBzsn`R6B_PfMA_#j072(mIA>PLpAl}DW zypOXe(xbg0EYt%mY!F%4Q=}eJg19NxlVVz`2X@L<*hQos7+R{u-eAVx7kdM0U;f74 zu#(si>;C*HT&Ulh&V_Gk7P>cfG{wX&2doS_Z-cK$$PpAj_1G2!Un{`295`?u<*Ney&n||8)ZFFrbTG7PNS;5FfZ};I})=(cnIo zA>#q33U5e0*5ff92YBn@P|!4SN2&7D%5$&)D%8=qb!#&{I_8 z(-x5y^h~p!G}F=qB)B!Lr2jtj)UBECf}Y}2K~M3iHk%{ABHf+l_{d!Y@9#|i4T}E# zFZ{1k^ljLWdcow3J=Turm zuZ#DwjfnSg7VqOMN{?uNsS;|4ye*m66Km1_QZH7fp7qo-O~m!K)+_b88Vcg?!uO!s zGqJxQlKwaL7hMfe9N|>%AG}|k`#;2L(G_gRYKbcm+%GNy+^6LU--!px1rL-TF9#3Q4DvvY;DH*}Q^T~H zo|@j8tu;!`e}xAIqcdN}1-i`s0bD@WKwKcMMI}{Nqt@^hHQhBFS3}H@s2Rcx0No*W z=mAB5zVmmHivKB!pj=K^A>;u>Of^MMq+I&e!0iJ|DAG3YE$O=mnw~arJ6j?h`=O!| zX%g8yowYG)G@npai)E~wwAa}+pmx}uighf9$6|#+=IWk5kXPy8(&888RXVsd2)#;& z68clk15}canMiox)Cjwh4zSeeHE4n%X1uW8%VoPZxyi0IkI3ij?e;DVBUajQ+GO8i z--F5P#w{31j8qGL|JeymiuhyVZ#iB0I%S^1dlaT27%2@KjNXa5LW)~Zfm2hE;uZQo z2GU^L#1pd9{sx824-VW13Vkdv3A7Pzx6$}DL~#px(7~A zM8m^+P<=`J)&CDf5q=|C?AEW~nzsjTKgl)Bw?o174b&qG#-Xz|niwY>CdQ$9vtH^x z@9iECjO!4TEap#Jlk6oP1iep(bD_X%&9^p!V^ z%{@g@nWRICL^DZ;6y14}4g|PP`btoN^i_hi3vfq3nNs@mB$}l{G)q|zhN$VH8HK)z z3VjuAk9I|`iz;n6ZHjJ*?!i(Tw?tW#11?JFD=+;qdaOB#!MyXlyvNHlOgs7is;`Q+ z&eu}N{Gg!FpuS3{{r;~ZN?Oo^4r!epAWE9(At>{YLKKp>ucZkh&?mWug`lshSQV`{ zTAb*tX{4{Js)%tgAWte)OM6S@4ong0E!|prsMH{p#)hyFI>}?`AI&J;(e7AxX?I4+ z&>sWIh)w8BEJSCaib!Qulgw4op_*i_iVoF8qtTse>VRxaMe$p##t1Ui?;Ts;ME~16_MdSqG@e2dTM&x^YM@|6d7ObAq5X zCkR?22wF?4N(8MXd9D4QBq(x(gXs|3Ca{G{XG;$$e#6g@KAy}*X{UL|v&T+j$12%P zrR=g&c24R1Qr=w3!d~{7mn{V-jEh~Nu*YP!US@xBv1eWEH1y6z3<=)^W}Lt#IBjEh z$+8wUjYzdJsa0*|t)rXr`G%Zx7#lV$QD1{(n_Zi(wT)z>N8gxbgrm}Kl1)=n30K90n$zS7NZ#c}2D}p@k(9;uJpU9$ zHxu|LJL(&nMvUCWKi%Hins0iJ|3OOO8~6o{xg+S%Z6y!`)G)bQfe)GMdk?Sl;hW_e z0V&l`oNYxl4k&}d^zg=gXym0r7MdX@$8Y&)+_2FE95ls$xwpH# zBw+i^?@?~>#1#{hxyci=j<{;8T{fovjGvx9c|m34X(5y0wYQblnt)Q%qScM$D+_-d zHtFWo4Kw6p|MIIz8yBuNvN$yx@vYwTkKGjE@FBY&o0YVYA$9 zV+A|Af-Q7i>Du6uTk@?9HMvS#J*(dZOD5jX&?=VN5v^>kMDMQA!6!{AzVpNtcd+k`-V0u?jn>!CdFYnHc4pnc_S@y>p0-#g z2HdybSmHzjTP7GBE!Sm}*RH!OU%KR>wsSAu@M!;Rw%HZ-Ij+%GjJ>=p8SNPL3R`yd zDCgAbs>iOqcIx8me(COQ${_OXLHkGtaPUJ?mp0lMWS6V#76-f9q8A$uw@kM1a=w9c zbaA;dZlf)e#4jmXK!F&QsM}@2m(dyZn~bR6r+Od|)zwIq68-O?faHA?_6a7(VG!Me z0Q>ZU^ucm;xntq%t9M*A=ltf8%l6kinY?_(gS#%divRe&OU@4$e$2K^nZ9P}nA2X0 z-ZSg$x${xO0oWPkW5aWRC5xdt@+R%fr8R7B4VzNK<|Nsa1Y7I7)yEg12*wd`@N6~{ zFO%k@WHIC^b4qoga?Hv$8(pDzI%BCbmOIl4M7GK?j4NGU5sX`TMciN(rN-iBIy+Uu zC^!OPKY#~)>YJ~FbvjjQA)@8iYZmppOQl3pLMkbQSrKD=Pmfff-~95hpN4W39i~gXlp*WZQV~y!3%{}t{nKC;Xcp?gXg7r+K4ro zTQYool3kHxtyVS}O`#Ty#PuKFr- z{e8}zB*ZPg-|rv4-(SCkOlFwOz2`jVInR0O=ZX33lErLvTO5T(l+Xb(jL!@p_lZ?` zL*^;jeW}SK7wi-O{rW6vhzTu-DGB*JW#DNB#)h8~5%sYOKnH_o6mMS63N8=(u~*IO6R5v~Dxqlw8k#-WWdot})m3FIv^k za_;oVvaG|bblkTI?{txH$Sp23EHVg__-VpKk=JR=7TSb7rf(9+Po+&7gTXMk2`BZJ z2`hWXiy~EPG$KcIS_F^204#%nHX++bgTMJaVKf+2O;p0cO$evFpQXI75dk=5Fshm~ zQmRT97tm@nlxTFQNkdn4N=}mLD1!XvgwaTwwCsh5dm8n6RTC!`;s&BY?@`iU<7t=U zm-|7&AYr?TedB*S#r$}j6;UG-G9N~~@|0L1X*x}40F571CLyH?YD^0X27$)JBnf`; z7Fzj^ys6k1%#)X$r32ALxmL*9)wX)ocfSIeut$FS{jI{MDiQnJ&3UNs+ulmgyhmSCY?@mS*|Nym{iu#>U6wnnz`$FhlvpDw`VR zYlQ$NDxrTzF3L6jk{C8To6L@o<_Nh~B9k)6%Jj~3It5@Aw7-k2vTU=^P90gHBU9D$ z)O4cIE>KHhUT(zeGy9CFvk#^FeI`Fj46_oW&??z%_C;ah_<<~|)ds^U>;aw@$MeH@ zFGI zJ5Z2GcCMHakDWB=VTCM9s2Vtny1P97kcJFhu}6$5zadMJ^^DEsrol{BsE3osnkpEv zm+&}Ea1^O|MTJm<`YyK+Ao9rDN^8)qszu&0W9-v=-^>heM;X{b!}boIy{(kprFI7JyH804fPfJ*qU z_h;lRp0P<@sCir!EnRak?s({-)BEY2uie$MabOvFE^XV8=Joy8zq6U%nQY@I>n}@= zVC0Ana6=Li5uTrj!HC0q1JmUhn2+0wPS=h!mC@`s=*%3N*f8?ThMJ5q5NrQQcnWpJy>#5!0Qm0Ft-xUu>&Crwr zQov~k^kP;(4eWexfTL#cWH&HZ$*Ido(P#8!gI83VUPeP6Br7&Vi!=$`WvM7f2d9c& z&`~S;e5+L{_zRV9X#Kr|OZPt_A36Qpi?5MMKYe4KlCyed8euFC+z=$ypBxk0i59cXF0mvp+w z3Kt0wo=9B4!3BJLn3JNO94KGFB@SBy0dT4bVYyJiMvb5algx_tRdA{VYslmZQ&ueR zUw$7-Oef2*?~x!#lvk_^hK~-YHO7^!F&8uzi-<=zUkWXT=_ukeU!EQmA61%{8yNNY z>5CWXU_`I}%L}AUrsodcC9*9V)F()aXQ)NO9nq+-{ReG6PxBVg|OMd9fMD)zSu$ z0M@)X-QrStyq)l6&a_^7>}NAxj!Ro6DDUuHTB82hru~3-sk-D1kpuEQ$rm z8p{p~Wspu3$?6#aw@Z>-u87m(a5}6OrzI^tlxZ=WJShC|d3oMr@$z-jS#T}~B{@Ui{Shk%J0cJzTVZz**FV9nmr zkaNWsumf4uK+7qGK|vxDsys|*L{{#BvJY13k(Pp*VQ+OaFbVNY;mnN16ro>H!Rq3B z=@nAw#eZ@9zXpd|?k`O^2IS5wv_>tLp4znO^g1$a!-?y!m+wjz=VwScv_5(Nu|bcz z9=43|&&{Qcn@O|$Ap6<8W5depmVuCVVQJjE3E**}N7!~sqGGv7e=d@TMY2VE ztCp(tE+TH`u1w=n)%v)rO8>MD1}CR@z!%L3to* z;RKd&lo+VgL!zHAY9q&J#KW3nn!iF((+DQNU9CeyFhiK(*?hzrf}y1&=hcMO7S^bd z^#Ze^$fi3--}0ZkfHC4JDfy{feC4sb^B2s}KE1vaQGjk=8^1XIx&H?}zV<9!UWq1O zU+z8p?(sgIy%IyOyPkO|$ADIsg=!k*YFXAe_Z#j)Qp0%?fa~%FoZKLC$VWD!rU=#f zsK0^-37_evFO3@c?$4~kXR;GMvd2RTJ;dT6KyBwdevJX2PXXt5f1XKiz5RI~Jv&{8r zK2Gn1vVrjd8DK2^3_CKN8=gS-af~m*#uxE;A(KTmE^BOd|e= zG1AZEv7da>cZ4nL*3nt~&GJ9c_Pg&0>1F_OVT4-rEMwBr%k4=t&9xDYt9TqqHkZ|IG+W$uqs!v9NLH7_3Y1Q_SEW`Pj2^E8BEn&`8znCg5FMP?Z@1%Zhn;#Y zMyp1x^{a#)_2X0t6AW;o6@08i<&^@nd#f%92#(+uHMXtzzib7nwk^h z5^L*5T;EuiSsuwB+9WTQ8~#KqWWy&wj=1xkWRe_Tv1|R+YWK z+2Za}$RC^VKh2g`W@}ew%U>B%x3Ooo-}Llwzf1(yz}>rU*L7o3a~-mQEKN0Vm-mpx zXy3l{akj!Z59_hQR#c&ko}(cqbkfxe1|25~2EdpStpRYNl3;KMg28CytU3;TQguWN zbwoiKvsgI0Rx7Afcw1`~3r&z!I)HTvDNW=p7>Fs`(2|-i7Ls{Fd#pnUcC2t(&*FBT zG2?%jgbHFgLpc9}sYS)k6YKvfk7jFWkY6Sh@}Sgu%DE&*{uNz-RXn|!E>o6q*Jj4M z&@=eIVHMfT#{Ao9MgD18uy#0IL`#6dMKCX1qjzdL%q`C5rd6@2K`{Zlb~k^pbaSpU zH8_2{my;b@|88!5X2uo}GvohuQU07Q+*J8ADV5LtPFcK{$sqX^fB?6U%bUql%9=H9 z#+b%`|B29v&WU;4dx@JT#jlO8jDHdrCZ?0Qnl+jo8h)N`t?o|UBRaurJYuAuI!L95 zZ1wE-(6-p}*p?VShMNJzDo9yG=%y<@n+{n;HE*>7Lq|*OqBbKC3{rQ%%x4D@u-MX! z=!LG&$ne>s*1RZ#L`VQDmMcKDn7&Y-0OBIAk3<3W!N5dSJx7p&nP&lb2Wtw%W$Wg)8D4U?T)$}D+v|TGT+;RI z;%nu+oKg42E2@Vq73>`Q#=*#GPMGIJ0Mq;)5O=>BZSaPM@#RwY-=3E@r zxmoBNt49kFbYDhFvCijnan{!@xvw*dO3IpS1d141FLU{>Fu+onI>1^l>%w6MyZoVw z&rsEA6(ifUEqb(GsRHNlS^yOFgmv8-HcjXa3 z8C;yRMAEkV2jxV&yDO8p{9@z8!+m-xH#PROR5q66SEHwLRlk{_uMKDNA;_B`SDNst z)JBO5rFkq;hB+Wnk1vqs(yFzAtLFkMFGSfmPT==(3>Ovlk%KsV;b2Vp95Z`>vaCVj zQ0d@%>xX74eL0g~Xr1F~=Om^C3o~1M27Z74qmvff51=dOLNSpvzBc56+N!ii9kUBI zLu<$A(lELZWQN2QCOjBjgv<0;A^~$eL*?}Y9j>nohZ(61?SC6tnW86PV4>o{`+Ei^ zhp4fpyuD`J=$U2>KeXy+BU&-6QQ^7#+2mgyvMngh)$A|y?4U1TRPtHi2jz+%aw6wX z7=T`~5!pXwqEJS-g5*Vvp~TzO#VjHb;<5rgW&S2VO!|K=PT#k0BR>5uKHb0P)07wS zX!*W}3U`q7mmik@miV0X7v9*napS+DfKl^!tpqG5_=ci-z_h9sDtcY6> z0i2)uyYR~Ze!p~CU}VppyHI2bS;6WrK^N-w1Qxb4X3DW z@Hp(wkb;99rsgrlH3cKb+Xv+hSWQr<3|fBQA#C7wsQ_EcB@!Ny;LuHIbfqdF?-Gq5 zQo{3ihZXQX#Y$R%zfsV2HU)o$SR+IJDClCP+cw0i?2)pFQ|;a*e?mM*jtCo`Dt&4x z%Cf2ai9C(m{r$JNhmjkT$kG|LdgDeSQd~R1of3H7Xw;!Iqc)*ArB5tEs+vKh8v*uI zaLU`&4=zh@m-mvl3-@EXT$lHP^4tpxm)#Ymw16C`5XG{JSeZ!fPTf_0SN`P45#p&! z4dy{MlBG|l7jNG;=;1RnxbMyQE^dO zX?|WwURhpEZiyqeB)5hkT;ycObK*5w*^aENY?cvG8X=*G1SChJvqn&M~Lw-`|XE;!Pzm&Bni)Ll#XbX$-a`Ovn%1h^zZ7-u`r6sw*A`^;BvQ)ku76Q-a zJPWbd{APa!S||F|XwOljibNx|5gws$R?*!aS`iW=Ay_OPk2anKloJ7N;8ZxJ1+hf< zp;ECW7{qu{Tmn4_PZ2p|ktOE1VTuNG9)P&`V|a!w=b>a=W>F_4@YvGhCx)`&DQLOa znZ|rPa2gYj;QULuz2Qn`IVwQ zp0lIM2G_b;4_9B;K6wMl%i8UD@c9PYqB{rPAYb|J)w_g#$q@&p%l|d~0BKy6-QM=i z=Egz9p7vyVczBhh^JE38cB~oF|8MqP3kRmF13BJGq3Bzq`1dRK5mEk*pC)JGAbAhG z&W(Wf)(T0iCydT_B&{WmLx(B_MH=QMsm7MHoL)szSBTkMwf^}(ST5? z*#bu$bp(LHr>p~lL10zpY&?~U3$aI_>7~M;J>kGq&=W^t&XxJQ@O7H(ljpM^`b+BG zym>QqC;xGyS4+^pk^ibU#jP3}5#nl_4Z@XYzQS%x zgN=oGc&`ox+~4gd>uWhxEm7jKf3EoFZIwz;ldg0dbXuO!Am&H*aPT?Ew6lmj!@Fvp{U}NMp%`3A4-_- z3)HN>a<@S@if$ogmD5e8(;mw}!wssJ9DaaSy~QvKC0JD`h!}oWN`!*Gf!e> z7WkVNC2HqoAW+_%LFYP1onx|tt}t&k(-mYZpsEQxEsc1oW`}qIlPk-#H zKmB(~*Z^(6?;TP?cl?uIy^!4V1HXELMGp?xmrQ(A{OaF%*9FdlXy|CrppdKJ1|b_u zl^AvZP%>%2$^rC)Qu0(Oxet#eWUfS}X3WEy`$)5o06ueT9a&jNwhSlBhLddrNV(bA zFQReP4Gv}&6gms-RRc;(2v_Lf&=xc+F~V8sa5@Xeax*zv4))*-nue@!w)YY|!Oq&S zckqDfe*WyNU}<%ENoH0#zN^Fj0+OeGppMj4Rr{@QAKA@Ty-`=lA$o>*1rnu{cqsbT z!%wW7h~38gG@gMY!E}y}wpqUJg0$7pw>Ki5{ED(yohLVZU z4T_iwl`7q3$}1}D*k8zB=*~m2qfe$9xfyD}A}Ybv@(5hb__Q$k!wh@28EHiMFZeZ2 zza7ndW$!!Dz%|zos4Z9$-(OL;wki=gR`Bw*J6apg-sGNHS3pR^`V$`Khhx*_1J!{U z1>#A$#^Ek%h_C(YId|vy%Emhdc`bR^=AXFv(4;K85%^5`ww&B$X%~k@Y~-e-yFTxX z$r|}`aKJ6!&L0^#*I>+PACiw)VzHX+HqL2rO3uU1V@}Z-5Pdd( z+~xM9p|71uO^N6?Xmom3=ZytZocYCwW1l+Jg%}fd1_bV@u5+glIXrca!TjK-cad0> z!_p}*Pd-~DC458rY!pDzr5bx!(dWm`!-2_moWouacplKUl;Im5qnxWE0~n($zXZt(Su3V>C^Pv(_7^^ zfQx0=Ycrj;f-$w(&i z#ApzCftO51aD-97D+3G%P)LUmm_c+HM8KsRQnV6PS_2~#L&2^&#|Xt18Dl+%yhiSo zPBAVZTLsH`5gXL99?=@%34`y4zSEO>JvpE!6+-uP5I*cX zowzcc$PcCi$2vf0Ih84{XbNmP0BQKYn#~e)tYT87&y<+Ing3>AgM8116DP=#Kgn~+ zv{}l+WUP^=iYKqUK#s{PlHXuP+43CW7-ppBDiawxQ4p0ZB6vyz09n!-(ZE9tXn>T6 zkUYrU#f~1Bh-ca9`F>B(7I`ye%q8k1LE+e=S0a4pmGgr4%3}T@M#U3C^J9;FcNq7| z0`=a7?ra7>hLLn+hybus5JYs410FpBnO2RU7u9i{${>Is6wHVlvOD(N@@#7BDqG

!eH><$#o_naeQK(q_!ZGm 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 glyphs; - SamplerState glyphSampler; - Texture2D glyphTextures[]; -}; -ParameterBlock pText; - struct VertexInput { uint vertexId : SV_VertexID; @@ -31,6 +13,24 @@ struct VertexOutput uint glyphIndex : GLYPHINDEX; }; +struct GlyphInstanceData +{ + float x; + float y; + float z; + float width; + float height; + uint glyphIndex; +}; +struct TextData +{ + StructuredBuffer glyphs; + SamplerState glyphSampler; + Texture2D glyphTextures[]; +}; +ParameterBlock pText; + + [shader("vertex")] VertexOutput vertexMain(VertexInput input) { diff --git a/res/shaders/lib/LightEnv.slang b/res/shaders/lib/LightEnv.slang index ae2fdcf..dd8fd7d 100644 --- a/res/shaders/lib/LightEnv.slang +++ b/res/shaders/lib/LightEnv.slang @@ -70,6 +70,10 @@ struct LightEnv layout(set=3) ParameterBlock pLightEnv; +[Differentiable] +float polynomial(float a, float b, float c, float x) { + return a * x * x + b * x + c; +} interface IBRDF { diff --git a/src/Editor/main.cpp b/src/Editor/main.cpp index a527235..2fa89f7 100644 --- a/src/Editor/main.cpp +++ b/src/Editor/main.cpp @@ -50,6 +50,8 @@ int main() { AssetImporter::importEnvironmentMap(EnvironmentImportArgs{ .filePath = sourcePath / "import" / "textures" / "newport_loft.hdr", }); + AssetImporter::importTexture(TextureImportArgs{.filePath = sourcePath / "import" / "texture" / "Dirt.png", .importPath = ""}); + getThreadPool().waitIdle(); vd->commitMeshes(); diff --git a/src/Engine/Graphics/RenderPass/BasePass.cpp b/src/Engine/Graphics/RenderPass/BasePass.cpp index 1ffd5f9..9cc43ab 100644 --- a/src/Engine/Graphics/RenderPass/BasePass.cpp +++ b/src/Engine/Graphics/RenderPass/BasePass.cpp @@ -157,8 +157,7 @@ void BasePass::render() { vertexData->getInstanceDataSet()->updateBuffer(VertexData::CULLINGDATA_NAME, 0, cullingBuffer); vertexData->getInstanceDataSet()->writeChanges(); permutation.setVertexData(vertexData->getTypeName()); - const auto& materials = vertexData->getMaterialData(); - for (const auto& materialData : materials) { + for (const auto& materialData : vertexData->getMaterialData()) { // material not used for any active meshes, skip if (materialData.instances.size() == 0) continue; diff --git a/src/Engine/Graphics/slang-compile.cpp b/src/Engine/Graphics/slang-compile.cpp index 06d23f2..dd355e2 100644 --- a/src/Engine/Graphics/slang-compile.cpp +++ b/src/Engine/Graphics/slang-compile.cpp @@ -139,11 +139,9 @@ void Seele::beginCompilation(const ShaderCompilationInfo& info, SlangCompileTarg slang::ProgramLayout* signature = specializedComponent->getLayout(0, diagnostics.writeRef()); CHECK_DIAGNOSTICS(); - //std::cout << info.name << std::endl; for (uint32 i = 0; i < signature->getParameterCount(); ++i) { auto param = signature->getParameterByIndex(i); layout->addMapping(param->getName(), param->getBindingIndex()); - //std::cout << param->getName() << ": " << param->getBindingIndex() << std::endl; } // workaround diff --git a/src/Engine/Material/ShaderExpression.h b/src/Engine/Material/ShaderExpression.h index 4dc81bf..f79232c 100644 --- a/src/Engine/Material/ShaderExpression.h +++ b/src/Engine/Material/ShaderExpression.h @@ -4,7 +4,6 @@ #include "Math/Math.h" #include "MinimalEngine.h" - namespace Seele { enum class ExpressionType { UNKNOWN, @@ -184,6 +183,9 @@ struct SwizzleExpression : public ShaderExpression { StaticArray comp = {-1, -1, -1, -1}; SwizzleExpression() {} SwizzleExpression(StaticArray comp) : comp(std::move(comp)) {} + SwizzleExpression(std::string key, std::string target, StaticArray comp) : ShaderExpression(key) { + inputs["target"].source = target; + } virtual ~SwizzleExpression() {} virtual uint64 getIdentifier() const override { return IDENTIFIER; } virtual std::string evaluate(Map& varState) const override; @@ -194,6 +196,11 @@ DEFINE_REF(SwizzleExpression) struct SampleExpression : public ShaderExpression { static constexpr uint64 IDENTIFIER = 0x16; SampleExpression() {} + SampleExpression(std::string key, std::string texture, std::string sampler, std::string texCoords) : ShaderExpression(key) { + inputs["texture"].source = texture; + inputs["sampler"].source = sampler; + inputs["texCoords"].source = texCoords; + } virtual ~SampleExpression() {} virtual uint64 getIdentifier() const override { return IDENTIFIER; } virtual std::string evaluate(Map& varState) const override; @@ -205,8 +212,6 @@ DEFINE_REF(SampleExpression) struct MaterialNode { std::string profile; Map variables; - MaterialNode() {} - ~MaterialNode() {} void save(ArchiveBuffer& buffer) const; void load(ArchiveBuffer& buffer); }; diff --git a/src/Engine/System/MeshUpdater.cpp b/src/Engine/System/MeshUpdater.cpp index 748fea0..ea716e6 100644 --- a/src/Engine/System/MeshUpdater.cpp +++ b/src/Engine/System/MeshUpdater.cpp @@ -9,7 +9,8 @@ MeshUpdater::MeshUpdater(PScene scene) : ComponentSystemaccessComponent(id); if (comp.meshletOffsets.empty()) { for (uint32 i = 0; i < comp.asset->meshes.size(); ++i) { comp.meshletOffsets.add(comp.asset->meshes[i]->vertexData->addCullingMapping(comp.asset->meshes[i]->id)); diff --git a/test.py b/test.py index ae7340f..353c3da 100644 --- a/test.py +++ b/test.py @@ -16,3 +16,11 @@ print(positions) print(indices) +# Create a tensor with attached grads from a numpy array +# Note: We pass zero=True to initialize the grads to zero on allocation +x = spy.Tensor.numpy(device, np.array([1, 2, 3, 4], dtype=np.float32)).with_grads(zero=True) + +# Evaluate the polynomial and ask for a tensor back +# Expecting result = 2x^2 + 8x - 1 +result: spy.Tensor = module.polynomial(a=2, b=8, c=-1, x=x, _result='tensor') +print(result.to_numpy()) \ No newline at end of file