diff --git a/CMakeLists.txt b/CMakeLists.txt index cef0e3b..0eb28de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,9 +16,7 @@ add_compile_options(-fPIC add_subdirectory(thirdparty/dxbc EXCLUDE_FROM_ALL) add_subdirectory(thirdparty/pe-parse/pe-parser-library EXCLUDE_FROM_ALL) -add_subdirectory(lsfg-vk-common) -add_subdirectory(lsfg-vk-v3.1) -add_subdirectory(lsfg-vk-v3.1p) +add_subdirectory(framegen) # main project project(lsfg-vk @@ -43,8 +41,7 @@ set_target_properties(lsfg-vk PROPERTIES target_include_directories(lsfg-vk PRIVATE include) target_link_libraries(lsfg-vk PRIVATE - lsfg-vk-common lsfg-vk-v3.1 lsfg-vk-v3.1p - pe-parse dxbc vulkan) + lsfg-vk-framegen pe-parse dxbc vulkan) if(CMAKE_BUILD_TYPE STREQUAL "Release") set_target_properties(lsfg-vk PROPERTIES diff --git a/lsfg-vk-v3.1/.clang-tidy b/framegen/.clang-tidy similarity index 100% rename from lsfg-vk-v3.1/.clang-tidy rename to framegen/.clang-tidy diff --git a/lsfg-vk-v3.1/.gitattributes b/framegen/.gitattributes similarity index 100% rename from lsfg-vk-v3.1/.gitattributes rename to framegen/.gitattributes diff --git a/lsfg-vk-v3.1/.gitignore b/framegen/.gitignore similarity index 100% rename from lsfg-vk-v3.1/.gitignore rename to framegen/.gitignore diff --git a/lsfg-vk-common/CMakeLists.txt b/framegen/CMakeLists.txt similarity index 54% rename from lsfg-vk-common/CMakeLists.txt rename to framegen/CMakeLists.txt index a6cf0c9..58bcea2 100644 --- a/lsfg-vk-common/CMakeLists.txt +++ b/framegen/CMakeLists.txt @@ -1,40 +1,57 @@ cmake_minimum_required(VERSION 3.28) -# project -project(lsfg-vk-common +set(CMAKE_C_COMPILER clang) +set(CMAKE_CXX_COMPILER clang++) + +project(lsfg-vk-framegen + DESCRIPTION "Lossless Scaling Frame Generation Backend" LANGUAGES CXX) file(GLOB SOURCES + "src/common/*.cpp" + "src/config/*.cpp" "src/core/*.cpp" "src/pool/*.cpp" - "src/common/*.cpp" "src/*.cpp" + "v3.1_src/core/*.cpp" + "v3.1_src/pool/*.cpp" + "v3.1_src/shaders/*.cpp" + "v3.1_src/utils/*.cpp" + "v3.1_src/*.cpp" + "v3.1p_src/core/*.cpp" + "v3.1p_src/pool/*.cpp" + "v3.1p_src/shaders/*.cpp" + "v3.1p_src/utils/*.cpp" + "v3.1p_src/*.cpp" ) -add_library(lsfg-vk-common STATIC ${SOURCES}) +add_library(lsfg-vk-framegen STATIC ${SOURCES}) # target -set_target_properties(lsfg-vk-common PROPERTIES +set_target_properties(lsfg-vk-framegen PROPERTIES CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON) -target_include_directories(lsfg-vk-common - PUBLIC include) -target_link_libraries(lsfg-vk-common - PRIVATE vulkan) +target_include_directories(lsfg-vk-framegen + PUBLIC include + PUBLIC public + PRIVATE v3.1_include + PRIVATE v3.1p_include) +target_link_libraries(lsfg-vk-framegen + PUBLIC vulkan) if(CMAKE_BUILD_TYPE STREQUAL "Release") - set_target_properties(lsfg-vk-common PROPERTIES + set_target_properties(lsfg-vk-framegen PROPERTIES INTERPROCEDURAL_OPTIMIZATION ON) endif() # diagnostics if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set_target_properties(lsfg-vk-common PROPERTIES + set_target_properties(lsfg-vk-framegen PROPERTIES EXPORT_COMPILE_COMMANDS ON) endif() if(LSFGVK_EXCESS_DEBUG) - target_compile_options(lsfg-vk-common PRIVATE + target_compile_options(lsfg-vk-framegen PRIVATE -Weverything # disable compat c++ flags -Wno-pre-c++20-compat-pedantic @@ -52,6 +69,6 @@ if(LSFGVK_EXCESS_DEBUG) -Wno-cast-function-type-strict # for vulkan ) - set_target_properties(lsfg-vk-common PROPERTIES + set_target_properties(lsfg-vk-framegen PROPERTIES CXX_CLANG_TIDY clang-tidy) endif() diff --git a/lsfg-vk-v3.1/LICENSE.md b/framegen/LICENSE.md similarity index 100% rename from lsfg-vk-v3.1/LICENSE.md rename to framegen/LICENSE.md diff --git a/framegen/README.md b/framegen/README.md new file mode 100644 index 0000000..aff3912 --- /dev/null +++ b/framegen/README.md @@ -0,0 +1,14 @@ +## lsfg-vk-framegen +Lossless Scaling Frame Generation + +This is a subproject of lsfg-vk and contains the dedicated Vulkan logic for generating frames. + +The project is intentionally structured as a fully external project, such that it can be integrated into other applications. + +### Interface + +Interfacing with lsfg-vk-framegen is done via `lsfg_x_x.hpp` header. The internal Vulkan instance is created using `LSFG_X_X::initialize()` and requires a specific deviceUUID, as well as parts of the lsfg-vk configuration, including a function loading SPIR-V shaders by name. Cleanup is done via `LSFG_X_X::finalize()` after which `LSFG_X_X::initialize()` may be called again. Please note that the initialization process is expensive and may take a while. It is recommended to call this function once during the applications lifetime. + +Once the format and extent of the requested images is determined, `LSFG_X_X::createContext()` should be called to initialize a frame generation context. The Vulkan images are created from backing memory, which is passed through the file descriptor arguments. A context can be destroyed using `LSFG_X_X::deleteContext()`. + +Presenting the context can be done via `LSFG_X_X::presentContext()`. Before calling the function a second time, make sure the outgoing semaphores have been signaled. diff --git a/lsfg-vk-common/include/common/exception.hpp b/framegen/include/common/exception.hpp similarity index 100% rename from lsfg-vk-common/include/common/exception.hpp rename to framegen/include/common/exception.hpp diff --git a/lsfg-vk-common/include/common/utils.hpp b/framegen/include/common/utils.hpp similarity index 100% rename from lsfg-vk-common/include/common/utils.hpp rename to framegen/include/common/utils.hpp diff --git a/lsfg-vk-common/include/core/buffer.hpp b/framegen/include/core/buffer.hpp similarity index 100% rename from lsfg-vk-common/include/core/buffer.hpp rename to framegen/include/core/buffer.hpp diff --git a/lsfg-vk-common/include/core/commandbuffer.hpp b/framegen/include/core/commandbuffer.hpp similarity index 100% rename from lsfg-vk-common/include/core/commandbuffer.hpp rename to framegen/include/core/commandbuffer.hpp diff --git a/lsfg-vk-common/include/core/commandpool.hpp b/framegen/include/core/commandpool.hpp similarity index 100% rename from lsfg-vk-common/include/core/commandpool.hpp rename to framegen/include/core/commandpool.hpp diff --git a/lsfg-vk-common/include/core/descriptorpool.hpp b/framegen/include/core/descriptorpool.hpp similarity index 100% rename from lsfg-vk-common/include/core/descriptorpool.hpp rename to framegen/include/core/descriptorpool.hpp diff --git a/lsfg-vk-common/include/core/descriptorset.hpp b/framegen/include/core/descriptorset.hpp similarity index 100% rename from lsfg-vk-common/include/core/descriptorset.hpp rename to framegen/include/core/descriptorset.hpp diff --git a/lsfg-vk-common/include/core/device.hpp b/framegen/include/core/device.hpp similarity index 100% rename from lsfg-vk-common/include/core/device.hpp rename to framegen/include/core/device.hpp diff --git a/lsfg-vk-common/include/core/fence.hpp b/framegen/include/core/fence.hpp similarity index 100% rename from lsfg-vk-common/include/core/fence.hpp rename to framegen/include/core/fence.hpp diff --git a/lsfg-vk-common/include/core/image.hpp b/framegen/include/core/image.hpp similarity index 100% rename from lsfg-vk-common/include/core/image.hpp rename to framegen/include/core/image.hpp diff --git a/lsfg-vk-common/include/core/instance.hpp b/framegen/include/core/instance.hpp similarity index 100% rename from lsfg-vk-common/include/core/instance.hpp rename to framegen/include/core/instance.hpp diff --git a/lsfg-vk-common/include/core/pipeline.hpp b/framegen/include/core/pipeline.hpp similarity index 100% rename from lsfg-vk-common/include/core/pipeline.hpp rename to framegen/include/core/pipeline.hpp diff --git a/lsfg-vk-common/include/core/sampler.hpp b/framegen/include/core/sampler.hpp similarity index 100% rename from lsfg-vk-common/include/core/sampler.hpp rename to framegen/include/core/sampler.hpp diff --git a/lsfg-vk-common/include/core/semaphore.hpp b/framegen/include/core/semaphore.hpp similarity index 100% rename from lsfg-vk-common/include/core/semaphore.hpp rename to framegen/include/core/semaphore.hpp diff --git a/lsfg-vk-common/include/core/shadermodule.hpp b/framegen/include/core/shadermodule.hpp similarity index 100% rename from lsfg-vk-common/include/core/shadermodule.hpp rename to framegen/include/core/shadermodule.hpp diff --git a/lsfg-vk-common/include/pool/resourcepool.hpp b/framegen/include/pool/resourcepool.hpp similarity index 100% rename from lsfg-vk-common/include/pool/resourcepool.hpp rename to framegen/include/pool/resourcepool.hpp diff --git a/lsfg-vk-common/include/pool/shaderpool.hpp b/framegen/include/pool/shaderpool.hpp similarity index 100% rename from lsfg-vk-common/include/pool/shaderpool.hpp rename to framegen/include/pool/shaderpool.hpp diff --git a/lsfg-vk-v3.1/public/lsfg_3_1.hpp b/framegen/public/lsfg_3_1.hpp similarity index 100% rename from lsfg-vk-v3.1/public/lsfg_3_1.hpp rename to framegen/public/lsfg_3_1.hpp diff --git a/lsfg-vk-v3.1p/public/lsfg_3_1p.hpp b/framegen/public/lsfg_3_1p.hpp similarity index 100% rename from lsfg-vk-v3.1p/public/lsfg_3_1p.hpp rename to framegen/public/lsfg_3_1p.hpp diff --git a/lsfg-vk-common/src/common/exception.cpp b/framegen/src/common/exception.cpp similarity index 100% rename from lsfg-vk-common/src/common/exception.cpp rename to framegen/src/common/exception.cpp diff --git a/lsfg-vk-common/src/common/utils.cpp b/framegen/src/common/utils.cpp similarity index 100% rename from lsfg-vk-common/src/common/utils.cpp rename to framegen/src/common/utils.cpp diff --git a/lsfg-vk-common/src/core/buffer.cpp b/framegen/src/core/buffer.cpp similarity index 100% rename from lsfg-vk-common/src/core/buffer.cpp rename to framegen/src/core/buffer.cpp diff --git a/lsfg-vk-common/src/core/commandbuffer.cpp b/framegen/src/core/commandbuffer.cpp similarity index 100% rename from lsfg-vk-common/src/core/commandbuffer.cpp rename to framegen/src/core/commandbuffer.cpp diff --git a/lsfg-vk-common/src/core/commandpool.cpp b/framegen/src/core/commandpool.cpp similarity index 100% rename from lsfg-vk-common/src/core/commandpool.cpp rename to framegen/src/core/commandpool.cpp diff --git a/lsfg-vk-common/src/core/descriptorpool.cpp b/framegen/src/core/descriptorpool.cpp similarity index 100% rename from lsfg-vk-common/src/core/descriptorpool.cpp rename to framegen/src/core/descriptorpool.cpp diff --git a/lsfg-vk-common/src/core/descriptorset.cpp b/framegen/src/core/descriptorset.cpp similarity index 100% rename from lsfg-vk-common/src/core/descriptorset.cpp rename to framegen/src/core/descriptorset.cpp diff --git a/lsfg-vk-common/src/core/device.cpp b/framegen/src/core/device.cpp similarity index 100% rename from lsfg-vk-common/src/core/device.cpp rename to framegen/src/core/device.cpp diff --git a/lsfg-vk-common/src/core/fence.cpp b/framegen/src/core/fence.cpp similarity index 100% rename from lsfg-vk-common/src/core/fence.cpp rename to framegen/src/core/fence.cpp diff --git a/lsfg-vk-common/src/core/image.cpp b/framegen/src/core/image.cpp similarity index 100% rename from lsfg-vk-common/src/core/image.cpp rename to framegen/src/core/image.cpp diff --git a/lsfg-vk-common/src/core/instance.cpp b/framegen/src/core/instance.cpp similarity index 100% rename from lsfg-vk-common/src/core/instance.cpp rename to framegen/src/core/instance.cpp diff --git a/lsfg-vk-common/src/core/pipeline.cpp b/framegen/src/core/pipeline.cpp similarity index 100% rename from lsfg-vk-common/src/core/pipeline.cpp rename to framegen/src/core/pipeline.cpp diff --git a/lsfg-vk-common/src/core/sampler.cpp b/framegen/src/core/sampler.cpp similarity index 100% rename from lsfg-vk-common/src/core/sampler.cpp rename to framegen/src/core/sampler.cpp diff --git a/lsfg-vk-common/src/core/semaphore.cpp b/framegen/src/core/semaphore.cpp similarity index 100% rename from lsfg-vk-common/src/core/semaphore.cpp rename to framegen/src/core/semaphore.cpp diff --git a/lsfg-vk-common/src/core/shadermodule.cpp b/framegen/src/core/shadermodule.cpp similarity index 100% rename from lsfg-vk-common/src/core/shadermodule.cpp rename to framegen/src/core/shadermodule.cpp diff --git a/lsfg-vk-common/src/pool/resourcepool.cpp b/framegen/src/pool/resourcepool.cpp similarity index 100% rename from lsfg-vk-common/src/pool/resourcepool.cpp rename to framegen/src/pool/resourcepool.cpp diff --git a/lsfg-vk-common/src/pool/shaderpool.cpp b/framegen/src/pool/shaderpool.cpp similarity index 100% rename from lsfg-vk-common/src/pool/shaderpool.cpp rename to framegen/src/pool/shaderpool.cpp diff --git a/lsfg-vk-v3.1/include/context.hpp b/framegen/v3.1_include/v3_1/context.hpp similarity index 100% rename from lsfg-vk-v3.1/include/context.hpp rename to framegen/v3.1_include/v3_1/context.hpp diff --git a/lsfg-vk-v3.1/include/shaders/alpha.hpp b/framegen/v3.1_include/v3_1/shaders/alpha.hpp similarity index 100% rename from lsfg-vk-v3.1/include/shaders/alpha.hpp rename to framegen/v3.1_include/v3_1/shaders/alpha.hpp diff --git a/lsfg-vk-v3.1/include/shaders/beta.hpp b/framegen/v3.1_include/v3_1/shaders/beta.hpp similarity index 100% rename from lsfg-vk-v3.1/include/shaders/beta.hpp rename to framegen/v3.1_include/v3_1/shaders/beta.hpp diff --git a/lsfg-vk-v3.1/include/shaders/delta.hpp b/framegen/v3.1_include/v3_1/shaders/delta.hpp similarity index 100% rename from lsfg-vk-v3.1/include/shaders/delta.hpp rename to framegen/v3.1_include/v3_1/shaders/delta.hpp diff --git a/lsfg-vk-v3.1/include/shaders/gamma.hpp b/framegen/v3.1_include/v3_1/shaders/gamma.hpp similarity index 100% rename from lsfg-vk-v3.1/include/shaders/gamma.hpp rename to framegen/v3.1_include/v3_1/shaders/gamma.hpp diff --git a/lsfg-vk-v3.1/include/shaders/generate.hpp b/framegen/v3.1_include/v3_1/shaders/generate.hpp similarity index 100% rename from lsfg-vk-v3.1/include/shaders/generate.hpp rename to framegen/v3.1_include/v3_1/shaders/generate.hpp diff --git a/lsfg-vk-v3.1/include/shaders/mipmaps.hpp b/framegen/v3.1_include/v3_1/shaders/mipmaps.hpp similarity index 100% rename from lsfg-vk-v3.1/include/shaders/mipmaps.hpp rename to framegen/v3.1_include/v3_1/shaders/mipmaps.hpp diff --git a/lsfg-vk-v3.1/src/context.cpp b/framegen/v3.1_src/context.cpp similarity index 99% rename from lsfg-vk-v3.1/src/context.cpp rename to framegen/v3.1_src/context.cpp index 362d337..c594ed9 100644 --- a/lsfg-vk-v3.1/src/context.cpp +++ b/framegen/v3.1_src/context.cpp @@ -1,4 +1,4 @@ -#include "context.hpp" +#include "v3_1/context.hpp" #include "common/utils.hpp" #include "common/exception.hpp" diff --git a/lsfg-vk-v3.1/src/lsfg.cpp b/framegen/v3.1_src/lsfg.cpp similarity index 99% rename from lsfg-vk-v3.1/src/lsfg.cpp rename to framegen/v3.1_src/lsfg.cpp index 75e0992..9221730 100644 --- a/lsfg-vk-v3.1/src/lsfg.cpp +++ b/framegen/v3.1_src/lsfg.cpp @@ -1,5 +1,5 @@ #include "lsfg_3_1.hpp" -#include "context.hpp" +#include "v3_1/context.hpp" #include "core/commandpool.hpp" #include "core/descriptorpool.hpp" #include "core/instance.hpp" diff --git a/lsfg-vk-v3.1/src/shaders/alpha.cpp b/framegen/v3.1_src/shaders/alpha.cpp similarity index 99% rename from lsfg-vk-v3.1/src/shaders/alpha.cpp rename to framegen/v3.1_src/shaders/alpha.cpp index 58b03ec..7e9ef6f 100644 --- a/lsfg-vk-v3.1/src/shaders/alpha.cpp +++ b/framegen/v3.1_src/shaders/alpha.cpp @@ -1,4 +1,4 @@ -#include "shaders/alpha.hpp" +#include "v3_1/shaders/alpha.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1/src/shaders/beta.cpp b/framegen/v3.1_src/shaders/beta.cpp similarity index 99% rename from lsfg-vk-v3.1/src/shaders/beta.cpp rename to framegen/v3.1_src/shaders/beta.cpp index 96c49b5..34d8f69 100644 --- a/lsfg-vk-v3.1/src/shaders/beta.cpp +++ b/framegen/v3.1_src/shaders/beta.cpp @@ -1,4 +1,4 @@ -#include "shaders/beta.hpp" +#include "v3_1/shaders/beta.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1/src/shaders/delta.cpp b/framegen/v3.1_src/shaders/delta.cpp similarity index 99% rename from lsfg-vk-v3.1/src/shaders/delta.cpp rename to framegen/v3.1_src/shaders/delta.cpp index 1183e51..0928428 100644 --- a/lsfg-vk-v3.1/src/shaders/delta.cpp +++ b/framegen/v3.1_src/shaders/delta.cpp @@ -1,4 +1,4 @@ -#include "shaders/delta.hpp" +#include "v3_1/shaders/delta.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1/src/shaders/gamma.cpp b/framegen/v3.1_src/shaders/gamma.cpp similarity index 99% rename from lsfg-vk-v3.1/src/shaders/gamma.cpp rename to framegen/v3.1_src/shaders/gamma.cpp index baf0c0f..c4a64df 100644 --- a/lsfg-vk-v3.1/src/shaders/gamma.cpp +++ b/framegen/v3.1_src/shaders/gamma.cpp @@ -1,4 +1,4 @@ -#include "shaders/gamma.hpp" +#include "v3_1/shaders/gamma.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1/src/shaders/generate.cpp b/framegen/v3.1_src/shaders/generate.cpp similarity index 98% rename from lsfg-vk-v3.1/src/shaders/generate.cpp rename to framegen/v3.1_src/shaders/generate.cpp index 6d2569b..77aa441 100644 --- a/lsfg-vk-v3.1/src/shaders/generate.cpp +++ b/framegen/v3.1_src/shaders/generate.cpp @@ -1,4 +1,4 @@ -#include "shaders/generate.hpp" +#include "v3_1/shaders/generate.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1/src/shaders/mipmaps.cpp b/framegen/v3.1_src/shaders/mipmaps.cpp similarity index 98% rename from lsfg-vk-v3.1/src/shaders/mipmaps.cpp rename to framegen/v3.1_src/shaders/mipmaps.cpp index 0bc5065..f4d0f74 100644 --- a/lsfg-vk-v3.1/src/shaders/mipmaps.cpp +++ b/framegen/v3.1_src/shaders/mipmaps.cpp @@ -1,4 +1,4 @@ -#include "shaders/mipmaps.hpp" +#include "v3_1/shaders/mipmaps.hpp" #include "common/utils.hpp" #include "core/image.hpp" #include "core/commandbuffer.hpp" diff --git a/lsfg-vk-v3.1p/include/context.hpp b/framegen/v3.1p_include/v3_1p/context.hpp similarity index 100% rename from lsfg-vk-v3.1p/include/context.hpp rename to framegen/v3.1p_include/v3_1p/context.hpp diff --git a/lsfg-vk-v3.1p/include/shaders/alpha.hpp b/framegen/v3.1p_include/v3_1p/shaders/alpha.hpp similarity index 100% rename from lsfg-vk-v3.1p/include/shaders/alpha.hpp rename to framegen/v3.1p_include/v3_1p/shaders/alpha.hpp diff --git a/lsfg-vk-v3.1p/include/shaders/beta.hpp b/framegen/v3.1p_include/v3_1p/shaders/beta.hpp similarity index 100% rename from lsfg-vk-v3.1p/include/shaders/beta.hpp rename to framegen/v3.1p_include/v3_1p/shaders/beta.hpp diff --git a/lsfg-vk-v3.1p/include/shaders/delta.hpp b/framegen/v3.1p_include/v3_1p/shaders/delta.hpp similarity index 100% rename from lsfg-vk-v3.1p/include/shaders/delta.hpp rename to framegen/v3.1p_include/v3_1p/shaders/delta.hpp diff --git a/lsfg-vk-v3.1p/include/shaders/gamma.hpp b/framegen/v3.1p_include/v3_1p/shaders/gamma.hpp similarity index 100% rename from lsfg-vk-v3.1p/include/shaders/gamma.hpp rename to framegen/v3.1p_include/v3_1p/shaders/gamma.hpp diff --git a/lsfg-vk-v3.1p/include/shaders/generate.hpp b/framegen/v3.1p_include/v3_1p/shaders/generate.hpp similarity index 100% rename from lsfg-vk-v3.1p/include/shaders/generate.hpp rename to framegen/v3.1p_include/v3_1p/shaders/generate.hpp diff --git a/lsfg-vk-v3.1p/include/shaders/mipmaps.hpp b/framegen/v3.1p_include/v3_1p/shaders/mipmaps.hpp similarity index 100% rename from lsfg-vk-v3.1p/include/shaders/mipmaps.hpp rename to framegen/v3.1p_include/v3_1p/shaders/mipmaps.hpp diff --git a/lsfg-vk-v3.1p/src/context.cpp b/framegen/v3.1p_src/context.cpp similarity index 99% rename from lsfg-vk-v3.1p/src/context.cpp rename to framegen/v3.1p_src/context.cpp index 5a18353..00d07a3 100644 --- a/lsfg-vk-v3.1p/src/context.cpp +++ b/framegen/v3.1p_src/context.cpp @@ -1,4 +1,4 @@ -#include "context.hpp" +#include "v3_1p/context.hpp" #include "common/utils.hpp" #include "common/exception.hpp" diff --git a/lsfg-vk-v3.1p/src/lsfg.cpp b/framegen/v3.1p_src/lsfg.cpp similarity index 99% rename from lsfg-vk-v3.1p/src/lsfg.cpp rename to framegen/v3.1p_src/lsfg.cpp index 276385a..e0d1b69 100644 --- a/lsfg-vk-v3.1p/src/lsfg.cpp +++ b/framegen/v3.1p_src/lsfg.cpp @@ -1,5 +1,5 @@ #include "lsfg_3_1p.hpp" -#include "context.hpp" +#include "v3_1p/context.hpp" #include "core/commandpool.hpp" #include "core/descriptorpool.hpp" #include "core/instance.hpp" diff --git a/lsfg-vk-v3.1p/src/shaders/alpha.cpp b/framegen/v3.1p_src/shaders/alpha.cpp similarity index 99% rename from lsfg-vk-v3.1p/src/shaders/alpha.cpp rename to framegen/v3.1p_src/shaders/alpha.cpp index 2209adb..c2d4dcd 100644 --- a/lsfg-vk-v3.1p/src/shaders/alpha.cpp +++ b/framegen/v3.1p_src/shaders/alpha.cpp @@ -1,4 +1,4 @@ -#include "shaders/alpha.hpp" +#include "v3_1p/shaders/alpha.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1p/src/shaders/beta.cpp b/framegen/v3.1p_src/shaders/beta.cpp similarity index 99% rename from lsfg-vk-v3.1p/src/shaders/beta.cpp rename to framegen/v3.1p_src/shaders/beta.cpp index c82976a..76bb751 100644 --- a/lsfg-vk-v3.1p/src/shaders/beta.cpp +++ b/framegen/v3.1p_src/shaders/beta.cpp @@ -1,4 +1,4 @@ -#include "shaders/beta.hpp" +#include "v3_1p/shaders/beta.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1p/src/shaders/delta.cpp b/framegen/v3.1p_src/shaders/delta.cpp similarity index 99% rename from lsfg-vk-v3.1p/src/shaders/delta.cpp rename to framegen/v3.1p_src/shaders/delta.cpp index 4d222dc..987a8cc 100644 --- a/lsfg-vk-v3.1p/src/shaders/delta.cpp +++ b/framegen/v3.1p_src/shaders/delta.cpp @@ -1,4 +1,4 @@ -#include "shaders/delta.hpp" +#include "v3_1p/shaders/delta.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1p/src/shaders/gamma.cpp b/framegen/v3.1p_src/shaders/gamma.cpp similarity index 99% rename from lsfg-vk-v3.1p/src/shaders/gamma.cpp rename to framegen/v3.1p_src/shaders/gamma.cpp index 350f7a6..08f8eab 100644 --- a/lsfg-vk-v3.1p/src/shaders/gamma.cpp +++ b/framegen/v3.1p_src/shaders/gamma.cpp @@ -1,4 +1,4 @@ -#include "shaders/gamma.hpp" +#include "v3_1p/shaders/gamma.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1p/src/shaders/generate.cpp b/framegen/v3.1p_src/shaders/generate.cpp similarity index 98% rename from lsfg-vk-v3.1p/src/shaders/generate.cpp rename to framegen/v3.1p_src/shaders/generate.cpp index 5d3fe78..59447c8 100644 --- a/lsfg-vk-v3.1p/src/shaders/generate.cpp +++ b/framegen/v3.1p_src/shaders/generate.cpp @@ -1,4 +1,4 @@ -#include "shaders/generate.hpp" +#include "v3_1p/shaders/generate.hpp" #include "common/utils.hpp" #include "core/commandbuffer.hpp" #include "core/image.hpp" diff --git a/lsfg-vk-v3.1p/src/shaders/mipmaps.cpp b/framegen/v3.1p_src/shaders/mipmaps.cpp similarity index 98% rename from lsfg-vk-v3.1p/src/shaders/mipmaps.cpp rename to framegen/v3.1p_src/shaders/mipmaps.cpp index e47af8a..ebf9503 100644 --- a/lsfg-vk-v3.1p/src/shaders/mipmaps.cpp +++ b/framegen/v3.1p_src/shaders/mipmaps.cpp @@ -1,4 +1,4 @@ -#include "shaders/mipmaps.hpp" +#include "v3_1p/shaders/mipmaps.hpp" #include "common/utils.hpp" #include "core/image.hpp" #include "core/commandbuffer.hpp" diff --git a/lsfg-vk-v3.1/CMakeLists.txt b/lsfg-vk-v3.1/CMakeLists.txt deleted file mode 100644 index cbc4abc..0000000 --- a/lsfg-vk-v3.1/CMakeLists.txt +++ /dev/null @@ -1,60 +0,0 @@ -cmake_minimum_required(VERSION 3.28) - -# project -project(lsfg-vk-v3.1 - DESCRIPTION "Lossless Scaling Frame Generation v3.1" - LANGUAGES CXX) - -file(GLOB SOURCES - "src/core/*.cpp" - "src/pool/*.cpp" - "src/shaders/*.cpp" - "src/utils/*.cpp" - "src/*.cpp" -) - -add_library(lsfg-vk-v3.1 STATIC ${SOURCES}) - -# target -set_target_properties(lsfg-vk-v3.1 PROPERTIES - CXX_STANDARD 20 - CXX_STANDARD_REQUIRED ON) -target_include_directories(lsfg-vk-v3.1 - PRIVATE include - PUBLIC public) -target_link_libraries(lsfg-vk-v3.1 - PUBLIC lsfg-vk-common vulkan) - -if(CMAKE_BUILD_TYPE STREQUAL "Release") - set_target_properties(lsfg-vk-v3.1 PROPERTIES - INTERPROCEDURAL_OPTIMIZATION ON) -endif() - -# diagnostics -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set_target_properties(lsfg-vk-v3.1 PROPERTIES - EXPORT_COMPILE_COMMANDS ON) -endif() - -if(LSFGVK_EXCESS_DEBUG) - target_compile_options(lsfg-vk-v3.1 PRIVATE - -Weverything - # disable compat c++ flags - -Wno-pre-c++20-compat-pedantic - -Wno-pre-c++17-compat - -Wno-c++98-compat-pedantic - -Wno-c++98-compat - # disable other flags - -Wno-missing-designated-field-initializers - -Wno-shadow # allow shadowing - -Wno-switch-enum # ignore missing cases - -Wno-switch-default # ignore missing default - -Wno-padded # ignore automatic padding - -Wno-exit-time-destructors # allow globals - -Wno-global-constructors # allow globals - -Wno-cast-function-type-strict # for vulkan - ) - - set_target_properties(lsfg-vk-v3.1 PROPERTIES - CXX_CLANG_TIDY clang-tidy) -endif() diff --git a/lsfg-vk-v3.1/README.md b/lsfg-vk-v3.1/README.md deleted file mode 100644 index 238e37b..0000000 --- a/lsfg-vk-v3.1/README.md +++ /dev/null @@ -1,14 +0,0 @@ -## lsfg-vk-v3.1 -Version 3.1 of Lossless Scaling Frame Generation - -This is a subproject of lsfg-vk and contains the external Vulkan logic for generating frames. - -The project is intentionally structured as a fully external project, such that it can be integrated into other applications. - -### Interface - -Interfacing with lsfg-vk-v3.1 is done via `lsfg.hpp` header. The internal Vulkan instance is created using `LSFG_3_1::initialize()` and requires a specific deviceUUID, as well as parts of the lsfg-vk configuration, including a function loading SPIR-V shaders by name. Cleanup is done via `LSFG_3_1::finalize()` after which `LSFG_3_1::initialize()` may be called again. Please note that the initialization process is expensive and may take a while. It is recommended to call this function once during the applications lifetime. - -Once the format and extent of the requested images is determined, `LSFG_3_1::createContext()` should be called to initialize a frame generation context. The Vulkan images are created from backing memory, which is passed through the file descriptor arguments. A context can be destroyed using `LSFG_3_1::deleteContext()`. - -Presenting the context can be done via `LSFG_3_1::presentContext()`. Before calling the function a second time, make sure the outgoing semaphores have been signaled. diff --git a/lsfg-vk-v3.1p/.clang-tidy b/lsfg-vk-v3.1p/.clang-tidy deleted file mode 100644 index cf513e9..0000000 --- a/lsfg-vk-v3.1p/.clang-tidy +++ /dev/null @@ -1,26 +0,0 @@ -Checks: -# enable basic checks -- "clang-analyzer-*" -# configure performance checks -- "performance-*" -- "-performance-enum-size" -# configure readability and bugprone checks -- "readability-*" -- "bugprone-*" -- "misc-*" -- "-readability-braces-around-statements" -- "-readability-function-cognitive-complexity" -- "-readability-identifier-length" -- "-readability-implicit-bool-conversion" -- "-readability-magic-numbers" -- "-readability-math-missing-parentheses" -- "-bugprone-easily-swappable-parameters" -# configure modernization -- "modernize-*" -- "-modernize-use-trailing-return-type" -# configure cppcoreguidelines -- "cppcoreguidelines-*" -- "-cppcoreguidelines-avoid-magic-numbers" -- "-cppcoreguidelines-pro-type-reinterpret-cast" # allows reinterpret_cast -- "-cppcoreguidelines-avoid-non-const-global-variables" -- "-cppcoreguidelines-pro-type-union-access" diff --git a/lsfg-vk-v3.1p/.gitattributes b/lsfg-vk-v3.1p/.gitattributes deleted file mode 100644 index 8d476d4..0000000 --- a/lsfg-vk-v3.1p/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -*.cpp diff=cpp eol=lf -*.hpp diff=cpp eol=lf -*.md diff=markdown eol=lf diff --git a/lsfg-vk-v3.1p/.gitignore b/lsfg-vk-v3.1p/.gitignore deleted file mode 100644 index 43ab8ae..0000000 --- a/lsfg-vk-v3.1p/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -# cmake files -/build - -# ide/lsp files -/.zed -/.vscode -/.clangd -/.cache -/.ccls diff --git a/lsfg-vk-v3.1p/CMakeLists.txt b/lsfg-vk-v3.1p/CMakeLists.txt deleted file mode 100644 index 94fa4c8..0000000 --- a/lsfg-vk-v3.1p/CMakeLists.txt +++ /dev/null @@ -1,60 +0,0 @@ -cmake_minimum_required(VERSION 3.28) - -# project -project(lsfg-vk-v3.1p - DESCRIPTION "Lossless Scaling Frame Generation v3.1 (Performance Mode)" - LANGUAGES CXX) - -file(GLOB SOURCES - "src/core/*.cpp" - "src/pool/*.cpp" - "src/shaders/*.cpp" - "src/utils/*.cpp" - "src/*.cpp" -) - -add_library(lsfg-vk-v3.1p STATIC ${SOURCES}) - -# target -set_target_properties(lsfg-vk-v3.1p PROPERTIES - CXX_STANDARD 20 - CXX_STANDARD_REQUIRED ON) -target_include_directories(lsfg-vk-v3.1p - PRIVATE include - PUBLIC public) -target_link_libraries(lsfg-vk-v3.1p - PUBLIC lsfg-vk-common vulkan) - -if(CMAKE_BUILD_TYPE STREQUAL "Release") - set_target_properties(lsfg-vk-v3.1p PROPERTIES - INTERPROCEDURAL_OPTIMIZATION ON) -endif() - -# diagnostics -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set_target_properties(lsfg-vk-v3.1p PROPERTIES - EXPORT_COMPILE_COMMANDS ON) -endif() - -if(LSFGVK_EXCESS_DEBUG) - target_compile_options(lsfg-vk-v3.1p PRIVATE - -Weverything - # disable compat c++ flags - -Wno-pre-c++20-compat-pedantic - -Wno-pre-c++17-compat - -Wno-c++98-compat-pedantic - -Wno-c++98-compat - # disable other flags - -Wno-missing-designated-field-initializers - -Wno-shadow # allow shadowing - -Wno-switch-enum # ignore missing cases - -Wno-switch-default # ignore missing default - -Wno-padded # ignore automatic padding - -Wno-exit-time-destructors # allow globals - -Wno-global-constructors # allow globals - -Wno-cast-function-type-strict # for vulkan - ) - - set_target_properties(lsfg-vk-v3.1p PROPERTIES - CXX_CLANG_TIDY clang-tidy) -endif() diff --git a/lsfg-vk-v3.1p/LICENSE.md b/lsfg-vk-v3.1p/LICENSE.md deleted file mode 100644 index b5c8a3e..0000000 --- a/lsfg-vk-v3.1p/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -## MIT License - -Copyright (c) 2025 lsfg-vk - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/lsfg-vk-v3.1p/README.md b/lsfg-vk-v3.1p/README.md deleted file mode 100644 index f99ba40..0000000 --- a/lsfg-vk-v3.1p/README.md +++ /dev/null @@ -1,14 +0,0 @@ -## lsfg-vk-v3.1p -Version 3.1 (Performance Mode) of Lossless Scaling Frame Generation - -This is a subproject of lsfg-vk and contains the external Vulkan logic for generating frames. - -The project is intentionally structured as a fully external project, such that it can be integrated into other applications. - -### Interface - -Interfacing with lsfg-vk-v3.1p is done via `lsfg.hpp` header. The internal Vulkan instance is created using `LSFG_3_1P::initialize()` and requires a specific deviceUUID, as well as parts of the lsfg-vk configuration, including a function loading SPIR-V shaders by name. Cleanup is done via `LSFG_3_1P::finalize()` after which `LSFG_3_1P::initialize()` may be called again. Please note that the initialization process is expensive and may take a while. It is recommended to call this function once during the applications lifetime. - -Once the format and extent of the requested images is determined, `LSFG_3_1P::createContext()` should be called to initialize a frame generation context. The Vulkan images are created from backing memory, which is passed through the file descriptor arguments. A context can be destroyed using `LSFG_3_1P::deleteContext()`. - -Presenting the context can be done via `LSFG_3_1P::presentContext()`. Before calling the function a second time, make sure the outgoing semaphores have been signaled.