If just applying the traditional Lanczos were enough, similar procedures would have existed in games for many, many years.
We also tested FidelityFX Super Resolution The source code of the procedure became public in the middle of the previous month, about which we also reported. There is no particular development regarding the AMD solution, but Alexander Battaglia, a journalist at Digital Foundry on Twitter it claimsthat NVIDIA drivers can request scaling based on the Lanczos algorithm, and because FidelityFX Super Resolution is based on the Lanczos algorithm, NVIDIA users can access this technology in any game.
The problem with the above statement is that it doesn’t completely cover reality, but it was taken over by a lot of media, even though the source code was available, it would have been safe to look at what was happening within the AMD process. Moreover, the company held several developer presentations after the release of FidelityFX Super Resolution, within which they explained in detail how much difference there is compared to the Lanczos algorithm, but let’s not rush so far ahead.
Let’s start with the fact that today’s graphics drivers actually have an option for GPU scaling. This has long been supported by more modern AMD and NVIDIA hardware, and is essentially a special component in the display engines into which the companies involved have implemented the Lanczos algorithm in a fixed-function form. The purpose of this is that if a monitor does not have a built-in scaler, the GPU can resolve the scaling instead, so that the image under native resolution can be displayed on the entire display without significant distortion. A simple solution, so a simple solution is offered by manufacturers, although nowadays it is very rare for a display that does not include a factory scaler, but it rarely happens, and scaling blocks implemented in GPU display engines can be considered a negligible cost with today’s transistor numbers. Of course, these still have a lot of limitations, so even companies that develop GPUs think it’s better to use a scaler for that particular monitor because it’s specifically designed to be display-specific. But for lack of a better one, there’s an escape route in GPUs, slow for years in all of them, not just NVIDIA solutions.
Of course, the question may be, if your AMD GPUs have such a scaler, why not use it for FidelityFX Super Resolution? Well, this hardware doesn’t reflect nearly the same problem that FidelityFX Super Resolution is designed to solve. Of course, GPD scaling can also be done at AMD from Radeon Software, for which you can request a Radeon Image Sharpening arming, just as NVIDIA has GPU scaling in the drive with another arming procedure. While they offer better quality through sharpening than simply displaying a lower-resolution image than the native, they can’t produce approximately the quality that FidelityFX Super Resolution does.
This is because FidelityFX Super Resolution is not just a simple Lanczos upscaler, it is much more complicated than that. On the one hand, the Lanczos algorithm is quite a reality with fixed-function hardware, but not so much with a compute shader, because it requires a relatively large number of special operations (sine function, reciprocal, square root). In these operations, GPUs are generally extremely slow because they do not run on the main ALUs, but on a small number of special ALUs. It’s no coincidence that FidelityFX Super Resolution has replaced the equation used by the Lanczos algorithm for approximation with one that uses only basic operations. This will reduce the accuracy somewhat, but the performance of the original algorithm will increase many times over, and this should be understood as a good 20-30 times tempo advantage. This was specifically needed because the Lanczos scaling algorithm would run fairly slowly on today’s GPUs without that modification if implemented in a compute shader. On many hardware, real-time processing would not be available, without which scaling up would be meaningless. For a video, it can still be assumed that there is a more serious delay in the calculation, but in an interactive game, it simply doesn’t fit in, it wouldn’t give a good experience at all.
So FidelityFX Super Resolution speeds up the performance of the Lanczos algorithm by several orders of magnitude, and there is another factor that is important, and that is image quality. Although Lanczos is an excellent general scaling algorithm, it has its fuss. Among other things, it generates so-called ringing image defects in its operation, which can be perceived as a soft ghost image along the edges in the image. For this reason, AMD’s EASU (Edge-Adaptive Spatial Upsampling) algorithm is not only a fast upscaling, but also an edge reconstruction solution. This is why FidelityFX Super Resolution is not characterized by ringing image error at all, as opposed to the traditional Lanczos algorithm. And here’s the answer to why AMD doesn’t use the scaling block built into the GPU; you can’t specify the image quality that FidelityFX Super Resolution produces because it doesn’t do approximately as accurate work. But there is nothing wrong with that in itself, because that is not the purpose of the target hardware involved within the GPU.
After scaling up with the EASU algorithm, FidelityFX Super Resolution even performs an arming using the RCAS (Robust Contrast-Adaptive Sharpening) algorithm. This is not the same as FidelityFX CAS (Contrast-Adaptive Sharpening) or RIS (Radeon Image Sharpening). Here, too, quality matters, because normal, even in-drive, sharpening solutions are designed to arm native resolution, and they can be said to produce good results by investing relatively little power, even without sharpening to start, so to speak, oil painting-like. make the final picture. Of course, they work at lower than native resolutions, but the nature of the problem is somewhat different, for which AMD has designed an alternative arming procedure. Although it requires much more power than the original CAS algorithm, it does a much better job with upscaled content. However, this more robust sharpening solution may not favor the HUD used in games, or even certain post-processing effects. There is no particular problem with this, because FidelityFX Super Resolution should be installed on the processing conveyor after tone mapping, and it is recommended to add effects and image elements to the image later that do not guarantee the good operation of the procedure.
Overall, you can request arming within the drives, GPU scaling, but not a solution like FidelityFX Super Resolution. Unfortunately, this has to be integrated into games to work really well, there is no alternative. If it were, AMD and NVIDIA would have built something similar in the device drivers a long time ago. However, in addition to the current image mapping, the problem itself is unsolvable with externally forced procedures.