Intel’s XeSS upscaling technology has finally been detailed to the public. Similar to AMD’s FSR, XeSS is a direct response to NVIDIA’s highly marketed AI-based DLSS upscaling solution. However, unlike the former, the latter is based on the same principles as DLSS and can be even thought of as its inter-architectural adaptation, at least on paper.
Both DLSS and XeSS take the low-resolution image plus the jitter offsets and motion/velocity vectors as the input and reconstruct the high-resolution image using a convolution neural network aided by previously rendered 4K frames (temporal feedback). The output is fed to the post-processing engine and finally displayed on the screen.
The differences arise when you look into how the same kind of technology is run on different hardware units. While DLSS uses the Tensor cores (or so NVIDIA claims), Intel’s XeSS can run on either the vector units using mixed precision compute (FP16) or on the XMX matrix units (same as the Tensors). It’s worth noting that despite being significantly more complicated, the XMX units are only slightly faster than the vector units (using FP16/DP4a) in upscaling the same images.
Makes you wonder why Intel has crammed a crapton of those XMX units onto its DG2 hardware if the difference is so minute. My guess would be that it plans to spin off XeSS as a hybrid technology, where it can be run using both mixed-precision compute as well as the specialized XMX units. The former would be open to non-Xe architectures (such as Navi and Turing/Ampere) while the latter would be limited to DG2 and its successors. This would not only improve adoption but also make sure that the technology runs best on Xe silicon:
You can see a side-by-side comparison of XeSS and 4K native with magnification in the below image. As you can conclude, it looks nearly as good as DLSS 2.0.
Alongside XeSS, Intel is working on a ton of other open-source technologies such as Embree (CPU driven AVX2 ray-tracing), denoisers, and other upscaling methods as well. You can check some of them out in the video below: