22 Commits (a2a325b3bafe4f257857c16c1b254fba2c1317e1)

Author SHA1 Message Date
Nico de Poel a2a325b3ba Added a few missing else's 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 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 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 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