38 Commits (9c65ed0007fc9bdb344a8579ccb5de06126fcc6f)
 

Author SHA1 Message Date
Nico de Poel 9c65ed0007 Renamed upscaler interface and abstract base class to be more in line with C# naming conventions 10 months ago
Nico de Poel 8398f4ef74 Added a couple of missing lock guards 10 months ago
Nico de Poel 5cff14c48b Moved source files into "src" directory and external headers into "include" directory 10 months ago
Nico de Poel 39b83c1d37 Fixed a silly bug. Plugin works again now. 10 months ago
Nico de Poel 24ff24dfd2 Removed some helper comments 10 months ago
Nico de Poel 49d622a763 Reworked core plugin code to make use of the upscaler classes, fixed some issues along the way 10 months ago
Nico de Poel ae7d966f1d Created separate class for DX11 implementation of FSR 2.2 10 months ago
Nico de Poel 88f5e78fc4 Created separate class for Vulkan implementation based on FFX API, with some additional refactoring 10 months ago
Nico de Poel 8fc9a23c3a Moved handling of FidelityFX library and dynamic function loading into a separate base class, and reworked some things so that only UpscalerGraphicsDevice needs to access the mutex 10 months ago
Nico de Poel a1e30f9af4 First pass at factoring out the feature management and the graphics API-specific code into separate classes, starting with FSR 3.1 for DX12 10 months ago
Nico de Poel bfcfa4f627 Avoid locking the mutex and blocking the main/render thread on destroy at the same time, which could cause deadlocks under some circumstances. 11 months ago
Nico de Poel 2db0aed932 Configure render event for DX12 and Vulkan, to ensure the upscaler gets called without any synchronization errors. Fixes graphical glitching on Nvidia cards, as well as subtle bugs in the FSR3 pipeline on AMD. 11 months ago
Nico de Poel a2a325b3ba Added a few missing else's 11 months ago
Nico de Poel 41d76f4ab7 Updated license with full names of the three TND authors 11 months ago
Nico de Poel bfc905ff75 Added some extra safety checks 11 months ago
Nico de Poel 77942d25b0 Query the FidelityFX library for upscaler versions upon load, and log the default FSR version that's available. 11 months ago
Nico de Poel 9793a55c48 Fall back to biasColorMask if reactiveMask is empty, because Unity can't seem to make up its mind what either of these textures mean. 11 months ago
Nico de Poel c11ab1099b Wait for graphics queue to become idle before destroying an upscale context, in case a dispatch is still busy. Fixes remaining crashes in Vulkan when enabling/disabling the plugin too rapidly. 11 months ago
Nico de Poel 49fa7d69a2 Await end of frame on the CPU before destroying a context, if the GPU has a dispatch queued on the current frame. Fixes remaining crashes in D3D12 when enabling/disabling the plugin too rapidly. 11 months ago
Nico de Poel aa40402c28 Added lock guards to all exported functions that interact with the features or the graphics contexts, as well as additional validity checks. Protects against most of Unity's weird unsafe behavior when using the plugin, fixing the majority of crashes. 11 months ago
Nico de Poel 19fd96989e Merged FSR 2.2 implementation for DX11 into the plugin, so that it supports all three major Windows graphics APIs. 11 months ago
Nico de Poel 65d6aa6303 Added FSR 2.2 headers and static libraries for DX11 only 11 months ago
Nico de Poel e0f97ea006 Explicitly load the correct FFX API DLL based on the active graphics backend, and use functions dynamically loaded from that library. This allows both DX12 and Vulkan to work properly from the same codebase. 11 months ago
Nico de Poel b132ce5a2a Added Vulkan implementation based on the upgradable FFX API. Works, but FFX doesn't like it when I link to both DX12 and Vulkan libraries, always picking the first over the other. Means Vulkan will break if DX12 is the first library in the linker list, and vice versa. 11 months ago
Nico de Poel dfab8c6126 Added initial required bits for Vulkan support 11 months ago
Nico de Poel e463345efb Reverted the SetTextures render event, as there is a legit reason (Vulkan) for the convoluted SetTextureEvent method of pushing textures 11 months ago
Nico de Poel eeb43bac2a - Added an extra render event to allow setting all textures in one go, in a way that isn't stupid and inefficient 11 months ago
Nico de Poel b8289ac5a0 Added an MIT license on my own name, to keep my options fully open for future applications 11 months ago
Nico de Poel 3db46ba447 Made context destruction more consistent and safe against duplicate slot freeing 11 months ago
Nico de Poel 7444ef9846 Tying up some loose ends: 11 months ago
Nico de Poel f53321bd43 Use ID3D12Resource pointers in the texture table, to remove some unnecessary casts 11 months ago
Nico de Poel dafe81d108 Fixed bugs: 11 months ago
Nico de Poel cfcf81e50e Implemented what should be the rest of the FSR3 feature set. Still untested. 11 months ago
Nico de Poel bf13cda3ca First bits of integration of FFX upgradable API for creating an upscaler context 11 months ago
Nico de Poel f6cabcd3f4 Added upgradable FidelityFX API for DX12 with precompiled signed DLL from AMD 11 months ago
Nico de Poel 9ac431209e Implemented D3D12 Unity interface bits 11 months ago
Nico de Poel 2d5b133833 Implemented thread-safe allocation/freeing of feature slots, plus decoding of texture userdata 11 months ago
Nico de Poel 781b062fca Created initial skeleton of FSR3 native render plugin, with all type declarations and stubbed-out public interface functions. 11 months ago