Has there been any update on this so far? Considering how Intel wants the Arc Pro GPUs like my B70 to run local AI well on Linux it's confusing to see them not care about us being able to use the XMX cores for XeSS
I second this, a lot of new devices are coming out with Intel Arc G3 Extreme like MSI Claw and OnePlayer X3 and probably many other will follow since the new chip is the first material upgrade to handheld/mobile SOCs compared to older Z1/Z2 generations, so it will become more and more critical to natively support XeSS leveraging on native XMX cores as an alternative to FSR4.
I'm on an Arc B70 and vulkan reports VK_NV_cooperative_matrix2. Does this have everything needed for XeSS? I'm unsure how to test if this makes use of XMX, perhaps someone can recommend or write a benchmark?
There are just too many issues in is:issue state:open XeSS to flag them all, I guess that speaks to the popularity of this product. The one issue mentioning XMX wasn signaled.
There is also https://github.com/ccallawa-intel/wine/tree/xess-bleeding-edge-pr/dlls/xess but I don't think the proprietary side is available anywhere? This seems legal under the terms of Wine's LGPL.
I'm running a B70 on an Arch based distro so I'll gladly provide any info that could be useful.
Nothing extracted yet.
Feature Request
I confirm:
contain this feature already.
Description
I'm new to the Linux graphics stack and Linux gaming, but I do think Proton/Wine is the correct layer for this (please point me to the right project/people if I'm wrong here).
libxesshas two models in it: 1) Intel-optimized model that runs on XMX engines; 2) a fallback lower quality model that runs on DP4a instruction.Linux driver doesn't offer APIs to program XMX engines directly and there is no support for XeSS on Linux.
That's probably why games with XeSS in them don't start on Intel GPUs unless we hide the fact that we are using an Intel.
As a result, XeSS on Intel GPUs on Linux runs in the DP4a-fallback mode (so slower and lower quality).
I propose implementing missing APIs that
libxessis looking for to offload tasks to XMX engines and get XeSS running in the Intel-optimized mode on Intel GPUs.The good news is that it is indeed possible to run computations on XMX engines on Linux using the SYCL Joint Matrix Extension.
This extension allows for accelerating matrix multiplication using XMX engines, which is precisely what is needed for accelerating convolutional neural nets. Intel refers to XeSS as "AI-enhanced Upscaling," but in practice, it is likely a convolutional neural network (there is some supporting evidence inside
libxess).Justification
On Intel GPUs, when XeSS is enabled, games will run at a higher FPS and will have better image quality (because we'll be able to use Intel-optimized model and not the DP4a fallback)
Anecdotal evidence: on 16GB ARC 770 I'm getting more FPS and better image in Hogwarts Legacy when rendering at 1440p without upscalers than when using XeSS. Based on a couple YouTube videos, XeSS in Hogwarts performs much better on Windows on ARC GPUs.