Intel ARC + Linux: Is There a Workaround?

+
I'm using an Intel ARC 770 16 GB card on Linux (Steam/Proton) and though this combination may not be common, I assume that folks know that there's a bug which prevents you from launching Cyberpunk on Linux with an Intel ARC graphics card. Apparently the problem is in the Intel Mesa/Vulcan drivers when the Intel ARC tries to enable XeSS (Intel's version of DLSS). There's a kind of work around which requires manually building and installing development Mesa drivers which frankly I have no idea how to do. It's been over a month, and I'd kind of like to play. The best I can do is get on the bleeding edge distribution package for Mesa which is getting me to 23.1.3 but I'd actually need to get to 23.2-devl which is not available as any kind of plug and play distribution package I know of.

So, my question is, can I somehow manually set the options to not try to use XeSS when Cyberpunk launches? Is there some line in some config file I can edit to just tell it to use normal Rasterization and nothing more?

(Reference: https://www.phoronix.com/news/Intel-Not-Intel-Cyberpunk-2077 for the bug in question.)
 
I don't have an ARC GPU so maybe this won't be helpful. The game settings are stored in a file named "UserSettings.json" you should find below "<Steam Library>/steamapps/compatdata/1091500/pfx/drive_c/users/steamuser/AppData/Local/CD Projekt Red/Cyberpunk 2077". This file has a section that should look something like this:
JSON:
{
                    "name": "XESS",
                    "type": "string_list",
                    "is_dynamic": false,
                    "value": "Off",
                    "index": 0,
                    "default_index": 0,
                    "values": [
                        "Off",
                        "Auto",
                        "Ultra Quality",
                        "Quality",
                        "Balanced",
                        "Performance"
                    ]
},
By setting "value": "Off" you will disable XESS (the same way you'd disable it in the ingame menu). If the driver or the game does some weird things irrespective of this setting, this may not necessarily help you though.

With regards to Mesa: bleeding-edge Mesa packages tend to go under different names, depending on your distribution or the maintainer. I've seen "mesa-devel", "mesa-git" or just "mesa-" with the commit hash appended to the package name. Maybe you've missed one of these. If you are interested, I could also walk you through the process of building Mesa yourself (it's not terribly difficult, and you can use it exclusively for CP2077 without affecting the rest of your system in any way).
 
Thanks for the information! I'll try the configuration file change to see if it will have any effect. I share your sentiment that the game may try activating the code even if the setting is off, but it's worth a try. A day after I made this post I did find a different package that put me on the devel build. I don't know if it would have solved the Cyberpunk issue, because I wanted to finish up a game of Warlock 2 first, and a few turns into the game after updating the mesa drivers to the devel branch my PC crashed hard all the way to shutting the PC off completely and when I booted it back up it was running on my integrated graphics only. (Which I noticed because I was allowed to launch Cyberpunk, but at about 11 FPS. And I saw the detected hardware as my integrated graphics.) I tried to fix this by reinstalling the drivers and then it wouldn't boot at all. So I had to boot from a live USB and reinstall Manjaro.

I probably could have saved the installation, but I'm not a Linux expert and just lacked the skills.

So I'm reluctant to go to the full devel build of the Mesa drivers (I mean, it is marked as development for a reason) and will stick to the newest non-development version for now if changing the setting in the file will work.

Anyway, thanks again! I'll give it a try and see what happens.
Post automatically merged:

OK. Unfortunately defining the settings didn't work. It was already set to off anyway. (I had to specify to steam that I wanted to launch Cyberpunk on my integrated graphics first because the user settings file wasn't created until it was launched to the menu at least once.) I assume Cyberpunk goes through some checks as it loads to try different features of the graphics card it's being run on, including the XESS feature even though it's set to off in the settings.
 
Last edited:
You can also try spoofing the GPU vendorID reported to the game in an attempt to make it think it's not running on an Intel GPU. Create a file named "dxvk.conf" somewhere, with the following contents:
Code:
dxgi.customVendorId = ffff
Then launch Cyberpunk through Steam with the following launch option (and do keep your own stuff, in case you already have custom options set ;) )
Code:
DXVK_CONFIG_FILE=<full path to your dxvk.conf> %command%
 
That's an interesting idea. I'll give it a try.
Post automatically merged:

It was worth a try, but no dice. When the command is just "DXVK_CONFIG_FILE=/home/accountname/.local/share/dxvk.conf %command%" it just crashes as usual. (Black screen just after the launcher, about 4 minutes of nothing then it gives the crash popup and I send the crash log.)

When I use the below command to tell it to use my integrated graphics, but also tell it to use the spoofed config file it runs as it normally does on my integrated graphics. The benchmark seems to know what the graphic card is even when spoofing it since it shows up correctly at the end in the info screen.
"DRI_PRIME=1002:1636 MESA_VK_DEVICE_SELECT=1002:1636 DXVK_FILTER_DEVICE_NAME="Radeon" PROTON_LOG=1 DXVK_CONFIG_FILE=/home/accountname/.local/share/dxvk.conf %command%"

I presume that Cyberpunk is interrogating the graphics device directly during launch to get its capabilities.

Hopefully they'll get their stuff figured out before September. Otherwise I'll try switching back to the devel branch for the drivers and hope that it doesn't crash and die again.

Thanks again for the help though.
 
Last edited:
That sucks to hear, sorry. That "customVendorId" setting is hit-or-miss with DX12 games but it was enough to make the game crash for me when I set it to Intel's ID despite having a AMD GPU and also despite not using XeSS at all. I was hoping it might help you out :(

The next full release of Mesa is scheduled for the 2nd of August if things go smoothly - a good chunk ahead of Phantom Liberty, and hopefully more than enough time to make its way to you. If you don't want to bother with bleeding-edge Mesa you could wait it out for now.
 
Thanks for the attempt anyway. Luckily for me, the Intel ARC drivers have gotten a whole lot better very quickly. They're still leaving a lot of power on the table in some games, but they're really stable for the most part. I mean, I'm getting like a third of the frames I should be getting on a game like The Outer Worlds at about 26 FPS on minimum settings, but the awful hitching that was happening in the game a couple months ago is gone. So it's playable. On the other hand, Skyrim special edition with all the bells and whistles hits my 60 FPS limit and cruises butter smooth at about 30% of the card's available power. Fallout 4 which was also experiencing awful hitching a couple months ago is also cruising along at my 60 FPS limiter at about 50% of the available power and is butter smooth now. Similar experiences with so many other games. A couple of months ago they were more or less unplayable but now work perfectly. So I have high hopes for things to improve rapidly.

So the only real problem I have is with Cyberpunk at the moment. It's hard to say if the problem is due to the drivers or a bug in the Cyberpunk engine. It might be both. So hopefully it'll get worked out before the DLC. Before the XESS update Cyberpunk was running really well on ARC (again, leaving some power on the table hitting only about 43 FPS on Ultra when it should have been hitting more like 63) so I expect that things will only get better once it's worked out.

My current experience is that on non-development drivers version 23 or better, I haven't had any stability problems except for Cyberpunk. No crashes at all. Which is pretty good for running windows games on a Linux machine with a brand new GPU architecture. I wouldn't recommend it (and honestly, I'm planning on going full Team Red on my next rig as soon as AMD releases their next generation midrange cards) but I'm really surprised how well it all works, given the nature of the jenga tower that is gaming on Linux.
 
Top Bottom