Skip to content

Commit 914b915

Browse files
committed
AMD Capsaicin Framework v1.3
1 parent 5a3bf2a commit 914b915

File tree

214 files changed

+9244
-5211
lines changed

Some content is hidden

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

214 files changed

+9244
-5211
lines changed

.clang-format

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,33 @@ AlignConsecutiveAssignments: Consecutive
88
AlignConsecutiveBitFields: Consecutive
99
AlignConsecutiveDeclarations: Consecutive
1010
AlignConsecutiveMacros: Consecutive
11-
#AlignConsecutiveShortCaseStatements: true
11+
AlignConsecutiveShortCaseStatements:
12+
Enabled: true
13+
AcrossEmptyLines: false
14+
AcrossComments: false
15+
AlignCaseColons: false
1216
AlignEscapedNewlines: Left
1317
AlignOperands: AlignAfterOperator
1418
AlignTrailingComments: true
1519
AllowAllArgumentsOnNextLine: true
1620
AllowAllConstructorInitializersOnNextLine: true
1721
AllowAllParametersOfDeclarationOnNextLine: true
18-
#AllowBreakBeforeNoexceptSpecifier: Never
22+
AllowBreakBeforeNoexceptSpecifier: Never
1923
AllowShortBlocksOnASingleLine: Empty
24+
#AllowShortCaseExpressionOnASingleLine : true
2025
AllowShortCaseLabelsOnASingleLine: true
21-
#AllowShortCompoundRequirementOnASingleLine: true
26+
AllowShortCompoundRequirementOnASingleLine: true
2227
AllowShortFunctionsOnASingleLine: Inline
2328
AllowShortIfStatementsOnASingleLine: WithoutElse
2429
AllowShortLambdasOnASingleLine: Inline
2530
AllowShortLoopsOnASingleLine: false
31+
#AllowShortNamespacesOnASingleLine : false;
2632
AlwaysBreakAfterDefinitionReturnType: None
2733
AlwaysBreakAfterReturnType: None
2834
AlwaysBreakBeforeMultilineStrings: false
2935
AlwaysBreakTemplateDeclarations: Yes
3036
BinPackArguments: true
37+
#BinPackLongBracedList : true
3138
BinPackParameters: true
3239
BitFieldColonSpacing: Both
3340
BraceWrapping:
@@ -48,14 +55,16 @@ BraceWrapping:
4855
SplitEmptyFunction: false
4956
SplitEmptyRecord: false
5057
SplitEmptyNamespace: false
51-
#BreakAdjacentStringLiterals: true
58+
BreakAdjacentStringLiterals: true
5259
BreakAfterAttributes: Never
53-
#BreakAfterReturnType: Automatic
60+
#BreakAfterReturnType: ExceptShortType
5461
BreakBeforeBinaryOperators: NonAssignment
5562
BreakBeforeBraces: Custom
5663
BreakBeforeConceptDeclarations: true
64+
#BreakBeforeTemplateCloser: false
5765
BreakBeforeTernaryOperators: true
5866
BreakConstructorInitializers: BeforeComma
67+
#BreakFunctionDefinitionParameters: false
5968
BreakInheritanceList: BeforeComma
6069
BreakStringLiterals: false
6170
#BreakTemplateDeclarations: Yes
@@ -81,6 +90,7 @@ IncludeIsMainSourceRegex: '(.inl)$'
8190
IndentAccessModifiers: false
8291
IndentCaseBlocks: false
8392
IndentCaseLabels: false
93+
#IndentExportBlock: true
8494
IndentExternBlock: NoIndent
8595
IndentGotoLabels: false
8696
IndentPPDirectives: AfterHash
@@ -89,8 +99,16 @@ IndentWidth: 4
8999
IndentWrappedFunctionNames: false
90100
InsertBraces: true
91101
InsertNewlineAtEOF: true
102+
IntegerLiteralSeparator:
103+
Binary: -1
104+
Decimal: -1
105+
Hex: -1
92106
KeepEmptyLinesAtEOF: true
93107
KeepEmptyLinesAtTheStartOfBlocks: false
108+
#KeepEmptyLines:
109+
# AtEndOfFile: true
110+
# AtStartOfBlock: false
111+
# AtStartOfFile: false
94112
LambdaBodyIndentation: Signature
95113
LineEnding: LF
96114
#MainIncludeChar: Quote
@@ -103,13 +121,14 @@ QualifierAlignment: Custom
103121
QualifierOrder: ['inline', 'static', 'constexpr', 'volatile', 'type', 'restrict', 'const' ]
104122
ReferenceAlignment: Pointer
105123
ReflowComments: true
124+
#RemoveEmptyLinesInUnwrappedLines: true
106125
RemoveParentheses: Leave
107126
RemoveSemicolon: true
108127
RequiresClausePosition: OwnLine
109128
RequiresExpressionIndentation: OuterScope
110129
SeparateDefinitionBlocks: Always
111130
ShortNamespaceLines: 0
112-
#SkipMacroDefinitionBody: false
131+
SkipMacroDefinitionBody: false
113132
SortIncludes: true
114133
SortUsingDeclarations: true
115134
SpaceAfterCStyleCast: false
@@ -138,7 +157,7 @@ SpacesInParens: Never
138157
SpacesInParentheses: false
139158
SpacesInSquareBrackets: false
140159
TabWidth: 4
141-
UseCRLF: false
142160
UseTab: Never
161+
#WrapNamespaceBodyWithEmptyLines: Never
143162
...
144163

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,8 @@ imgui.ini
55
.vs
66
out/
77
cache/
8+
.cache/
89
shader_cache/
10+
shader_pdb/
11+
dump/
12+
compile_commands.json

CMakeLists.txt

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
cmake_minimum_required(VERSION 3.25.0)
1+
cmake_minimum_required(VERSION 3.30)
22
cmake_policy(SET CMP0141 NEW)
3+
cmake_policy(SET CMP0168 NEW)
34

45
project(Capsaicin
56
LANGUAGES CXX
@@ -9,6 +10,14 @@ project(Capsaicin
910

1011
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
1112

13+
# Check if submodules have been initialized
14+
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/gfx/CMakeLists.txt)
15+
find_package(Git REQUIRED)
16+
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
17+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
18+
)
19+
endif()
20+
1221
# Disable unused parameters from 3rd party directories
1322
set(GFX_BUILD_EXAMPLES OFF CACHE BOOL "")
1423
set(BUILD_TESTING OFF CACHE BOOL "")
@@ -26,11 +35,11 @@ set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "" FORCE)
2635
FetchContent_Declare(
2736
CLI11
2837
GIT_REPOSITORY https://github.com/CLIUtils/CLI11.git
29-
GIT_TAG v2.4.2
38+
GIT_TAG v2.5.0
3039
GIT_SHALLOW TRUE
3140
GIT_PROGRESS TRUE
32-
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/cli11/"
33-
FIND_PACKAGE_ARGS 2.0.0 NAMES CLI11
41+
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/cli11"
42+
FIND_PACKAGE_ARGS NAMES CLI11
3443
)
3544
FetchContent_MakeAvailable(CLI11)
3645
if(NOT CLI11_FOUND)
@@ -40,11 +49,11 @@ endif()
4049
FetchContent_Declare(
4150
yaml-cpp
4251
GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git
43-
GIT_TAG 0.8.0
44-
GIT_SHALLOW TRUE
52+
GIT_TAG 2f86d13775d119edbb69af52e5f566fd65c6953b
53+
GIT_SHALLOW FALSE
4554
GIT_PROGRESS TRUE
46-
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/yaml-cpp/"
47-
FIND_PACKAGE_ARGS 0.7.0 NAMES yaml-cpp
55+
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/yaml-cpp"
56+
FIND_PACKAGE_ARGS NAMES yaml-cpp
4857
)
4958
set(YAML_CPP_BUILD_TOOLS OFF CACHE BOOL "")
5059
FetchContent_MakeAvailable(yaml-cpp)
@@ -55,10 +64,10 @@ endif()
5564
FetchContent_Declare(
5665
nlohmann_json
5766
GIT_REPOSITORY https://github.com/nlohmann/json.git
58-
GIT_TAG v3.11.3
67+
GIT_TAG v3.12.0
5968
GIT_SHALLOW TRUE
6069
GIT_PROGRESS TRUE
61-
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/nlohmann_json/"
70+
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/nlohmann_json"
6271
FIND_PACKAGE_ARGS NAMES nlohmann_json
6372
)
6473
FetchContent_MakeAvailable(nlohmann_json)
@@ -69,10 +78,10 @@ endif()
6978
FetchContent_Declare(
7079
meshoptimizer
7180
GIT_REPOSITORY https://github.com/zeux/meshoptimizer.git
72-
GIT_TAG v0.22
81+
GIT_TAG v0.24
7382
GIT_SHALLOW TRUE
7483
GIT_PROGRESS TRUE
75-
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/meshoptimizer/"
84+
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/meshoptimizer"
7685
FIND_PACKAGE_ARGS NAMES meshoptimizer
7786
)
7887
FetchContent_MakeAvailable(meshoptimizer)
@@ -81,6 +90,36 @@ if(NOT meshoptimizer_FOUND)
8190
add_library(meshoptimizer::meshoptimizer ALIAS meshoptimizer)
8291
endif()
8392

93+
set(CAPSAICIN_FFX_SDK_PATH "${CMAKE_CURRENT_SOURCE_DIR}/third_party/FidelityFX-SDK")
94+
FetchContent_Declare(
95+
FidelityFXSDK
96+
GIT_REPOSITORY https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK.git
97+
GIT_TAG v2.0.0
98+
GIT_SHALLOW TRUE
99+
GIT_PROGRESS TRUE
100+
SOURCE_DIR "${CAPSAICIN_FFX_SDK_PATH}"
101+
)
102+
FetchContent_MakeAvailable(FidelityFXSDK)
103+
104+
add_library(ffx_fsr SHARED IMPORTED)
105+
set_target_properties(ffx_fsr PROPERTIES
106+
IMPORTED_LOCATION "${CAPSAICIN_FFX_SDK_PATH}/Kits/FidelityFX/signedbin/amd_fidelityfx_upscaler_dx12.dll"
107+
IMPORTED_IMPLIB "${CAPSAICIN_FFX_SDK_PATH}/Kits/FidelityFX/signedbin/amd_fidelityfx_loader_dx12.lib"
108+
INTERFACE_INCLUDE_DIRECTORIES "${CAPSAICIN_FFX_SDK_PATH}/Kits/FidelityFX/upscalers/include"
109+
)
110+
add_library(ffx_fg SHARED IMPORTED)
111+
set_target_properties(ffx_fg PROPERTIES
112+
IMPORTED_LOCATION "${CAPSAICIN_FFX_SDK_PATH}/Kits/FidelityFX/signedbin/amd_fidelityfx_framegeneration_dx12.dll"
113+
IMPORTED_IMPLIB "${CAPSAICIN_FFX_SDK_PATH}/Kits/FidelityFX/signedbin/amd_fidelityfx_loader_dx12.lib"
114+
)
115+
add_library(ffx_loader SHARED IMPORTED)
116+
set_target_properties(ffx_loader PROPERTIES
117+
IMPORTED_LOCATION "${CAPSAICIN_FFX_SDK_PATH}/Kits/FidelityFX/signedbin/amd_fidelityfx_loader_dx12.dll"
118+
IMPORTED_IMPLIB "${CAPSAICIN_FFX_SDK_PATH}/Kits/FidelityFX/signedbin/amd_fidelityfx_loader_dx12.lib"
119+
INTERFACE_INCLUDE_DIRECTORIES "${CAPSAICIN_FFX_SDK_PATH}/Kits/FidelityFX/api/include"
120+
)
121+
target_link_libraries(ffx_loader INTERFACE ffx_fsr ffx_fg)
122+
84123
option(CAPSAICIN_DOWNLOAD_TEST_MEDIA "Download test media scenes" ON)
85124
if(CAPSAICIN_DOWNLOAD_TEST_MEDIA)
86125
FetchContent_Declare(
@@ -89,7 +128,7 @@ if(CAPSAICIN_DOWNLOAD_TEST_MEDIA)
89128
GIT_TAG v1.2
90129
GIT_SHALLOW TRUE
91130
GIT_PROGRESS TRUE
92-
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/assets/CapsaicinTestMedia/"
131+
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/assets/CapsaicinTestMedia"
93132
)
94133
FetchContent_MakeAvailable(CapsaicinTestMedia)
95134
endif()

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,39 +15,38 @@ Features:
1515

1616
![Capsaicin](docs/images/scene_viewer.png)
1717

18-
## GI-1.1
18+
## GI-1.2
1919

20-
We used Capsaicin to implement our GI-1.1 technique for estimating diffuse and specular indirect illumination in real-time.
20+
We used Capsaicin to implement our GI-1.2 technique for estimating diffuse and specular indirect illumination in real-time.
2121

2222
The technique uses two levels of radiance caching to allow for reduced sampling rate in order to improve performance while making the most of every ray through better sampling.
2323

2424
Please refer to our [GI-1.0 technical report](https://gpuopen.com/download/publications/GPUOpen2022_GI1_0.pdf) and [GI-1.1 paper](https://gpuopen.com/download/publications/SA2023_RealTimeReflection.pdf) for more technical details.
2525

2626
#### Note on light support
2727

28-
GI-1.1 is primarily an indirect lighting solution and as such is expected to be combined with an existing direct lighting technique for integration into a rendering pipeline.
28+
GI-1.2 is primarily an indirect lighting solution and as such is expected to be combined with an existing direct lighting technique for integration into a rendering pipeline.
2929

3030
All common light types are supported when evaluating the indirect lighting component (e.g., point lights, spot lights, etc.) using our grid-based light sampler and (optional) reservoir-based resampling.
3131

3232
Furthermore the technique can estimate direct lighting through its probe system for a subset of lights; namely emissive meshes and skylights.
3333

3434
## Prerequisites
3535

36-
- Direct3D12 capable hardware and OS (Windows 10 20H2 or newer)
37-
- [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/) or newer
38-
- CMake 3.24 or newer (can use Visual Studio, VSCode or any other CMake supported IDE)
39-
- DirectX Raytracing capable GPU and compatible drivers
36+
- Direct3D12 Ultimate capable hardware and OS (Windows 10 20H2 or newer)
37+
- [Windows 10 SDK 2004](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/) or newer
38+
- CMake 3.30 or newer (can use Visual Studio, VSCode or any other CMake supported IDE)
4039

4140
## Building
4241

4342
Capsaicin uses submodules to include any essential dependencies.
4443

4544
The following submodules are required:
46-
- gfx: Contains gfx D3D12 abstraction library (located in "third_party/" subfolder
45+
- gfx: Contains gfx D3D12 abstraction library (located in "third_party/gfx" subfolder
4746

4847
When acquiring the code make sure to clone the repo with submodules included:
4948

50-
`git clone --recurse-submodules https://github.com/Radeon-Pro/Capsaicin`
49+
`git clone --recurse-submodules https://github.com/GPUOpen-LibrariesAndSDKs/Capsaicin.git`
5150

5251
If you have already cloned this repo without submodules, then use:
5352

@@ -74,7 +73,7 @@ If Capsaicin is used in any published work, ensure to cite it using:
7473
title = {The {AMD Capsaicin Framework}},
7574
year = {2023},
7675
month = {8},
77-
url = {https://github.com/Radeon-Pro/Capsaicin_Open},
76+
url = {https://github.com/GPUOpen-LibrariesAndSDKs/Capsaicin},
7877
}
7978
```
8079

docs/development/getting_started.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
When acquiring the code make sure to clone the repo with submodules included:
88

9-
`git clone --recurse-submodules https://github.com/Radeon-Pro/Capsaicin`
9+
`git clone --recurse-submodules https://github.com/GPUOpen-LibrariesAndSDKs/Capsaicin`
1010

1111
If you have already cloned this repo without submodules, then use:
1212

@@ -36,9 +36,7 @@ The used third party dependencies and there expected names are:
3636
- CLI11: CLI11 is a command line parser for C++11 and beyond
3737
- yaml-cpp: yaml-cpp is a YAML parser and emitter in C++
3838
- nlohmann-json: JSON for Modern C++
39-
- onnxruntime-gpu: Cross-platform, high performance ML inferencing and training accelerator
40-
- directml: High-performance, hardware-accelerated DirectX 12 library for machine learning
41-
- gtest: Google Testing and Mocking Framework (only used when testing enabled)
39+
- meshoptimizer: Mesh optimization library that makes meshes smaller and faster to render
4240
- gfx third party dependencies:
4341
- d3d12-memory-allocator: Easy to integrate D3d12 memory allocation library from GPUOpen
4442
- DirectX12-Agility: DirectX 12 Agility SDK

dump/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

shader_pdb/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/core/CMakeLists.txt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ file(GLOB_RECURSE CAPSAICIN_SHADER_FILES
1515
${CMAKE_CURRENT_SOURCE_DIR}/src/*.task
1616
${CMAKE_CURRENT_SOURCE_DIR}/src/*.comp
1717
${CMAKE_CURRENT_SOURCE_DIR}/src/*.hlsl
18+
${CMAKE_CURRENT_SOURCE_DIR}/src/*.hlsli
1819
${CMAKE_CURRENT_SOURCE_DIR}/src/*.rt
1920
${CMAKE_CURRENT_SOURCE_DIR}/src/*_shared.h
2021
)
@@ -78,11 +79,16 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
7879
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wall -Wextra -pedantic -Werror>)
7980
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
8081
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/MP /W4 /WX /experimental:external /external:anglebrackets /external:W0 /analyze:external->)
82+
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/wd28020>) # The expression 'expr' is not true at this call - currently bugged
8183
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
82-
if("${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
84+
if("${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC")
8385
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/W4 /WX>)
86+
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-cast-function-type-mismatch>) # cast from 'FARPROC' X to Y converts to incompatible function type
8487
else()
8588
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wall -Wextra -pedantic -Werror>)
89+
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-microsoft-enum-value>) # enumerator value is not representable in the underlying type 'int'
90+
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-language-extension-token>) # extension used
91+
target_compile_options(capsaicin PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-cast-function-type-mismatch>) # cast from 'FARPROC' X to Y converts to incompatible function type
8692
endif()
8793
endif()
8894

@@ -92,7 +98,7 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
9298
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
9399
target_compile_options(capsaicin PRIVATE /arch:AVX2)
94100
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
95-
if("${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
101+
if("${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC")
96102
target_compile_options(capsaicin PRIVATE /arch:AVX2)
97103
else()
98104
target_compile_options(capsaicin PRIVATE -march=x86-64-v3)
@@ -104,7 +110,9 @@ target_compile_definitions(capsaicin PRIVATE
104110
GLM_FORCE_XYZW_ONLY
105111
GLM_FORCE_DEPTH_ZERO_TO_ONE
106112
)
107-
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC" OR "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
113+
include(CheckCXXSymbolExists)
114+
check_cxx_symbol_exists(_MSVC_STL_VERSION version MSVCSTL)
115+
if(MSVCSTL)
108116
target_compile_definitions(capsaicin PRIVATE
109117
_CRT_SECURE_NO_WARNINGS
110118
_HAS_EXCEPTIONS=0
@@ -114,8 +122,6 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC" OR "${CMAKE_CXX_SIMULATE_ID}" STRE
114122
)
115123
endif()
116124

117-
target_link_options(capsaicin PRIVATE "/SUBSYSTEM:WINDOWS")
118-
119125
function(assign_source_group arg1)
120126
foreach(_source IN ITEMS ${ARGN})
121127
get_filename_component(PARENT_DIR "${_source}" DIRECTORY)
@@ -156,15 +162,15 @@ else()
156162
endif()
157163

158164
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/gfx/third_party/imgui")
159-
target_include_directories(capsaicin PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/gfx/third_party/imgui"
165+
target_include_directories(capsaicin PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/gfx/third_party/imgui"
160166
"${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/gfx/third_party/imgui/misc/cpp")
161167
else()
162168
find_package(imgui REQUIRED)
163169
target_link_libraries(capsaicin PUBLIC imgui::imgui)
164170
endif()
165171

166172
target_link_libraries(capsaicin PUBLIC gfx
167-
PRIVATE yaml-cpp::yaml-cpp meshoptimizer::meshoptimizer)
173+
PRIVATE ffx_loader yaml-cpp::yaml-cpp meshoptimizer::meshoptimizer)
168174

169175
set_target_properties(capsaicin PROPERTIES
170176
RUNTIME_OUTPUT_DIRECTORY ${CAPSAICIN_RUNTIME_OUTPUT_DIRECTORY}

0 commit comments

Comments
 (0)