Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
ab05e88
TemporalUpscaler: Initial commit
praydog Oct 17, 2022
0fe470a
Forgot to commit this
praydog Oct 17, 2022
f1a05f3
SDK: Fix renderer structures in DMC5
praydog Oct 17, 2022
61ec6d1
TemporalUpscaler: Remove log spam
praydog Oct 18, 2022
e2bcc7d
Merge branch 'master' into pd-upscaler
praydog Oct 18, 2022
0a312b5
TemporalUpscaler: Initial VR support
praydog Oct 19, 2022
0d44d7a
TemporalUpscaler: Update to check for available methods
praydog Oct 19, 2022
7f77bb8
TemporalUpscaler: Fix incorrect algorithm getting chosen at start
praydog Oct 20, 2022
3352c51
TemporalUpscaler: Fix anti-jitter not working
praydog Oct 20, 2022
e40d440
Fixed jitter in motion vectors
PureDark Oct 20, 2022
511f5a0
Merge pull request #551 from PureDark/pd-upscaler
praydog Oct 23, 2022
2f4c9be
Merge branch 'master' into pd-upscaler
praydog Oct 23, 2022
c822dd2
update re8.genny renderer definitions
praydog Oct 24, 2022
dc29934
SDK: Add renderer utilities for obtaining and creating constant buffers
praydog Oct 25, 2022
56a5bb2
Merge branch 'master' into pd-upscaler
praydog Oct 26, 2022
d42ccd4
ObjectExplorer: Add camera to rendering dropdown
praydog Oct 26, 2022
8a62318
SDK: Add utilities for creating textures and target states
praydog Oct 27, 2022
b21205a
SDK: Add further utility & RenderTargetView creation
praydog Oct 27, 2022
dfd7bd9
SDK: Add PrepareOutput layer wrapper
praydog Oct 28, 2022
fc72d3b
VR: Rough initial implementation of single frame multi-pass rendering
praydog Oct 28, 2022
8aea713
SDK: Add cloning utilities for various rendering structures
praydog Oct 29, 2022
a889eee
ObjectExplorer: Add render laying removal & reordering
praydog Oct 29, 2022
568841d
TemporalUpscaler: Code cleanup
praydog Oct 29, 2022
03194d8
VR: Fix multipass rendering flickering and bugging out
praydog Oct 29, 2022
70b9eb6
Merge branch 'master' into pd-upscaler
praydog Oct 29, 2022
299cef1
TemporalUpscaler: Fix incorrect resource barrier state
praydog Oct 31, 2022
43de917
D3D12Component: Fix incorrect resource barrier states
praydog Oct 31, 2022
3716d8d
VR: Big performance improvements to multi-pass rendering
praydog Nov 1, 2022
1cdfad4
VR: Fix UI being broken in one eye with multipass rendering
praydog Nov 1, 2022
d66c324
SDK: Fix scene layer list offset in RE8
praydog Nov 1, 2022
ac0c762
Merge branch 'master' into pd-upscaler
praydog Nov 10, 2022
1a23134
Merge branch 'master' into pd-upscaler
praydog Nov 10, 2022
cba418c
VR/TemporalUpscaler: Fix ghosting in one eye (motion/depth buffers)
praydog Nov 14, 2022
da3e8d9
Rename some D3D12 stuff to give a clearer intent
praydog Nov 14, 2022
81059c5
SDK: Refactor to return ID3D12Resource* instead of void*
praydog Nov 14, 2022
ec1141c
VR/TemporalUpscaler: Copy color texture instead of cloning target state
praydog Nov 14, 2022
54fe8e6
VR: Fix culling and some other weird issues with multipass
praydog Nov 17, 2022
ad9884e
Merge branch 'master' into pd-upscaler
praydog Nov 20, 2022
18d43a2
TemporalUpscaler: Force game image quality to 1.0 to fix misalignment
praydog Nov 20, 2022
be890da
SDK: Add RenderResource::release
praydog Nov 23, 2022
b0b3d7a
TemporalUpscaler: Reduce memory leaks with intrusive_ptr
praydog Nov 28, 2022
2871733
TemporalUpscaler: Forgot to commit this
praydog Nov 29, 2022
721f496
test update for newest PDPerfPlugin
praydog Dec 16, 2022
84afb4e
Probably need this...
praydog Dec 16, 2022
b174f89
Merge branch 'master' into pd-upscaler
praydog Dec 16, 2022
9a6e4d5
Update CMakeLists
praydog Dec 16, 2022
d340cd6
Fix compile
praydog Dec 16, 2022
8255bd9
Workflow: Upload PDB along with DLL
praydog Dec 16, 2022
fc9de7a
Workflow: Only upload the mod itself and not dependencies
praydog Dec 16, 2022
6ece5f9
Workflow: Adjust artifact upload size so it's not huge
praydog Dec 16, 2022
1e1a890
TemporalUpscaler: Add native upscaling (DLAA)
praydog Dec 16, 2022
d2f36f2
TemporalUpscaler: Defer game's resource releases to fix crashes
praydog Dec 22, 2022
6dd2f6a
Merge branch 'master' into pd-upscaler
praydog Jan 28, 2023
1c225a6
Merge branch 'master' into pd-upscaler
praydog Mar 11, 2023
b1502bd
TemporalUpscaler: Fix for RE4
praydog Mar 11, 2023
fda53fc
TemporalUpscaler (VR): Fix s_scene_layers_offset in RE4
praydog Mar 12, 2023
65e1c85
SDK: Fix case where via::memory::deallocate could fail to be found
praydog Mar 12, 2023
cbeb59f
TemporalUpscaler (VR): Fix new rendering method in RE4
praydog Mar 12, 2023
b17a2eb
Merge branch 'master' into pd-upscaler
praydog Mar 14, 2023
638bf88
Merge branch 'master' into pd-upscaler
praydog Mar 24, 2023
e9977fe
Merge branch 'master' into pd-upscaler
praydog Mar 24, 2023
42971db
Merge branch 'master' into pd-upscaler
praydog Mar 25, 2023
5e57fc3
Merge branch 'master' into pd-upscaler
praydog Mar 25, 2023
fab2b32
TemporalUpscaler: Move debug options into a separate tree
praydog Mar 25, 2023
a9be1dd
TemporalUpscaler: Settings are now saved
praydog Mar 25, 2023
0eeadf2
TemporalUpscaler: Fix mirrors and scopes freaking out
praydog Mar 26, 2023
0343893
Merge branch 'master' into pd-upscaler
praydog Mar 27, 2023
b862896
SDK: Fix create_render_target_view failing in RE4
praydog Mar 27, 2023
d9de21b
TemporalUpscaler: Fix something that could happen maybe
praydog Mar 27, 2023
7579073
Merge branch 'master' into pd-upscaler
praydog Mar 29, 2023
4a1176a
TemporalUpscaler: Print optimal LOD bias under debug
praydog Mar 29, 2023
983155a
Merge branch 'master' into pd-upscaler
praydog Mar 30, 2023
a21a7da
(#709) Lua: Fix upscaling breaking draw.world_to_screen
praydog Mar 30, 2023
27f84ec
ObjectExplorer (RE4): Fix crash when looking at via.render.ToneMapping
praydog Mar 30, 2023
9cb7efb
SDK: Some renderer utility functions
praydog Mar 31, 2023
80c2315
Oops
praydog Mar 31, 2023
f755c9f
Merge branch 'master' into pd-upscaler
praydog Mar 31, 2023
0f8a7b2
SDK: More Renderer utilities
praydog Mar 31, 2023
2669071
VR: Initial work on camera duplication
praydog Apr 1, 2023
0002982
TemporalUpscaler: Improvements to finding valid scene layers
praydog Apr 2, 2023
2b49fd4
VR: Initial (buggy) fixes for new rendering method
praydog Apr 2, 2023
5134e64
VR (New method): Fix one eye flickering
praydog Apr 5, 2023
e5bbf9a
VR (New method): Add additional cloned effects
praydog Apr 5, 2023
781f4e3
VR (New method): Fix some camera properties not getting copied
praydog Apr 6, 2023
20a3ec5
VR (RE4): Fix scope not being zoomed in
praydog Apr 6, 2023
3c63e4e
VR (New method): Fix more inconsistencies
praydog Apr 6, 2023
47a5ff1
VR (New method): Fix auto exposure not getting copied
praydog Apr 7, 2023
7e8e9ac
VR (New method): Fix more effects not getting cloned
praydog Apr 7, 2023
9325752
VR (New method): Fix vignette not getting disabled
praydog Apr 7, 2023
ef5cdc3
VR (New method): Possible fix for low HP crash
praydog Apr 7, 2023
2393ffb
VR (New method): Partially working without upscaler
praydog Apr 7, 2023
5e2ee5b
Merge branch 'master' into pd-upscaler
praydog Apr 8, 2023
121f67d
VR (New method): Fully fix without upscaler (incorrect color formats)
praydog Apr 8, 2023
60683ec
VR (New method): Fix on OpenVR
praydog Apr 8, 2023
315614c
VR (New method): Fixes to texture size
praydog Apr 8, 2023
59aebda
VR: Default new rendering method to enabled (on new RE versions)
praydog Apr 8, 2023
7a52f7c
VR: Do not force AA off by default (on new RE versions)
praydog Apr 8, 2023
78b8e12
Merge branch 'master' into pd-upscaler
praydog Apr 8, 2023
a58158f
Merge branch 'master' into pd-upscaler
praydog Apr 8, 2023
4c0f6b5
VR (New method): Fix various issues
praydog Apr 9, 2023
b45f130
VR (D3D11): Possible fix for stuck eye texture
praydog Apr 9, 2023
35ff3c6
VR (New method): Possible fix for left eye on some headsets
praydog Apr 10, 2023
3c0bc8c
Merge branch 'master' into pd-upscaler
praydog Apr 17, 2023
e5ea6a4
Merge branch 'master' into pd-upscaler
praydog Apr 26, 2023
d1f8da0
Merge branch 'master' into pd-upscaler
praydog Apr 26, 2023
579a8f6
Merge branch 'master' into pd-upscaler
praydog Apr 26, 2023
1270c20
Merge branch 'master' into pd-upscaler
praydog Apr 29, 2023
c32978c
Merge branch 'master' into pd-upscaler
praydog Apr 30, 2023
04f037a
Re-enable async rendering on all games except SF6
praydog May 4, 2023
1c983cb
VR: Disable async rendering when new rendering method is enabled
praydog May 4, 2023
6cae2a9
Merge branch 'master' into pd-upscaler
praydog May 5, 2023
a5488f9
Plugins: Update patch version because of 04af319b
praydog May 5, 2023
9048d23
Merge branch 'master' into pd-upscaler
praydog May 7, 2023
46ca45b
Merge branch 'master' into pd-upscaler
praydog May 7, 2023
f8278d1
Merge branch 'master' into pd-upscaler
praydog May 7, 2023
2c49b70
Merge branch 'master' into pd-upscaler
praydog May 16, 2023
5aa13f8
ObjectExplorer: Add proper swapping of render layers
praydog May 16, 2023
79f2363
ObjectExplorer: Add via.render.TargetState introspection
praydog May 16, 2023
671f0f4
Merge branch 'master' into pd-upscaler
praydog May 16, 2023
f5bd847
Merge branch 'master' into pd-upscaler
praydog May 20, 2023
0858139
Merge branch 'master' into pd-upscaler
praydog May 29, 2023
0914933
Fix rest of merge issues
praydog May 29, 2023
60838a9
VR: Fix HDR constantly getting forced on sometimes
praydog May 29, 2023
2b71285
VR: Fix busted colors after merge
praydog May 29, 2023
a8b0de8
Merge branch 'master' into pd-upscaler
praydog Jun 3, 2023
d691899
Merge branch 'master' into pd-upscaler
praydog Jun 4, 2023
993f0e1
Merge branch 'master' into pd-upscaler
praydog Jun 5, 2023
0ed0727
TemporalUpscaler: Add initial support for SF6
praydog Jun 5, 2023
e7b685f
TemporalUpscaler: Fix crash when scene layer gets switched around
praydog Jun 6, 2023
de21230
Merge branch 'master' into pd-upscaler
praydog Jun 6, 2023
3f8453a
VR: Major improvements to multipass rendering
praydog Jun 6, 2023
b84b446
VR (Multipass): Fixes for multiple cameras and scene layers
praydog Jun 6, 2023
45c41e3
Merge branch 'master' into pd-upscaler
praydog Jun 7, 2023
97d2b38
Merge branch 'master' into pd-upscaler
praydog Jun 7, 2023
89daaa9
ObjectExplorer: Add TargetState debugging buttons
praydog Jun 8, 2023
631a3f5
SDK (Renderer): Add RenderContext::clear_rtv command
praydog Jun 8, 2023
8d074f1
Forgot to commit this
praydog Jun 8, 2023
7f3c4f5
Fix memory allocation causing hard to debug issues (non zero'd memory)
praydog Jun 9, 2023
b092b38
Make DirectXTK::GraphicsMemory a global object for all of REF
praydog Jun 9, 2023
9b85866
Add DXTK utility funcs
praydog Jun 9, 2023
49773fb
Update CMakeLists
praydog Jun 9, 2023
30d0650
SDK: Renderer improvements/fleshing out
praydog Jun 9, 2023
49b3ef6
Merge branch 'master' into pd-upscaler
praydog Jun 13, 2023
2a8c23c
Merge branch 'master' into pd-upscaler
praydog Aug 16, 2023
3251b8e
Fix compilation errors after merge
praydog Aug 16, 2023
33b60d6
RE3: Fix CameraDuplicator breaking character movement
praydog Aug 21, 2023
942eaa5
RE7: Fix new rendering method not working
praydog Aug 21, 2023
336ad3a
Merge branch 'master' into pd-upscaler
praydog Aug 27, 2023
fd300f7
Multipass (OpenVR): Fix RT RGB order mismatch
praydog Aug 29, 2023
df5e87f
TemporalUpscaler: Add note to window when unsupported engine version
praydog Sep 4, 2023
79354ef
Merge branch 'master' into pd-upscaler
praydog Sep 5, 2023
055707f
Fix rest of issues with merge
praydog Sep 5, 2023
f7560a0
VR/TemporalUpscaler: Slight bottleneck reduction
praydog Sep 5, 2023
f9d2a54
Merge branch 'master' into pd-upscaler
praydog Sep 21, 2023
71bd4b5
Merge branch 'master' into pd-upscaler
praydog Sep 27, 2023
f6e2911
Merge branch 'master' into pd-upscaler
praydog Oct 2, 2023
958bf18
Merge branch 'master' into pd-upscaler
praydog Oct 4, 2023
f103a16
Merge branch 'master' into pd-upscaler
praydog Oct 5, 2023
13fc133
Merge branch 'master' into pd-upscaler
praydog Oct 23, 2023
3594c64
Merge branch 'master' into pd-upscaler
praydog Oct 29, 2023
7801dbe
VR: Fix TAA not working in RE2/3 because of old script
praydog Nov 2, 2023
d51f91c
TemporalUpscaler: Fix in SF6 after Dec 1 update
praydog Dec 2, 2023
699e861
Merge branch 'master' into pd-upscaler
praydog Dec 2, 2023
7000647
Merge branch 'master' into pd-upscaler
praydog Dec 10, 2023
43f950e
GamePass: DelayLoad certain DLLs to fix startup crash
praydog Jan 16, 2024
a612b8c
Merge branch 'master' into pd-upscaler
praydog Jan 16, 2024
2ba19c8
Merge branch 'master' into pd-upscaler
praydog Jan 31, 2024
ac713ea
Merge branch 'master' into pd-upscaler
praydog Feb 4, 2024
a064333
CameraDuplicator (RE7): Fix main menu camera
praydog Feb 25, 2024
36daa11
Merge branch 'master' into pd-upscaler
praydog Feb 25, 2024
c7e9415
CameraDuplicator (RE7): Fix Banned Footage menu
praydog Feb 25, 2024
aa94628
Merge branch 'master' into pd-upscaler
praydog Feb 28, 2024
86c5ccc
Merge branch 'master' into pd-upscaler
praydog Mar 13, 2024
78782d1
Merge branch 'master' into pd-upscaler
praydog Mar 13, 2024
66c5f3a
Merge branch 'master' into pd-upscaler
praydog Mar 13, 2024
dd6aa13
Renderer: Add RenderLayer::set_parent
praydog Mar 13, 2024
da51667
DD2: Fix RenderContext::alloc scan
praydog Mar 13, 2024
ad945d2
Fix compile
praydog Mar 13, 2024
de60354
Merge branch 'master' into pd-upscaler
praydog Mar 22, 2024
f042c9a
Merge branch 'master' into pd-upscaler
praydog Mar 24, 2024
7bc0105
Merge branch 'master' into pd-upscaler
praydog Apr 1, 2024
0d76892
Update CMakeLists
praydog Apr 1, 2024
94c8eed
fix C++23 compile
praydog Apr 1, 2024
ef7b329
Merge branch 'master' into pd-upscaler
praydog Apr 5, 2024
4070a6a
Merge branch 'master' into pd-upscaler
praydog Apr 24, 2024
2c149e9
Remove scopeguard because it's in kananlib
praydog Apr 24, 2024
64cc853
Update some invokes
praydog Apr 24, 2024
183d4da
Update CMakeLists
praydog Apr 24, 2024
49fc0a5
Merge branch 'master' into pd-upscaler
praydog Apr 30, 2024
c34b092
Merge branch 'master' into pd-upscaler
praydog May 6, 2024
7222eca
Merge branch 'master' into pd-upscaler
praydog May 9, 2024
d2f3c37
Merge branch 'master' into pd-upscaler
praydog May 15, 2024
028035a
Merge branch 'master' into pd-upscaler
praydog May 15, 2024
bb032ff
Merge branch 'master' into pd-upscaler
praydog May 25, 2024
a1e3cfa
Merge branch 'master' into pd-upscaler
praydog May 26, 2024
600fbb8
VR (DD2): Initial fixes for new rendering method
praydog May 26, 2024
9513c14
Renderer: Fix code typo in non-usage of template arg
praydog May 26, 2024
a08b246
VR (D3D12): Fix texture RTV not getting cleared
praydog May 27, 2024
1fb71ce
VR (DD2, Multipass): Initial correct output for OpenXR
praydog May 27, 2024
9fcca4d
VR (D3D12): Remove unnecessary texture assignment
praydog May 27, 2024
d839c96
Merge branch 'master' into pd-upscaler
praydog Jun 2, 2024
ea1a083
Merge branch 'master' into pd-upscaler
praydog Jun 4, 2024
1d3d01d
Renderer: Update some structures for DMC5/TDB67
praydog Jun 4, 2024
1fb634d
TemporalUpscaler: Partial DMC5 support (D3D12 only)
praydog Jun 4, 2024
7ab0aea
Merge branch 'master' into pd-upscaler
praydog Jun 5, 2024
748ac03
Merge branch 'master' into pd-upscaler
praydog Jun 27, 2024
9b25833
Merge branch 'master' into pd-upscaler
praydog Jun 27, 2024
be4f99b
Merge branch 'master' into pd-upscaler
praydog Jun 29, 2024
d528d88
Merge branch 'master' into pd-upscaler
praydog Jul 1, 2024
cd3a433
SF6: Fix crashes with upscaler build
praydog Jul 1, 2024
da39503
Merge branch 'master' into pd-upscaler
praydog Jul 2, 2024
838cb85
Merge branch 'master' into pd-upscaler
praydog Jul 21, 2024
fb81517
VR (DD2): Fix output state offset
praydog Jul 21, 2024
f18adbe
Merge branch 'master' into pd-upscaler
praydog Jul 21, 2024
c2e7f46
Merge branch 'master' into pd-upscaler
praydog Sep 20, 2024
1f6fca2
Merge branch 'master' into pd-upscaler
praydog Oct 13, 2024
7990c00
MHRise: Fix TemporalUpscaler + partial fix for VR
praydog Oct 21, 2024
d967aa7
VR (Single pass): Stability improvements (mostly for MHRise)
praydog Oct 21, 2024
8b0d835
VR (Single pass): Further stability improvements
praydog Oct 21, 2024
83fd33c
Merge branch 'master' into pd-upscaler
praydog Oct 25, 2024
06c3607
Merge branch 'master' into pd-upscaler
praydog Nov 2, 2024
ee0e246
Merge branch 'master' into pd-upscaler
praydog Nov 2, 2024
16806b3
VR: Initial work on new renderer for Wilds
praydog Nov 2, 2024
0dcf061
Merge branch 'master' into pd-upscaler
praydog Nov 11, 2024
e50d79b
Merge branch 'master' into pd-upscaler
praydog Jun 6, 2025
fdd03be
Fix PluginLoader
praydog Jun 6, 2025
aa076e2
Update CMakeLists
praydog Jun 6, 2025
8ef3422
Merge branch 'master' into pd-upscaler
praydog Feb 4, 2026
cb7c982
Upscaler/Renderer: Fix RE4 and use heuristic scanning
praydog Feb 4, 2026
1c80669
Merge branch 'master' into pd-upscaler
praydog Mar 5, 2026
6e731d7
RE9: Fix upscaler branch compile
praydog Mar 5, 2026
e5a7c86
RE9: Fix RenderResource size
praydog Mar 6, 2026
b324769
Merge branch 'master' into pd-upscaler
praydog Mar 6, 2026
c1779fe
RE9: Fix RenderResource::release
praydog Mar 9, 2026
48dc40a
Renderer: Automatically determine output state offset (used in Upscaler)
praydog Mar 9, 2026
76298bd
Merge branch 'master' into pd-upscaler
praydog Mar 11, 2026
bd040ac
Merge branch 'master' into pd-upscaler
praydog Mar 22, 2026
f968de2
Merge branch 'master' into pd-upscaler
praydog Mar 22, 2026
f8061df
Merge branch 'master' into pd-upscaler
praydog Mar 25, 2026
e57dcdb
SDK (Renderer): Possible copy_texture fix (untested)
praydog Mar 26, 2026
17f00c8
SDK (Renderer): Fix copy_texture crash
praydog Mar 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/dev-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,5 +111,4 @@ jobs:
artifacts: ${{github.workspace}}/artifacts/**/*.zip
makeLatest: true
bodyFile: ${{github.workspace}}/nightly-body.md
allowUpdates: true

allowUpdates: true
535 changes: 519 additions & 16 deletions CMakeLists.txt

Large diffs are not rendered by default.

14 changes: 12 additions & 2 deletions cmake.toml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,15 @@ tag = "2a706fd2ba355808cada31ac1eed8ce28caa6b37"
git = "https://github.com/KhronosGroup/OpenXR-SDK"
tag = "458984d7f59d1ae6dc1b597d94b02e4f7132eaba"

[target.pdperfmod]
type = "shared"
include-directories = ["dependencies/pd-perfmod/include"]
sources = ["dependencies/pd-perfmod/dummy/**.cpp"]
condition = "build-framework-dependencies"

[target.pdperfmod.properties]
OUTPUT_NAME = "PDPerfPlugin"

[fetch-content.directxtk]
git = "https://github.com/microsoft/DirectXTK"
tag = "f5026eb34e7053b1aff325d38db107703f394974"
Expand Down Expand Up @@ -271,7 +280,8 @@ link-libraries = [
"openxr_loader",
"delayimp",
"DirectXTK",
"DirectXTK12"
"DirectXTK12",
"pdperfmod"
]
cmake-before="""
"""
Expand All @@ -285,7 +295,7 @@ add_custom_command(

[template.game.properties]
OUTPUT_NAME = "dinput8"
LINK_FLAGS = "/DELAYLOAD:openvr_api.dll /DELAYLOAD:openxr_loader.dll /DELAYLOAD:d3d11.dll /DELAYLOAD:d3d12.dll /DELAYLOAD:D3DCOMPILER_47.dll"
LINK_FLAGS = "/DELAYLOAD:openvr_api.dll /DELAYLOAD:openxr_loader.dll /DELAYLOAD:PDPerfPlugin.dll /DELAYLOAD:d3d11.dll /DELAYLOAD:d3d12.dll /DELAYLOAD:D3DCOMPILER_47.dll"
RUNTIME_OUTPUT_DIRECTORY_RELEASE = "${CMAKE_BINARY_DIR}/bin/${CMKR_TARGET}"
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO = "${CMAKE_BINARY_DIR}/bin/${CMKR_TARGET}"
LIBRARY_OUTPUT_DIRECTORY_RELEASE = "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}"
Expand Down
44 changes: 44 additions & 0 deletions dependencies/pd-perfmod/dummy/PDPerfPlugin.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// dummy implementation of the DLL so I don't need to commit the DLL to the repo
#include "../include/PDPerfPlugin.h"

bool __stdcall SetupDirectX(void* item, int graphicsAPI){return false;};

bool __stdcall SetupGraphicDevice(void* tex, int graphicsAPI){return false;};

void* __stdcall InitUpscaler(InitParams* params) {return nullptr;};

void __stdcall EvaluateUpscaler(UpscaleParams* params) {};

void __stdcall SimpleEvaluate(int id, void* color, void* motionVector, void* depth, void* mask, void* destination, int renderSizeX, int renderSizeY, float sharpness,
float jitterOffsetX, float jitterOffsetY, int motionScaleX, int motionScaleY, bool reset, float nearPlane, float farPlane, float verticalFOV, bool execute) {};

void* __stdcall SimpleInit(int id, int upscaleMethod, int qualityLevel, int displaySizeX, int displaySizeY, bool isContentHDR, bool depthInverted, bool YAxisInverted,
bool motionVetorsJittered, bool enableSharpening, bool enableAutoExposure, int format) { return nullptr; };

void __stdcall SetMotionScaleX(int id, float motionScaleX) {};

void __stdcall SetMotionScaleY(int id, float motionScaleX) {};

int __stdcall GetRenderWidth(int id) { return 0; };

int __stdcall GetRenderHeight(int id) { return 0; };

float __stdcall GetOptimalSharpness(int id) { return 0.0f; };

float __stdcall GetOptimalMipmapBias(int id) { return 0.0f;};

void __stdcall SetDebug(bool debug) {};

void __stdcall ReleaseUpscaleFeature(int id) {};

int __stdcall GetJitterPhaseCount(int id) { return 0; };

int __stdcall GetJitterOffset(float* outX, float* outY, int index, int phaseCount) { return 0; };

void __stdcall InitLogDelegate(void (*Log)(char* message, int iSize)) {};

bool __stdcall IsUpscaleMethodAvailable(int upscaleMethod) {
return false;
};

char* __stdcall GetUpscaleMethodName(int upscaleMethod) { return (char*)""; };
113 changes: 113 additions & 0 deletions dependencies/pd-perfmod/include/PDPerfPlugin.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#pragma once

/* For reference
* I can't use enum as parameter type cuz unity does't work well
* No VULKAN yet
enum GraphicsAPI
{
D3D11,
D3D12
};
enum UpscaleType
{
DLSS,
FSR2,
XESS
};
enum PerfQualityLevel
{
Performance,
Balanced,
Quality,
UltraPerformance // or UltraQuality for XeSS, I don't know why Intel has to be different
};
*/

typedef struct
{
unsigned int X;
unsigned int Y;
} Coordinates;

typedef struct
{
int id;
int upscaleMethod;
int qualityLevel;
int displaySizeX;
int displaySizeY;
int format;
bool isContentHDR;
bool depthInverted;
bool YAxisInverted;
bool motionVetorsJittered;
bool enableSharpening;
bool enableAutoExposure;
} InitParams;

struct UpscaleParams
{
int id;
void* color;
void* motionVector;
void* depth;
void* mask;
void* resolvedColor = nullptr; // Do not use
void* destination;
float renderSizeX;
float renderSizeY;
float sharpness;
float jitterOffsetX;
float jitterOffsetY;
float motionScaleX;
float motionScaleY;
bool reset;
float nearPlane;
float farPlane;
float verticalFOV;
bool execute;
void* cmdList = nullptr; // Don not use
Coordinates colorBase = { 0, 0 };
Coordinates depthBase = { 0, 0 };
Coordinates motionBase = { 0, 0 };
};

/* If you are calling EvaluateUpscale more than once per frame, set execute to true only at last call*/

extern "C" __declspec(dllexport) bool __stdcall SetupDirectX(void* item, int graphicsAPI);

extern "C" __declspec(dllexport) void* __stdcall SimpleInit(int id, int upscaleMethod, int qualityLevel, int displaySizeX, int displaySizeY, bool isContentHDR, bool depthInverted, bool YAxisInverted,
bool motionVetorsJittered, bool enableSharpening, bool enableAutoExposure, int format = 10);

extern "C" __declspec(dllexport) void* __stdcall InitUpscaler(InitParams* params);

extern "C" __declspec(dllexport) void __stdcall SimpleEvaluate(int id, void* color, void* motionVector, void* depth, void* mask, void* destination, int renderSizeX, int renderSizeY, float sharpness,
float jitterOffsetX, float jitterOffsetY, int motionScaleX, int motionScaleY, bool reset, float nearPlane, float farPlane, float verticalFOV, bool execute = true);

extern "C" __declspec(dllexport) void __stdcall EvaluateUpscaler(UpscaleParams* params);

extern "C" __declspec(dllexport) void __stdcall SetMotionScaleX(int id, float motionScaleX);

extern "C" __declspec(dllexport) void __stdcall SetMotionScaleY(int id, float motionScaleX);

extern "C" __declspec(dllexport) int __stdcall GetRenderWidth(int id);

extern "C" __declspec(dllexport) int __stdcall GetRenderHeight(int id);

extern "C" __declspec(dllexport) float __stdcall GetOptimalSharpness(int id);

extern "C" __declspec(dllexport) float __stdcall GetOptimalMipmapBias(int id);

extern "C" __declspec(dllexport) void __stdcall SetDebug(bool debug = true);

extern "C" __declspec(dllexport) void __stdcall ReleaseUpscaleFeature(int id);

extern "C" __declspec(dllexport) int __stdcall GetJitterPhaseCount(int id);

extern "C" __declspec(dllexport) int __stdcall GetJitterOffset(float* outX, float* outY, int index, int phaseCount);

extern "C" __declspec(dllexport) void __stdcall InitLogDelegate(void (*Log)(char* message, int iSize));

extern "C" __declspec(dllexport) bool __stdcall IsUpscaleMethodAvailable(int upscaleMethod);

extern "C" __declspec(dllexport) char* __stdcall GetUpscaleMethodName(int upscaleMethod);
Loading
Loading