Skip to content

Commit 5c40afe

Browse files
committed
First commit
Many thanks to Path Tracing SDK team: Filip Strugar Andrew Allan Johannes Deligiannis Alexey Panteleev Paula Jukarainen Jarvis McGee Justin Kim Kate Anderson Jon Story Michael Songy Tion Thomas ...and everyone else who contributed and helped! Many thanks to countless engineers and research scientists that have contributed to the SDKs and technologies to make the Path Tracing SDK possible RTXDI ReSTIR ReGIR ReSTIR-GI RTXGI Neural Radiance Cache SER OMM NRD DLSS 3 Streamline Donut real-time rendering framework Falcor real-time rendering framework
0 parents  commit 5c40afe

File tree

1,727 files changed

+490377
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,727 files changed

+490377
-0
lines changed

.gitignore

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
bin/
2+
build*/
3+
.vs
4+
nvapi/
5+
nrd.cfg
6+
omm.cfg
7+
media/
8+
9+
# local project files for shader development outside of VS
10+
*.sublime-*
11+
compile-shaders.bat

.gitlab-ci.yml

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
variables:
2+
GIT_SUBMODULE_STRATEGY: recursive
3+
4+
stages:
5+
- build
6+
7+
build-debug-job:
8+
tags:
9+
- donut-abisko
10+
- windows
11+
12+
stage: build
13+
script:
14+
- mkdir build_debug
15+
- cd build_debug
16+
- cmake .. -DCMAKE_BUILD_TYPE=Debug
17+
- cmake --build . --target pt_sdk --config Debug
18+
- echo "Compile Debug complete."
19+
20+
build-release-job:
21+
tags:
22+
- donut-abisko
23+
- windows
24+
25+
stage: build
26+
script:
27+
- mkdir build_release
28+
- cd build_release
29+
- cmake .. -DCMAKE_BUILD_TYPE=Release
30+
- cmake --build . --target pt_sdk --config Release
31+
- echo "Compile Release complete."

.gitmodules

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[submodule "external/RayTracingDenoiser"]
2+
path = external/RayTracingDenoiser
3+
url = https://github.com/NVIDIAGameWorks/RayTracingDenoiser.git
4+
[submodule "external/Opacity-MicroMap-SDK"]
5+
path = external/Opacity-MicroMap-SDK
6+
url = https://github.com/NVIDIAGameWorks/Opacity-MicroMap-SDK.git
7+
[submodule "donut/nvrhi"]
8+
path = donut/nvrhi
9+
url = https://github.com/NVIDIAGameWorks/nvrhi.git
10+
[submodule "external/RTXDI"]
11+
path = external/RTXDI
12+
url = https://github.com/NVIDIAGameWorks/RTXDI.git
13+
branch = sdk-only

CLA.txt

+149
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
Contribution License Agreement
2+
3+
This Contribution License Agreement ("Agreement") is agreed to by the party
4+
signing below ("You"), and conveys certain license rights to NVIDIA Corporation
5+
and its affiliates ("NVIDIA") for Your contributions to NVIDIA open source
6+
projects. This Agreement is effective as of the latest signature date below.
7+
8+
1. Definitions.
9+
10+
"Code" means the computer software code, whether in human-readable or
11+
machine-executable form, that is delivered by You to NVIDIA under this
12+
Agreement.
13+
14+
"Project" means any of the projects owned or managed by NVIDIA in which
15+
software is offered under a license approved by the Open Source Initiative
16+
(OSI) (www.opensource.org) and documentation offered under an OSI or a
17+
Creative Commons license (https://creativecommons.org/licenses).
18+
19+
"Submit" is the act of uploading, submitting, transmitting, or distributing
20+
code or other content to any Project, including but not limited to
21+
communication on electronic mailing lists, source code control systems,
22+
and issue tracking systems that are managed by, or on behalf of, the
23+
Project for the purpose of discussing and improving that Project, but
24+
excluding communication that is conspicuously marked or otherwise
25+
designated in writing by You as "Not a Submission."
26+
27+
"Submission" means the Code and any other copyrightable material Submitted
28+
by You, including any associated comments and documentation.
29+
30+
2. Your Submission. You must agree to the terms of this Agreement before
31+
making a Submission to any Project. This Agreement covers any and all
32+
Submissions that You, now or in the future (except as described in Section
33+
4 below), Submit to any Project.
34+
35+
3. Originality of Work. You represent that each of Your Submissions is
36+
entirely Your original work. Should You wish to Submit materials that are
37+
not Your original work, You may Submit them separately to the Project if
38+
You (a) retain all copyright and license information that was in the
39+
materials as You received them, (b) in the description accompanying Your
40+
Submission, include the phrase "Submission containing materials of a
41+
third party:" followed by the names of the third party and any licenses
42+
or other restrictions of which You are aware, and (c) follow any other
43+
instructions in the Project’s written guidelines concerning Submissions.
44+
45+
4. Your Employer. References to "employer" in this Agreement include Your
46+
employer or anyone else for whom You are acting in making Your Submission,
47+
e.g. as a contractor, vendor, or agent. If Your Submission is made in the
48+
course of Your work for an employer or Your employer has intellectual
49+
property rights in Your Submission by contract or applicable law, You must
50+
secure permission from Your employer to make the Submission before signing
51+
this Agreement. In that case, the term "You" in this Agreement will refer
52+
to You and the employer collectively. If You change employers in the
53+
future and desire to Submit additional Submissions for the new employer,
54+
then You agree to sign a new Agreement and secure permission from the
55+
new employer before Submitting those Submissions.
56+
57+
5. Licenses.
58+
59+
a. Copyright License. You grant NVIDIA, and those who receive the Submission
60+
directly or indirectly from NVIDIA, a perpetual, worldwide, non-exclusive,
61+
royalty-free, irrevocable license in the Submission to reproduce, prepare
62+
derivative works of, publicly display, publicly perform, and distribute the
63+
Submission and such derivative works, and to sublicense any or all of the
64+
foregoing rights to third parties.
65+
66+
b. Patent License. You grant NVIDIA, and those who receive the Submission
67+
directly or indirectly from NVIDIA, a perpetual, worldwide, non-exclusive,
68+
royalty-free, irrevocable license under Your patent claims that are
69+
necessarily infringed by the Submission or the combination of the Submission
70+
with the Project to which it was Submitted to make, have made, use, offer to
71+
sell, sell and import or otherwise dispose of the Submission alone or with
72+
the Project.
73+
74+
c. Other Rights Reserved. Each party reserves all rights not expressly
75+
granted in this Agreement. No additional licenses or rights whatsoever
76+
(including, without limitation, any implied licenses) are granted by
77+
implication, exhaustion, estoppel or otherwise.
78+
79+
6. Representations and Warranties. You represent that You are legally
80+
entitled to grant the above licenses. You represent that each of Your
81+
Submissions is entirely Your original work (except as You may have
82+
disclosed under Section 3). You represent that You have secured permission
83+
from Your employer to make the Submission in cases where Your Submission
84+
is made in the course of Your work for Your employer or Your employer has
85+
intellectual property rights in Your Submission by contract or applicable
86+
law. If You are signing this Agreement on behalf of Your employer, You
87+
represent and warrant that You have the necessary authority to bind the
88+
listed employer to the obligations contained in this Agreement. You are
89+
not expected to provide support for Your Submission, unless You choose to
90+
do so. UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND
91+
EXCEPT FOR THE WARRANTIES EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE
92+
SUBMISSION PROVIDED UNDER THIS AGREEMENT IS PROVIDED WITHOUT WARRANTY OF
93+
ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF NONINFRINGEMENT,
94+
MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
95+
96+
7. Notice to NVIDIA. You agree to notify NVIDIA in writing of any facts
97+
or circumstances of which You later become aware that would make Your
98+
representations in this Agreement inaccurate in any respect.
99+
100+
8. Information about Submissions. You agree that contributions to Projects
101+
and information about contributions may be maintained indefinitely and
102+
disclosed publicly, including Your name and other information that You
103+
submit with Your Submission.
104+
105+
9. Governing Law/Jurisdiction. Claims arising under this Agreement shall
106+
be governed by the laws of Delaware, excluding its principles of conflict
107+
of laws and the United Nations Convention on Contracts for the Sale of
108+
Goods. The state and/or federal courts residing in Santa Clara County,
109+
California shall have exclusive jurisdiction over any dispute or claim
110+
arising out of this Agreement. You may not export the Software in
111+
violation of applicable export laws and regulations.
112+
113+
10. Entire Agreement/Assignment. This Agreement is the entire agreement
114+
between the parties, and supersedes any and all prior agreements,
115+
understandings or communications, written or oral, between the parties
116+
relating to the subject matter hereof. This Agreement may be assigned by
117+
NVIDIA.
118+
119+
120+
121+
Please select one of the options below and sign as indicated. By signing,
122+
You accept and agree to the terms of this Contribution License Agreement
123+
for Your present and future Submissions to NVIDIA.
124+
125+
___ I have sole ownership of intellectual property rights to my Submissions
126+
and I am not making Submissions in the course of work for my employer.
127+
128+
Name ("You"): _________________________________________
129+
Signature: _________________________________________
130+
Date: _________________________________________
131+
GitHub Login: _________________________________________
132+
Email: _________________________________________
133+
Address: _________________________________________
134+
135+
136+
___ I am making Submissions in the course of work for my employer (or my
137+
employer has intellectual property rights in my Submissions by contract or
138+
applicable law). I have permission from my employer to make Submissions and
139+
enter into this Agreement on behalf of my employer. By signing below, the
140+
defined term "You" includes me and my employer.
141+
142+
Company Name: _________________________________________
143+
Signature: _________________________________________
144+
By: _________________________________________
145+
Title: _________________________________________
146+
Date: _________________________________________
147+
GitHub Login: _________________________________________
148+
Email: _________________________________________
149+
Address: _________________________________________

CMakeLists.txt

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#
2+
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
3+
#
4+
# NVIDIA CORPORATION and its licensors retain all intellectual property
5+
# and proprietary rights in and to this software, related documentation
6+
# and any modifications thereto. Any use, reproduction, disclosure or
7+
# distribution of this software and related documentation without an express
8+
# license agreement from NVIDIA CORPORATION is strictly prohibited.
9+
10+
cmake_minimum_required(VERSION 3.10)
11+
12+
project(PathTracingSDK)
13+
14+
set(CMAKE_CXX_STANDARD 20)
15+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
16+
set(CMAKE_CXX_EXTENSIONS ON)
17+
18+
option(STREAMLINE_INTEGRATION "Enable Streamline integration (Required for DLSS3.0 and etc.)" FALSE)
19+
20+
option(NVRHI_WITH_NVAPI "Include NVAPI support (requires NVAPI SDK)" ON)
21+
set(NVAPI_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/external/nvapi/" CACHE STRING "Path to NVAPI include headers/shaders" )
22+
set(NVAPI_LIBRARY "${CMAKE_SOURCE_DIR}/external/nvapi/amd64/nvapi64.lib" CACHE STRING "Path to NVAPI .lib file")
23+
24+
if (MSVC)
25+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /D_ITERATOR_DEBUG_LEVEL=1")
26+
endif()
27+
28+
set(DXC_DXIL_EXECUTABLE "${CMAKE_SOURCE_DIR}/external/dxc/bin/x64/dxc.exe" CACHE STRING "DXC shader compiler path")
29+
30+
# option(USE_RAY_TRACING_DENOISER "Include NRD as part of the sample." ON)
31+
option(DONUT_WITH_ASSIMP "" OFF)
32+
33+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
34+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
35+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
36+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
37+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
38+
set(DONUT_SHADERS_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/shaders/framework")
39+
40+
add_subdirectory(donut)
41+
42+
if (NVRHI_WITH_VULKAN OR NVRHI_WITH_DX12)
43+
add_subdirectory(pt_sdk)
44+
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT pt_sdk)
45+
endif()
46+
47+
add_subdirectory("external")

0 commit comments

Comments
 (0)