SGSR is an upscaling technique specifically created to give the ultimate performance on mobile devices!
It creates high quality and resolution frames based on lower resolution input. By using this, your project can run in a lower resolution without losing visual quality and increasing the framerate!
SGSR will offer better visual fidelity than FSR 1 with even better performance. SGSR is the perfect upscaling solution for mobile devices!
Easy to use
Simply drag our SGSR component on your camera and you’re all set to go!
Both Built-in and URP are a simple drag and drop and will work with Unity’s Post-Processing Stack!
Current supported Unity Render Pipelines
Built-in (BIRP) and Universal Render Pipeline (URP).
The link on your store page points to FSR’s github instead of SGSR’s.
Also, since I’m interested in potentially integrating this with out post effect, how would I go about doing that? Would I just Graphics.Blit with a lower res RT to the backbuffer with a material with your shader and that would just work?
I take it you’re talking about BIRP? If you want to integrate it without PP stack then it may take a bit more work. If you got FSR 3, you could look at FSR3_BIRP.cs for inspiration. I can also help you with it, probably best to dm me on discord!
Big update on one of the single most requested upscaling features: VR Support! I’ve been working tirelessly these last few days on researching and prototyping for VR and I’m happy to let you know that both FSR 1 and SGSR are currently working for PCVR (OpenVR/SteamVR and OpenXR/MetaVR) for BIRP Multi-pass and URP Single and Multi-pass! I’ve updated my Custom Post-Processing Package (link: https://thenakeddev.com/Tools/Upscaling for Unity/com.unity.postprocessing@3.4.1.zip). Update it and it should work, no need to also update the FSR 3 - Upscaling for Unity/SGSR Mobile - Upscaling for Unity packages!
Fun fact, SGSR Mobile - Upscaling for Unity worked out of the box for URP!
Note: I’ve done a lot of testing but I’m sure there are still a lot of edge cases were thing break, so please let me know if you run into any issues and I’ll try to fix them!
Roadmap (and in this order):
OpenVR & OpenXR Support for FSR 1 and SGSR for BIRP
OpenVR & OpenXR support for SGSR for URP
Standalone VR support for SGSR for URP
Standalone VR support for FSR 1 and SGSR for BIRP
OpenVR & OpenXR support for FSR 3/DLSS/XeSS for BIRP
OpenVR & OpenXR support for FSR 3/DLSS/XeSS for URP
I have a virtual reality project (meta Quest 3) that I can’t optimize. I am looking for solutions to implement. My project has a large number of resources in the scene, 1M tri, too much callbacks, backed lights, etc. I saw that in your profile you have three tools: FSR3, DLSS and SGSR. Could you tell me if the SGSR (SGSR Mobile - Upscaling for Unity) tool would really improve the performance of my application? Currently my application runs at about 30FPS on average, I need to increase it to 60-70 for meta quest 3 to work well. Thank you.
What renderpipeline are you on? Generally SGSR does great GPU performance optimalisation, with its super fast algorithm. However if you are CPU bound it may not help (enough). But for VR projects its very easy to get GPU bound, in which case SGSR will help a lot.
I’ve already seen quite a few people having massive performance improvements on the Quality/Balanced setting of SGSR.
I’m unsure of the quality and performance of the Meta Super Resolution integrated in OVR. In any case, with SGSR Mobile, you’re not bound to using OVR Manager.
Hey, just got your SGSR asset. Works great!
I plan to use it on a Quest 3 project that is GPU bound.
I have a couple of questions:
I tested the asset in combination with different levels of foveated levels. From the oculus performance overlay, it seems that foveated doesn’t actually save any GPU time (although I do see the foveated artefacts on the top of the display). Am I correct in assuming that somehow foveated is only applied AFTER the Snapdragon upscaling magic (and thus, actually only degrading the final image without any performance benefit) ?
I see in your doc that camera stacking is not supported on URP. Is this because of a technical showstopper or is this something that could potentially be added in a future version ? (I tested a stacked camera and saw how the buffers end up with a different scale). I don’t absolutely need this feature, I could work around the limitation, but I’m just wondering.
I can find very little documentation in how Unity actually does the foveated rendering, In theory if you see degraded image quality with using it, than it should also have some performance benefit. How much performance gain do you get when not using SGSR? It could be that SGSR is allowing the GPU to run less than 100%, making foveated rendering only decrease the GPU load more. But if it’s already lower than 100%, making the project CPU bound, then foveated rendering doesn’t provide more performance gain. But I can be mistaken here.
Camera stacking is complex, even more so in VR. For PC platforms I have implemented a working version, for VR I haven’t tested it yet. If you need it, let me know and I can see if I can make it work. However, know that it will add more CPU overhead, so for performance reasons, it’s best not to use multiple camera’s, even stacked!
I usually use camera stacking for world space UIs (so that they don’t have any postprocess). But in the case of my Quest VR project, post processing is a bad idea anyway so I won’t need camera stacking in that context.
I’ll run more tests with SGSR/Foveated to see if I can make sense of it. Unity doesn’t do anything special, other than setting the proper flags in the oculus drivers. As far as I know, foveated rendering is a low level hardware thing handled directly by snapdragon, probably changing the render tile sizes based on screen location to save pixel shading workload. I have used it in other projects and I see an immediate effect on the various meters that the oculus overlay has, but not when used in conjunction with upscaling. I’ll look for documentation on snapdragon to see if they explain how the pipeline works with both foveated and upscaling. If I find anything interesting, I’ll just post it here for reference for other users.
Well it is specifically created by Qualcomm for their Snapdragon chips used in many Android phones, so it will probably work great on their modern chips. The issue is that it will definitely not work great on older phones and probably not as well on phones without the Snapdragon chip either.