Commit Graph

  • 8a57d7a219 Updated FSR package version number to 1.0.1 Nico de Poel 2024-12-15 13:21:53 +0100
  • 291aaef808 Unity 2020.x profiler fix Nico de Poel 2024-12-15 12:40:36 +0100
  • 72d5400659 Some cleanup and minor fixes Nico de Poel 2024-12-14 23:52:10 +0100
  • 3f1c851616 Some cleanup and minor fixes Nico de Poel 2024-12-14 23:52:10 +0100
  • 56e7baa308 Auto-exposure reset fix for OpenGL on Nvidia Nico de Poel 2024-12-14 21:07:01 +0100
  • 0522f1446f Optimized multi-compile keywords Nico de Poel 2024-12-14 20:52:58 +0100
  • 250307d22b Additional OpenGL Core fixes Nico de Poel 2024-12-14 20:26:54 +0100
  • 2c36578d66 Added OpenGL Core bindings limit fix Nico de Poel 2024-12-14 18:53:10 +0100
  • b7dc3f6a27 Updated to FSR 3.1.3 and integrated velocity factor into the UI Nico de Poel 2024-12-14 14:28:38 +0100
  • 9e97cb3ac5 Reverted frame count hack originating from the WW1 code Nico de Poel 2024-12-08 18:16:04 +0100
  • 509950b879 Went back to the vanilla FSR 3.1.1 package code and removed all CAS and standalone reactive mask code, to make the Upscaler abstraction as clean as possible. Nico de Poel 2024-12-08 18:11:44 +0100
  • a374290d99 Renamed "upscaling" field back to "superResolution" so as not to unnecessarily break API compatibility, and removed references to non-FSR upscaling techniques Nico de Poel 2024-12-08 18:05:53 +0100
  • 9162faea77 Updated PSSR upscaler plugin with modernizations and convenience stuff made for Isonzo Nico de Poel 2024-11-18 12:20:02 +0100
  • b289f025c1 Replaced manually copied native PSSR plugin with an auto-building package Nico de Poel 2024-11-18 12:18:04 +0100
  • 93ba131087 Renamed exported PSSR functions Nico de Poel 2024-11-13 15:17:26 +0100
  • 5845b0f7ca Refactored MFSR dispatch into its own function, to be consistent with the other rendering events and to allow direct calls from managed code if desired. Nico de Poel 2024-11-13 10:41:50 +0100
  • a4a422b8dc Fixed a subtle bug where pointers to two structs that were out of scope were being passed to the MFSR initialization. This only went wrong when the native plugin was compiled with optimizations enabled. Nico de Poel 2024-11-13 10:29:04 +0100
  • da270aef75 Ported back a few fixes from Isonzo: - Detect if the native plugin is missing, in which case the upscaler won't be initialized. - Use the transparency & composition mask as input for the reactive mask initially. Nico de Poel 2024-11-09 15:55:05 +0100
  • 4406d9d697 Destroy context by directly calling into the library instead of using a plugin event. Seems perfectly stable in testing and fixes an issue where occasionally the wrong context index would come through in native code. Nico de Poel 2024-11-09 15:50:58 +0100
  • 3931c67a7e Fixed a memory leak on repeated destroy/create, as it turns out MFSR doesn't take ownership of the memory you allocate for it. You have to keep track of this and release it yourself. Nico de Poel 2024-11-08 20:04:35 +0100
  • 0596b31ab5 Eliminated the extra output color texture copy, which turned out to be not necessary. Both the CAS sharpen pass and Blit will take care of the necessary conversion. Nico de Poel 2024-11-08 17:53:10 +0100
  • 16774bc66f Removed obsolete and unused code files from the plugin Nico de Poel 2024-11-08 14:40:55 +0100
  • e856979480 Cleanup and comments Nico de Poel 2024-11-08 13:08:47 +0100
  • efd7240f94 Rotate between PSSR contexts to further reduce risk of race conditions between destroy & create Nico de Poel 2024-11-08 13:00:04 +0100
  • f87457803c Reworked plugin structure so that up to four MFSR context can be created and used, with Unity being able to select which context to use. Nico de Poel 2024-11-08 12:48:47 +0100
  • 470c178e4f Moved command buffer creation/destruction to context create/destroy, so that the command buffer is directly associated with the MFSR context. Nico de Poel 2024-11-08 12:29:44 +0100
  • 8ac6e5f4ec Use CAS with precise math Nico de Poel 2024-11-08 11:59:40 +0100
  • b3da3e5cee Added optional CAS sharpening step with halved sharpness range. Fixed the CAS shader to keep the output in HDR. Nico de Poel 2024-11-08 10:59:37 +0100
  • 49a55498c4 Simplified prepare inputs shader by removing the conditionals and the entire constant buffer Nico de Poel 2024-11-08 10:26:17 +0100
  • 0bbf0de336 Initialize PSSR plugin once in class constructor and don't bother cleaning up, since we can reuse the same shared resources for the duration of the application's lifetime. Nico de Poel 2024-11-08 10:15:22 +0100
  • 9a80b0f1c0 Some cleanup and reorganization Nico de Poel 2024-11-08 10:07:04 +0100
  • 7f48d82c81 - Provide copies of depth and MVs ourselves, which ties in nicely with the mandatory Prepare Input copying. - Made auto-keeping of copies internally by MFSR optional - Added optional auto-reactive mask generation pass Nico de Poel 2024-11-06 18:39:59 +0100
  • 010be580b9 Simplified prepare inputs shader and added a comment about the depth RT Nico de Poel 2024-11-06 16:17:59 +0100
  • dc12bc4a45 Allow option flags to be set from Unity and set motion vector gamma to 1 by default Nico de Poel 2024-11-06 15:48:06 +0100
  • 2ecc2d54b9 - Use non-jittered camera projection matrix - Double checked jitter offset values - Use prepared (i.e. copied) motion vector texture Nico de Poel 2024-11-06 14:26:42 +0100
  • 67d90c9b14 Added PSSR plugin source Nico de Poel 2024-11-05 17:58:14 +0100
  • 8d973cf234 First working proof-of-concept implementation of PSSR Nico de Poel 2024-11-05 17:56:03 +0100
  • 5646e0a325 Added PoC SGSR2 upscaler Nico de Poel 2024-11-05 17:54:40 +0100
  • 295a856287 Additional debug output Nico de Poel 2024-10-29 19:11:47 +0100
  • 3ab97172e6 Upgraded project to Unity 2022.3.47f1, enabled Trinity support and set up some initial resolution values Nico de Poel 2024-10-29 18:53:57 +0100
  • ceb8421e79 Updated debug tools to allow A/B comparisons between upscalers Nico de Poel 2024-10-29 18:46:15 +0100
  • 6ad499c57d Added CAS sharpening shader Nico de Poel 2024-10-29 18:30:47 +0100
  • 8db82e664c Reworked upscaling integration to allow for multiple upscaler algorithms that can be switched on the fly. Nico de Poel 2024-10-29 18:28:12 +0100
  • 31eb875b79 Fixed an issue that would cause the wrong depth buffer to be passed to FSR when using forward rendering on newer Unity versions. Nico de Poel 2024-07-29 22:52:15 +0200
  • 79298e140b Updated namespaces now that FSR3 is in a separate sub-namespace. Nico de Poel 2024-07-20 18:30:41 +0200
  • 911ae9bb29 Removed .19f1 requirement from PPV2 package. Any Unity 2020.1 and up should be supported. Nico de Poel 2024-07-20 18:27:49 +0200
  • 582cd80713 Took FSR3 code and shaders out of the PPV2 package and replaced it with an FSR3 package reference Nico de Poel 2024-07-20 12:17:01 +0200
  • d1808d542e Updated SuperResolution effect implementation to be compatible with FSR 3.1 Nico de Poel 2024-07-10 12:08:41 +0200
  • 63d46a6c8e Imported FSR 3.1 implementation Nico de Poel 2024-07-10 12:02:41 +0200
  • 7b37a0fba1 Correctly destroy resources when not in play mode fsr3 Nico de Poel 2024-06-26 11:45:41 +0200
  • c66ab6136d Applied correct macros to input and output texture definitions for HDRP support Nico de Poel 2024-06-26 11:44:26 +0200
  • a6b7b7235e Prevent Unity from treating shader include headers as native plugin code Nico de Poel 2024-06-26 11:39:25 +0200
  • 004cbc9468 Fixed opaque-only copy buffer not keeping dynamic resolution scaling in mind. Nico de Poel 2024-06-26 11:37:46 +0200
  • d1f207d691 Removed empty parantheses from macro definition, as it breaks the Unity 2020.1 shader compiler. Nico de Poel 2023-12-18 20:12:13 +0100
  • 415154ff54 - Separated FSR3 shader aggregate from the scriptable object, so that they can be embedded directly inside PostProcessResources - No longer need to send callbacks to the FSR3 Context. Nico de Poel 2023-12-18 18:01:10 +0100
  • 6b590b64af Refactored loading of FSR3 compute shaders, using an aggregate object containing pre-loaded compute shaders instead of the old callbacks. This gives more control to the application about how shaders are loaded/unloaded, and it fits in much more nicely with PPV2's resources. Nico de Poel 2023-12-16 17:08:53 +0100
  • b7b3842b95 Moved ResourceView out of the Fsr3Upscaler class and into the FidelityFX namespace, making usages of ResourceView a lot cleaner. ResourceView is also generic enough that it could/should be reused for any other FidelityFX effects, so this move makes sense. Nico de Poel 2023-12-16 13:41:06 +0100
  • 6fc389f137 Fixed a few comments that still referred to FSR2 Nico de Poel 2023-12-16 12:21:33 +0100
  • c71e487b15 Updated SuperResolution shaders and code to FSR3 Nico de Poel 2023-12-16 12:14:21 +0100
  • 7384b4486a Fixed aspect ratio for dual-viewport setups fsr2 Nico de Poel 2023-12-16 12:00:34 +0100
  • da866d9e25 Merge branch 'master' into fsr2 Nico de Poel 2023-12-16 11:44:22 +0100
  • f399aaee4f Upgraded to PPV2 version 3.4.0 with WebGPU support and several bug fixes master Nico de Poel 2023-12-16 11:43:46 +0100
  • ad3966f3f6 Revert "Removed unnecessary aspect ratio lines that broke screen aspect when using non-standard viewports." Nico de Poel 2023-12-16 11:35:10 +0100
  • 79f2ab14bf Removed unnecessary aspect ratio lines that broke screen aspect when using non-standard viewports. Nico de Poel 2023-10-26 23:01:08 +0200
  • 3fcb2cfc57 Renamed Pipelines to Passes Nico de Poel 2023-10-06 15:36:03 +0200
  • 8c7aeae4a7 Renamed RenderTargetView to ResourceView, which is a bit shorter to type and captures the essence well. Nico de Poel 2023-08-31 11:47:27 +0200
  • 87f11b5f7c Made all RenderTargetView fields non-nullable, and introduced a special Empty value for optional fields. This removes the need for a lot of HasValue checks, especially since all fields will eventually get a value anyway, making those checks rather redundant. This also makes it clearer that all SRVs will get bound with a valid input texture, even if the input is optional. Nico de Poel 2023-08-20 22:37:30 +0200
  • 05db2a9c39 Changed prebaked RCAS configurations into an array, as there is no need for a dynamically sized list here. Nico de Poel 2023-08-19 13:43:07 +0200
  • b4ddc41f1b Reworked input/output resource management using a new RenderTargetView struct, which encompasses all relevant data required to bind textures from various sources. This eliminates the need for resource binding code outside of the core FSR2 classes, and makes the public API more strict and consistent. It also removes the need for the slightly awkward input/output resource debug checks. Nico de Poel 2023-08-19 13:33:44 +0200
  • 0cfce0334e Merge branch 'master' into fsr2 Nico de Poel 2023-08-14 11:59:06 +0200
  • 02427c2c42 [PPV2] PPB-6 Disabled compute effects on WebGL and Android OpenGL (#7936) Nico de Poel 2023-08-14 11:58:38 +0200
  • 56d0050a72 Create opaque-only color buffer copy after opaque-only post-processing is done, and use the correct color format for the copy. This creates a more accurate opaque-only reference for the auto-reactive pass, and improves compatibility with custom opaque-only effects. Nico de Poel 2023-08-14 11:53:06 +0200
  • 51c5a44c1a Set constant buffer data as part of the command buffers, instead of immediately. Nico de Poel 2023-08-14 11:47:04 +0200
  • 6221c9ea1f Use jittered camera projection for transparent rendering, as it does affect image reconstruction for certain specific effects, e.g. line renderers. Nico de Poel 2023-07-12 10:37:18 +0200
  • 5e498a6a2c Merge branch 'master' into fsr2 Nico de Poel 2023-07-11 10:03:52 +0200
  • afc5d4896f [PPV2] Fix AO on OSX (#7922) Nico de Poel 2023-07-11 10:03:27 +0200
  • a73b7ba0e2 Clear initial auto-exposure value to zero instead of negative one. Fixes black screen flashes on Metal when performing an accumulation reset. Nico de Poel 2023-07-08 19:48:12 +0200
  • 5ee49f68a8 Reset atomic counter on any kind of reset, not just on first execution. Fixes black screen on Metal when doing a history reset. Nico de Poel 2023-07-06 10:46:02 +0200
  • fe10480628 Refactored undo mipmap bias callback such that the RP integration does not need to maintain any bias offset state. Added NaN/Infinity check to the standard apply mipmap bias callback implementation. Nico de Poel 2023-07-05 12:55:53 +0200
  • f35b63f292 Made undoing of mipmap bias a distinct separate callback, so that it can be overridden by client apps. Skip textures that don't have mipmaps and thus don't have any use for a mipmap bias. Nico de Poel 2023-06-28 11:34:28 +0200
  • 0b7ae8ac05 Disable plugin importer settings on all FSR2 header include files Nico de Poel 2023-06-28 11:18:01 +0200
  • 3a98642307 Restore original camera target texture if it hasn't been reset after FSR2 is disabled Nico de Poel 2023-06-22 13:25:20 +0200
  • 807b05f3d8 Fixed input resource size again and ffs stop stubbornly making this same mistake over and over again Nico de Poel 2023-06-14 09:56:51 +0200
  • bdca6950c4 Set the dynamic resolution flag when appropriate. It doesn't actually do anything, but it's good form to include it. Nico de Poel 2023-06-13 19:39:32 +0200
  • 17eb3f7700 Cleaned up the dynamic resolution feature by allowing dynamic scale to be disabled on screen-space RTs and globally disabling dynamic res only once, after upscaling. Nico de Poel 2023-06-13 18:33:10 +0200
  • 2bbb4f3a1f Fixed incorrect scaled render size during FSR dispatch because of course, global variables and side-effects are bad m'kay. At least dynamic scaling works now, so we can go from here. Nico de Poel 2023-06-13 16:17:03 +0200
  • f93e371c2c Fixed camera viewport getting double scaled. This gets us back on track again. Nico de Poel 2023-06-13 16:12:03 +0200
  • 3ae0a91944 Disable dynamic resolution on render targets created during and after FSR2 upscaling. Nico de Poel 2023-06-13 15:10:21 +0200
  • 9b15d2b84f Reworked dynamic resolution to use ScalableBufferManager. Doesn't actually work correctly yet, but that'll be the next step. Nico de Poel 2023-06-13 13:05:38 +0200
  • d37752e4e9 Merge branch 'stable' into fsr2 Nico de Poel 2023-06-13 12:01:52 +0200
  • 1e2e8b6a12 Release FSR2 resources when it's not in use. This frees up VRAM but also ensures that the mipmap bias is undone when switching to another AA option. stable Nico de Poel 2023-06-13 11:54:13 +0200
  • c6c45fc2bc Moved management of aliasable resources to the Fsr2Resources class and gave the methods more logical names. Nico de Poel 2023-06-12 15:41:42 +0200
  • 314290d684 Merge branch 'stable' into fsr2 Nico de Poel 2023-06-12 11:57:26 +0200
  • 70c7ea0e51 Restored compatibility with Unity versions older than 2021.2, which didn't have the LocalKeyword struct yet. Nico de Poel 2023-06-11 17:37:19 +0200
  • 6504adeea6 Create temporary resources at actual render size, reducing VRAM usage when dynamic resolution is in effect. Nico de Poel 2023-06-11 15:01:30 +0200
  • 2cc09085b6 Merge branch 'stable' into fsr2 Nico de Poel 2023-06-10 17:17:55 +0200
  • 7ba0dc48dc Updated shaders to FSR 2.2.1 Nico de Poel 2023-06-10 17:17:29 +0200
  • 4707ce8364 Implemented dynamic scaling through a custom scale factor. No ScalableBufferManager involved. Doesn't work nicely with MSVO AO, but otherwise does the job. Nico de Poel 2023-06-10 16:20:16 +0200
  • 61ddd2a61b Added script for debug display and input Nico de Poel 2023-06-10 14:36:11 +0200
  • 2ad8ac59bf Merge branch 'master' into fsr2 Nico de Poel 2023-06-07 11:02:06 +0200