Skip to content

Commit

Permalink
v4.4.0:
Browse files Browse the repository at this point in the history
HIGHLIGHTS:

- NRD: improved API & robustness
- NRD: flexible DRS support (improved compatibility with engines using resource suballocation for DRS)
- NRD: IQ improvements
- NRD: added GLSL support for NRD.hlsli
- NRD: added "NRD_FrontEnd_SpecHitDistAveraging_X" functions, needed to properly average specular hit distance for correct specular tracking in case of many RPP

DETAILS:

- NRD: denoisers made less sensitive to NAN/INF values outside of denoising range and DRS rectangle
- NRD: added "NRD_FrontEnd_SpecHitDistAveraging_X" functions, needed to properly average specular hit distance for correct specular tracking in case of many RPP
- NRD: fixed regression: "motionVectorScale[] = 0 and isMotionVectorInWorldSpace = true" case was broken
- NRD: more flexible CTA definition
- NRD: improved performance by adjusting CTA sizes
- NRD: simplified constant data storage related code, ring buffer is not needed (2 Mb => 128 Kb)
- NRD: added GLSL support for NRD.hlsli
- NRD: refactored resource macros
- NRD: added "identifier" to "DispatchDesc" to distinguish which denoiser "ResourceType" is coming from
- NRD: greatly simplified C++ code by utilizing shared headers
- NRD: flexible DRS support
- NRD: minor DRS related fixes
- NRD: removed unused samplers
- NRD: clarified "gRectOffset" usage
- NRD: "gRectOffset" usage moved under NRD_USE_VIEWPORT_OFFSET macro (disabled by default)
- SIGMA: reduced bias, improved stability
- RELAX: greatly simplified C++ side code (181 Kb => 99 Kb)
- RELAX: fixed bugs preventing usage of non-square CTA sizes
- RELAX: minor fixes in HistoryFix pass
- RELAX: removed standalone "diffuse" and "specular" settings (was a shortened copy of "RelaxSettings")
- RELAX: reduced code entropy
- REBLUR / RELAX: out of bounds fixes
- REBLUR / RELAX: removed "historyFixStrideBetweenSamples"
- REBLUR / SIGMA: added snapping to pixel center in spatial passes
- REBLUR: replaced "table-flip" unicode emoji ¯\_(ツ)_/¯
- REBLUR: improved behavior on thin objects
- REBLUR: improved HistoryFix
- REBLUR: material IDs properly applied to all CatRom footprint (fixed outlining on material boundaries)
- REBLUR: fixed potential color bleeding caused by virtual motion disocclusion
- REBLUR: optional MV modification made stochastic based
- REBLUR: fixed suboptimal "vmb" reprojection behavior in disocclusions
- REFERENCE: renamed REFERENCE inputs
- NRD INTEGRATION: updated to reflect NRD API changes
- NRD INTEGRATION: NRI updated to v1.110
- Cmake: fixed unconditional use of CMAKE_MSVC_RUNTIME_LIBRARY
- updated docs and comments
- updated dependencies
- refactoring
  • Loading branch information
dzhdanNV committed Dec 27, 2023
1 parent 067755e commit a6d20d9
Show file tree
Hide file tree
Showing 376 changed files with 7,571 additions and 9,665 deletions.
20 changes: 10 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ set (CMAKE_CXX_STANDARD 17)
set (CMAKE_CXX_STANDARD_REQUIRED ON)
set (CMAKE_C_STANDARD 99)

if (MSVC)
if (MSVC AND NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif ()

Expand Down Expand Up @@ -103,14 +103,14 @@ endif ()

# External/MathLib
file (READ "External/MathLib/MathLib.h" ver_h)
string (REGEX MATCH "MATHLIB_VERSION_MAJOR ([0-9]*)" _ ${ver_h})
set (MATHLIB_VERSION_MAJOR ${CMAKE_MATCH_1})
string (REGEX MATCH "MATHLIB_VERSION_MINOR ([0-9]*)" _ ${ver_h})
set (MATHLIB_VERSION_MINOR ${CMAKE_MATCH_1})
message ("MathLib v${MATHLIB_VERSION_MAJOR}.${MATHLIB_VERSION_MINOR}")
string (REGEX MATCH "ML_VERSION_MAJOR ([0-9]*)" _ ${ver_h})
set (ML_VERSION_MAJOR ${CMAKE_MATCH_1})
string (REGEX MATCH "ML_VERSION_MINOR ([0-9]*)" _ ${ver_h})
set (ML_VERSION_MINOR ${CMAKE_MATCH_1})
message ("MathLib v${ML_VERSION_MAJOR}.${ML_VERSION_MINOR}")

file (GLOB MATHLIB_FILES "External/MathLib/*.h" "External/MathLib/*.hpp")
source_group ("MathLib" FILES ${MATHLIB_FILES})
file (GLOB ML_FILES "External/MathLib/*.h" "External/MathLib/*.hpp")
source_group ("MathLib" FILES ${ML_FILES})

# NRD
file (GLOB GLOB_INCUDE "Include/*")
Expand All @@ -123,9 +123,9 @@ file (GLOB GLOB_RESOURCES "Resources/*")
source_group ("Resources" FILES ${GLOB_RESOURCES})

if (NRD_STATIC_LIBRARY)
add_library (${PROJECT_NAME} STATIC ${GLOB_SOURCE} ${GLOB_DENOISERS} ${MATHLIB_FILES} ${GLOB_RESOURCES} ${GLOB_INCUDE})
add_library (${PROJECT_NAME} STATIC ${GLOB_SOURCE} ${GLOB_DENOISERS} ${ML_FILES} ${GLOB_RESOURCES} ${GLOB_INCUDE})
else ()
add_library (${PROJECT_NAME} SHARED ${GLOB_SOURCE} ${GLOB_DENOISERS} ${MATHLIB_FILES} ${GLOB_RESOURCES} ${GLOB_INCUDE})
add_library (${PROJECT_NAME} SHARED ${GLOB_SOURCE} ${GLOB_DENOISERS} ${ML_FILES} ${GLOB_RESOURCES} ${GLOB_INCUDE})

if (WIN32)
target_compile_definitions (${PROJECT_NAME} PRIVATE "NRD_API=extern \"C\" __declspec(dllexport)")
Expand Down
2 changes: 1 addition & 1 deletion External/MathLib
Submodule MathLib updated 9 files
+1 −1 External/sse2neon
+234 −234 IntrinEmu.h
+614 −486 MathLib.h
+467 −467 MathLib_d.h
+509 −509 MathLib_f.h
+0 −94 NdcConfig.h
+51 −51 Packed.h
+0 −155 Platform.h
+106 −54 STL.hlsli
2 changes: 1 addition & 1 deletion External/ShaderMake
6 changes: 3 additions & 3 deletions Include/NRD.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
#include <cstddef>

#define NRD_VERSION_MAJOR 4
#define NRD_VERSION_MINOR 3
#define NRD_VERSION_BUILD 6
#define NRD_VERSION_DATE "3 November 2023"
#define NRD_VERSION_MINOR 4
#define NRD_VERSION_BUILD 0
#define NRD_VERSION_DATE "15 November 2023"

#if defined(_MSC_VER)
#define NRD_CALL __fastcall
Expand Down

0 comments on commit a6d20d9

Please sign in to comment.