@@ -4,9 +4,50 @@ include(../../BuildTools/CMake/BuildUtils.cmake)
44
55project (Diligent-SuperResolution CXX )
66
7+ set (DILIGENT_DLSS_SUPPORTED FALSE CACHE INTERNAL "DLSS is not supported" )
8+ set (DILIGENT_DSR_SUPPORTED FALSE CACHE INTERNAL "DirectSR is not supported" )
9+
10+ if (PLATFORM_WIN32)
11+ set (DILIGENT_DLSS_SUPPORTED TRUE CACHE INTERNAL "DLSS is supported on Win32 platform" )
12+ set (DILIGENT_DSR_SUPPORTED TRUE CACHE INTERNAL "DirectSR is supported on Win32 platform" )
13+ endif ()
14+
15+ if (${DILIGENT_NO_DLSS} )
16+ set (DILIGENT_DLSS_SUPPORTED FALSE CACHE INTERNAL "DLSS is forcibly disabled" )
17+ endif ()
18+ if (${DILIGENT_NO_DSR} )
19+ set (DILIGENT_DSR_SUPPORTED FALSE CACHE INTERNAL "DirectSR is forcibly disabled" )
20+ endif ()
21+
22+ if (DILIGENT_DSR_SUPPORTED)
23+ # Fetch DirectSR headers
24+ FetchContent_DeclareShallowGit (DirectSR-Headers
25+ GIT_REPOSITORY https://github.com/MikhailGorobets/DirectSR-Headers.git
26+ GIT_TAG master
27+ )
28+ FetchContent_MakeAvailable (DirectSR-Headers)
29+ if (TARGET DirectSR-AgilitySDK)
30+ set_target_properties (DirectSR-AgilitySDK PROPERTIES FOLDER DiligentCore/ThirdParty )
31+ endif ()
32+ endif ()
33+
34+ if (DILIGENT_DLSS_SUPPORTED)
35+ # Fetch NVIDIA DLSS SDK headers
36+ FetchContent_DeclareShallowGit (DLSS-Headers
37+ GIT_REPOSITORY https://github.com/NVIDIA/DLSS.git
38+ GIT_TAG main
39+ )
40+ FetchContent_MakeAvailable (DLSS-Headers)
41+ endif ()
42+
743set (INCLUDE
844 include/SuperResolutionBase.hpp
945 include/SuperResolutionFactoryBase.hpp
46+ include/SuperResolutionVariants.hpp
47+ include/DLSSProviderD3D12.hpp
48+ include/DLSSProviderD3D11.hpp
49+ include/DLSSProviderVk.hpp
50+ include/DSRProviderD3D12.hpp
1051)
1152
1253set (INTERFACE
@@ -16,15 +57,22 @@ set(INTERFACE
1657)
1758
1859set (SOURCE
60+ src/SuperResolutionBase.cpp
1961 src/SuperResolutionFactoryBase.cpp
62+ src/SuperResolutionFactory.cpp
63+ src/SuperResolutionFactoryD3D12.cpp
64+ src/SuperResolutionFactoryD3D11.cpp
65+ src/SuperResolutionFactoryVk.cpp
66+ src/SuperResolutionFactoryMtl.cpp
67+ src/DLSSProviderD3D12.cpp
68+ src/DLSSProviderD3D11.cpp
69+ src/DLSSProviderVk.cpp
70+ src/DSRProviderD3D12.cpp
2071)
2172
22- if (D3D12_SUPPORTED)
23- list (APPEND
24- SOURCE
25- src/SuperResolutionD3D12.cpp
26- src/SuperResolutionFactoryD3D12.cpp
27- )
73+ if (DILIGENT_DLSS_SUPPORTED)
74+ list (APPEND INCLUDE include /SuperResolutionDLSS.hpp)
75+ list (APPEND SOURCE src/SuperResolutionDLSS.cpp)
2876endif ()
2977
3078set (DLL_SOURCE
@@ -57,6 +105,14 @@ PRIVATE
57105 ../GraphicsEngineNextGenBase/include
58106)
59107
108+ if (DILIGENT_DLSS_SUPPORTED)
109+ target_compile_definitions (Diligent-SuperResolution-static PRIVATE DILIGENT_DLSS_SUPPORTED=1 )
110+ endif ()
111+
112+ if (DILIGENT_DSR_SUPPORTED)
113+ target_compile_definitions (Diligent-SuperResolution-static PRIVATE DILIGENT_DSR_SUPPORTED=1 )
114+ endif ()
115+
60116target_compile_definitions (Diligent-SuperResolution-shared PUBLIC DILIGENT_SUPER_RESOLUTION_SHARED=1 )
61117
62118target_link_libraries (Diligent-SuperResolution-static
@@ -69,11 +125,35 @@ PRIVATE
69125 Diligent-ShaderTools
70126)
71127
72- if (D3D12_SUPPORTED )
73- target_link_libraries (Diligent-SuperResolution-static PRIVATE Diligent-GraphicsEngineD3D12-static )
128+ if (DILIGENT_DSR_SUPPORTED )
129+ target_link_libraries (Diligent-SuperResolution-static PRIVATE Diligent-GraphicsEngineD3D12-static DirectSR-Headers )
74130 target_include_directories (Diligent-SuperResolution-static PRIVATE ../GraphicsEngineD3D12/include )
75131endif ()
76132
133+ if (DILIGENT_DLSS_SUPPORTED)
134+ set (DLSS_SDK_DIR ${FETCHCONTENT_BASE_DIR} /dlss-headers-src)
135+ target_include_directories (Diligent-SuperResolution-static PRIVATE ${DLSS_SDK_DIR} /include )
136+
137+ # Link NGX static library (dynamic CRT /MD variant)
138+ target_link_libraries (Diligent-SuperResolution-static PRIVATE
139+ debug ${DLSS_SDK_DIR} /lib/Windows_x86_64/x64/nvsdk_ngx_d_dbg.lib
140+ optimized ${DLSS_SDK_DIR} /lib/Windows_x86_64/x64/nvsdk_ngx_d.lib
141+ )
142+
143+ if (D3D12_SUPPORTED)
144+ target_link_libraries (Diligent-SuperResolution-static PRIVATE Diligent-GraphicsEngineD3D12-static )
145+ target_include_directories (Diligent-SuperResolution-static PRIVATE ../GraphicsEngineD3D12/include )
146+ endif ()
147+ if (D3D11_SUPPORTED)
148+ target_link_libraries (Diligent-SuperResolution-static PRIVATE Diligent-GraphicsEngineD3D11-static )
149+ target_include_directories (Diligent-SuperResolution-static PRIVATE ../GraphicsEngineD3D11/include )
150+ endif ()
151+ if (VULKAN_SUPPORTED)
152+ target_link_libraries (Diligent-SuperResolution-static PRIVATE Diligent-GraphicsEngineVk-static Vulkan::Headers )
153+ target_include_directories (Diligent-SuperResolution-static PRIVATE ../GraphicsEngineVulkan/include )
154+ endif ()
155+ endif ()
156+
77157target_link_libraries (Diligent-SuperResolution-shared
78158PUBLIC
79159 Diligent-SuperResolutionInterface
0 commit comments