Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Official AMD FidelityFX Super Resolution (FSR) preview now available!

Discussion in 'High Definition Render Pipeline' started by UnityMaru, Jul 15, 2021.

  1. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Thanks. I dont find the profiler particularly useful most of the time. It has helped me definitely locate slow downs in my scripts (and all of that has been optimised almost to perfection), but when it comes to rendering etc it just shows generic calls in unity. Not sure how I could use the info to speed up rendering, perhaps I can't HDRP is quite heavy it seems. Or maybe I just have too many objects/polys on screen etc, I do use A LOT of realtime lights (probably the issue), but no shadows..also my levels are big and wide open.. PlayerLoop is using 72%, DoRenderLoop is 50% of that, the other 20% is my scripts etc. cpu takes around 30ms, rendering around 28 ms.

    I will try a build soon, right now build fails and unity doesnt tell me why. Seems difficult to maintain a situation where builds always work. And no error message is just bizarre.

    Thanks for all the tips!
     
  2. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Ps, for dynamic resolution I used the script here, but I cant see how it actually carries out any work at all. Is there some other code that does it properly?
     
  3. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Im trying the beta to play with FSR, but I get 2 of these errors:

    'ShaderConfig' does not contain a definition for 's_GlobalMipBias'

    it also says
    AmbiguousMatchException: Ambiguous match found.
    System.RuntimeType.GetMethodImplCommon (System.String name, System.Int32 genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConv, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) (at <231f6c5a042647adb84a9cc42c982c35>:0)
    System.RuntimeType.GetMethodImpl (System.String name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConv, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) (at <231f6c5a042647adb84a9cc42c982c35>:0)
    System.Type.GetMethod (System.String name, System.Reflection.BindingFlags bindingAttr) (at <231f6c5a042647adb84a9cc42c982c35>:0)
    System.Type.GetMethod (System.String name) (at <231f6c5a042647adb84a9cc42c982c35>:0)
    GooglePlayServices.UnityCompat.GetUnity56AndAboveApplicationIdentifier (UnityEditor.BuildTarget buildTarget) (at /Users/smiles/dev/src/unity-jar-resolver/source/PlayServicesResolver/src/UnityCompat.cs:357)
    GooglePlayServices.UnityCompat.GetApplicationId (UnityEditor.BuildTarget buildTarget) (at /Users/smiles/dev/src/unity-jar-resolver/source/PlayServicesResolver/src/UnityCompat.cs:411)
    GooglePlayServices.PlayServicesResolver.GetAndroidApplicationId () (at /Users/smiles/dev/src/unity-jar-resolver/source/PlayServicesResolver/src/PlayServicesResolver.cs:955)
    GooglePlayServices.PlayServicesResolver.<PollBundleId>m__31 () (at /Users/smiles/dev/src/unity-jar-resolver/source/PlayServicesResolver/src/PlayServicesResolver.cs:1329)
    GooglePlayServices.PlayServicesResolver+PropertyPoller`1[T].Poll (System.Func`1[TResult] getCurrentValue, GooglePlayServices.PlayServicesResolver+PropertyPoller`1+Changed[T] changed) (at /Users/smiles/dev/src/unity-jar-resolver/source/PlayServicesResolver/src/PlayServicesResolver.cs:343)
    GooglePlayServices.PlayServicesResolver.PollBundleId () (at /Users/smiles/dev/src/unity-jar-resolver/source/PlayServicesResolver/src/PlayServicesResolver.cs:1329)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at <9de32d58e117474d9df95577a7ba5c6d>:0)

    updating hdrp config in the package manager helped, but it caused 4x reimport loading into this beta.. so yeh still waiting 4 days later lol.
     
    Last edited: Sep 5, 2021
  4. newguy123

    newguy123

    Joined:
    Aug 22, 2018
    Posts:
    1,248
    so FSR and DLSS only works on 2021.2 correct?

    Any chance of getting it backported to 2021.1?
     
  5. DioLeChien

    DioLeChien

    Joined:
    Sep 29, 2021
    Posts:
    1
    Thanks so much for this :)

    @SebLagarde

    I've followed your suggestion and reached out last week to the NVidia DLSS team directly. Alas, there's been no reply as of yet... Do you happen to know if there's any particular reasoning as to why NVidia's in-house plugin for built in RP isn't being made available via their site/GitHub directly?

    I'm still using 2019.4 with most of my projects for editor stability as well as plugin compatibility, so I'm praying that I'll soon be able to try both techniques with the built-in RP without having to jump to 2021.2 where a lot of my plugins remain unusable.
     
    Last edited: Oct 6, 2021
  6. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    How do I actually 'use' FSR though? I've gotten as far as getting it set as the filter. I guess what i'm trying to ask is - how do I actually make it work and how do I change between the quality modes? So far the only thing I even know how to do is simply adjust the mix/max resolution thing, whether that's the proper way to do it i'm not sure.
     
  7. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    What do you mean?
    If you still can't have it activated. Activate dynamic res in your camera, then in your settings (HDRP asset)

    After that, tick Force Screen Percentage, found in your active HDRP asset within dynamic res settings. And choose a screen%. For upscaler, choose FSR
    To check if it really is on, set it to something really low, like 20%. Make sure you're in playmode, you should see a big change in your game view

    As for settings, there's no FSR settings. I really wish they exposed the sharpening parameter.
    Min/Max is meant to be used for 'dynamic' res, where it automatically adjusts based on your GPU performance.
    You have to code the GPU timings yourself though, it doesn't come built-in.
    In 2021.2, you can also change the dynamic res upscaler with code, whereby before you had to change quality levels(HDRP assets).
     
  8. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    Ahh okay thank you.
    Just wasn't sure if I was doing it right, as i couldn't find really any info on how to actually use it.

    But thank you, I see it working now.
     
  9. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    To be fair, this is quite confusing today. I've said it multiple times in past that there really should be some official guidelines on how to use FSR and DLSS properly. For example it may come as a surprise to many after media promoting FSR as "AMD's DLSS" that FSR doesn't actually do antialiasing. You still have to couple it with some antialiasing solution or the end results will look horrible :)
     
  10. SyR_Games_1

    SyR_Games_1

    Joined:
    Sep 7, 2021
    Posts:
    1
    How do I install the fsr package?
     
  11. alloystorm

    alloystorm

    Joined:
    Jul 25, 2019
    Posts:
    88
    FSR is so overrated comparing to DLSS. It's not even close to what DLSS is delivering.

    You just get a blurier render with lower resolution. To be honest simply reducing screen resolution might give you better overall result since at least that keeps the sharpness.
     
  12. MP-ul

    MP-ul

    Joined:
    Jan 25, 2014
    Posts:
    230
    DLSS in only for Nvidia HARDWARE, thats a big drawback if you want to use the tech for mobile or older gpu's
     
    SMHall likes this.
  13. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    If you have an RTX card, DLSS is a no-brainer. Even if your not upscaling, the anti-aliasing alone is amazing and superior to all other common AA methods.

    FSR is not bad, it's a good general upscaling method. I tried it in HDRP and it's pretty nice. Wasn't blurry at all for me, there's a sharpening pass that does a good job. Usually it's even sharper than native res -- also unity 2022.2 will expose sharpening property for FSR so that's nice.

    FSR and Temporal upsampling are the alternatives. And it's nice to have these two so your not stuck with TAU or FSR only. (There's others but these two are the best alternatives)
     
    SMHall, sqallpl, Wolfos and 1 other person like this.
  14. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    2021.2.16 release notes:
    • URP: Added support for FidelityFX Super Resolution 1.0 upscaling filter.
    anyone has tried it? Do they know supported devices? does it run on mobile and vr?
     
  15. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,115
    I think the fair statement is to say that AMD made claims that went along the lines of "FSR as good as DLSS but works on all GPUs". So close to over-promotion.

    As for overrating it, I don't think anyone truly believes that FSR produces better quality than DLSS. They are not even in the similar tier: FSR is really a sharpening filter, and DLSS is AI driven pixel generator. And yes I choose DLSS over FSR any day. No brainer.
     
    Rewaken, Ruchir and PutridEx like this.
  16. sqallpl

    sqallpl

    Joined:
    Oct 22, 2013
    Posts:
    384
    @UnityMaru

    Hi

    Are there any plans to implement FSR 2.0? Can we expect it to be available in the 2022 release stream?
    BTW. I don't see any word on DX11 support. Do you know if it's supported by FSR 2.0?

    Thanks.
     
  17. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    bit late reply but it doesn't work great for mobile VR. I'm assuming you mean Quest platform now. Basically you lose the gains you get from being able to render at lower resolution because you pay for FSR and PP overhead in general. Quests just don't work nicely with PP. In my own testing, I was left with similar perf but with way worse image quality with FSR vs if I just rendered the same scene using native Quest 2 resolution.
     
  18. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
  19. mick129

    mick129

    Joined:
    Jun 19, 2013
    Posts:
    228
    I'm also wondering the same question.
     
    DragonmoN likes this.
  20. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Looks like Unity has a mechanism in place to quickly add these options so lets have them :p
     
    Stuart_Warp, DragonmoN and mick129 like this.
  21. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,115
    Adding FSR2.0 to existing versions shouldn't be too hard (Maybe a straight replacement of current FSR1.0) and makes a lot of sense as the current FSR1.0 is really not that great anyway.

    Although honestly, I can't really imagine FSR2.0 being much better than the current TAAU.
    Hope AMD proves me wrong.
     
    ROBYER1 likes this.
  22. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,954
    FSR 1.0 is just a simple shader that you add to your pipeline in the stage that you want it to be executed. FSR 2.0 is much closer in difficulty to DLSS 2.0 but like was mentioned earlier it doesn't officially support DirectX 11 which is likely the real reason it hasn't been implemented yet.
     
    Last edited: Jun 23, 2022
  23. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    FSR 2.0 source code also officially got out only yesterday (but of course Unity could have had behind the doors access to it all along):

    https://github.com/GPUOpen-Effects/FidelityFX-FSR2

    They did have bit cryptic message about DX11 on their landing page: "Developers interested in using DirectX 11 should contact their AMD representative about this topic.".
     
  24. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    It doesn't look like it can be supported in mobile from the specs, right? :(
     
  25. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,954
    Right, but even if it were supported you wouldn't likely be able to run it on anything but top of the line hardware since there is overhead associated with the upscaler that quickly cancels out performance gains. Its part of why DLSS only goes back to GeForce 10 series and FSR only back to RX 400 series.
     
    ROBYER1 likes this.
  26. ROBYER1

    ROBYER1

    Joined:
    Oct 9, 2015
    Posts:
    1,450
    Also the architectural differences of mobile cpu gpu vs desktop should be taken into consideration, for mobile VR I would look into using Fixed-Foveated Rendering techniques which the Meta Quest supports.
     
  27. NestorVG

    NestorVG

    Joined:
    Feb 12, 2019
    Posts:
    30
    + URP + VR
     
  28. macube

    macube

    Joined:
    Jul 16, 2017
    Posts:
    37
    Any news about FSR 2.0 Update for unity urp ?
     
    lacas8282 likes this.
  29. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,641
    is FSR working with URP now? IT works fine and beautifully with HDRP, but with URP I don't see any difference between any mode, which also is worrying, because I don't even see the difference between point and bilinear.
    also I start to see degradation for values < 0.5 in any mode

    2021.3.11
     
  30. wwWwwwW1

    wwWwwwW1

    Joined:
    Oct 31, 2021
    Posts:
    761
  31. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,641
    wwWwwwW1 likes this.
  32. pwka

    pwka

    Joined:
    Sep 19, 2012
    Posts:
    49
    Is there any way to control FidelityFX in HDRP? All I see is a selection in dynamic resolution, no controls, etc. and all I get is an overly sharpened image. The URP and AMD presentations have some sort of control over this. Any idea where to look? Thanks
     
  33. HIBIKI_entertainment

    HIBIKI_entertainment

    Joined:
    Dec 4, 2018
    Posts:
    594

    FSR 1.0 not s'much. You have your screen target resolution min max in the project settings under Dynamic resolution.
    But since it's open source you can script from it to allow custom tooling.

    FSR 2.0 and 3.0 is where profiles and more control points became more of a UX
     
  34. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    URP has a parameter to control FSR sharpening, I don't remember if HDRP does as well, but I don't think so.
    If not, they should totally add it
     
  35. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,788
    There's a FSR Sharpness setting in HDRP
     
    pwka and PutridEx like this.
  36. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    Then I think it's in reverse, URP is the one that doesn't have it, maybe :D
     
    pwka likes this.
  37. pwka

    pwka

    Joined:
    Sep 19, 2012
    Posts:
    49
    This is great news!!! ...but where? Really, these scattered settings give me a headache :D
    URP have them in convenient place (https://forum.unity.com/attachments/bilinear-png.1041956/). However, I cannot find it for HDRP
     
  38. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,788
    i'm currently not on my dev pc. Last time i found the setting in the DSR section, where you can choose between dlss, temporal upscaler and fsr. That place
     
    pwka likes this.
  39. pwka

    pwka

    Joined:
    Sep 19, 2012
    Posts:
    49
    I would be very grateful if you could point me to these settings. This is what I have
     
  40. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,788
    It should be there, what unity version are you using?
     
    pwka likes this.
  41. pwka

    pwka

    Joined:
    Sep 19, 2012
    Posts:
    49
    Currently 2021.3.5f1 but I change version regularly. Now I quickly checked 2022.1.20 and it looks the same. I have never seen any settings for fidelityfx in HDRP
     
  42. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,788
    Oh i forgot i found that in 2022.2 beta
     
    pwka likes this.
  43. pwka

    pwka

    Joined:
    Sep 19, 2012
    Posts:
    49
    I'm not likely to flip our big project to any beta, but it's good to know there's hope ;) Thanks a lot for your time. Much appreciated!
     
  44. pwka

    pwka

    Joined:
    Sep 19, 2012
    Posts:
    49
    So it is indeed on 2022.2, but waiting 30 minutes after each click with ProjectSettingsWindow.MouseDown is a bit much for me. Are there any plans to add any controls for the older version?
     
  45. Alterego-Games

    Alterego-Games

    Joined:
    Jul 13, 2015
    Posts:
    350
  46. asatrian

    asatrian

    Joined:
    May 11, 2017
    Posts:
    8
    is amd fsr works on mac m1 ?
     
  47. chap-unity

    chap-unity

    Unity Technologies

    Joined:
    Nov 4, 2019
    Posts:
    760
    Yes.
     
  48. illustor

    illustor

    Joined:
    Dec 17, 2014
    Posts:
    1
    Does anyone have any information on URP FSR support for iOS metal?
    AMD announced DX11,12 and vulkan support. However, I couldn't find any support for the metal API.
     
  49. wwWwwwW1

    wwWwwwW1

    Joined:
    Oct 31, 2021
    Posts:
    761
    I think FSR 1.0 should support metal API (requires shader model 4.5).

    The URP FSR is done by the "Edge Adaptive Spatial Upsampling" shader (implemented by Unity), which is not the same as the original one (compute shader) provided by AMD.

    For HDRP, the FSR compute shader should also support metal API and it's not the original shader provided by AMD.
     
    Last edited: Apr 2, 2023
    illustor likes this.
  50. Alterego-Games

    Alterego-Games

    Joined:
    Jul 13, 2015
    Posts:
    350
    illustor, MP-ul and SunnySunshine like this.