PS4 Pro, despite its superior hardware does have limitations when it comes to running Linux. One such limitation that has come to notice recently is the faulty Vulkan implementation on PS4 Pro running Linux. Many of you on a Linux distro on PS4 Pro have complained of Wine and emulation games like RPCS3 or Dolphin freezing or even refusing to start. And today, I will tell you how you can fix Vulkan issues like game freezing and crashes on PS4 Pro running Linux.
Let me be clear in the beginning itself. This fix might not yet activate the enhanced GPU acceleration on PS4 Pro. In other words, following this tutorial might not make your PS4 Pro outperform a PS4 Slim on Linux. That is still in the works hopefully. But, following this tutorial, your PS4 Pro will run games and emulation applications that crashed or froze earlier.
By the way, special thanks to Reo Au In and zerobou from the Discord group for testing it out on their PS4 Pros. And, also for providing me the videos of the solution working. By the way, if you want to be the first to test out new stuff by me and also for quick support, consider joining PS4Linux.com on Discord.
Why is Vulkan problematic on PS4 Pro running Linux?
It should be noted that the OpenGL renderer works fine on the PS4 Pro. It’s only the Vulkan backend that seems to be faulty. Some people contacted me and commented on my videos and posts saying that they can start games with OpenGL on RPCS3 and Dolphin, but choosing Vulkan meant instant crash. Another noteworthy observation is that Vulkan seems to work very well on the older distros, say, Fedora 32 and even Ubuntu 20.04.
In essence, this is an issue with the graphics drivers, especially Mesa. Something changed from Mesa 20/21 to the latest version, i.e., 22. And, this seems to have broken Vulkan on PS4 Pro. So, the solution is simple, right? Downgrade to Mesa 20/21. Unfortunately, it’s not that simple on the latest distros, i.e., Fedora 35/36 and Ubuntu 21.10/22.04. This is mainly because the dependencies for the older versions of Mesa can’t be met properly on the newer distros.
Moreover, some people would like the best of both worlds. Maybe some games and applications work great on the latest Mesa, but, others don’t. The solution I am going to present is going to help you keep multiple versions of Mesa and choose among them for running various applications and games. Keep reading!
Video Guide: Fix Vulkan freezing and crashes on Linux for PS4 Pro
How to fix game freezes and crashes on PS4 Pro Linux?
Interestingly, we have already implemented this solution for fixing graphical issues. Yes, I am talking about the Cyberpunk fix for PS4. So, given you are facing Vulkan-based crashes and freezing on PS4 Pro running Linux, just follow the steps given below to fix them.
- Download Custom Mesa for your distro from the Downloads section. Remember that, the package for Ubuntu will also work on PopOS. Similarly, the package for Fedora will work on Nobara and the one for Arch Linux also works successfully on Manjaro. Make sure to download the tar.xz archive and the mesa.sh script.
- Extract the tar.xz archive to the Home folder, i.e., /home/noob404. If your distro doesn’t have the folder noob404, you will have to create one on your own. Detailed instructions for the same are given in video above.
- Copy the mesa.sh script to a convenient location, say the desktop.
- Open a terminal and type
source $HOME/Desktop/mesa.sh
given you have .sh script on your desktop. - On the same terminal, run the problematic application. For example, to run Dolphin Emulator, type
dolphin-emu
and press Enter. - Set renderer to Vulkan and enjoy!
I keep updating the custom Mesa GitHub from time to time based on the feedback I receive from you guys. So, if a version of the custom Mesa doesn’t work for you, try another one.
Fix freezing and crashes on Steam on PS4 Pro Linux
The above instructions will work very well for running apps like Wine, Dolphin emulator, PCSX2, RPCS3, etc. But, it might not work for Steam. For Steam, you have to follow these instructions.
- Download Custom Mesa for your distro from the Downloads section. Download the tar.xz archive as usual. But, this time, download mesa-steam.sh script.
- Extract the tar.xz archive to the Home folder (/home/noob404). As said above, if your distro doesn’t have this folder, you will have to create one and give it appropriate permissions.
- Copy mesa-steam.sh to a convenient location, for example, the desktop.
- Given you copied it to the desktop, open a terminal in the Desktop and type
sudo chmod +x mesa-steam.sh
and press Enter. - Open Steam as usual. It doesn’t have to be through the terminal.
- Go to your game’s properties and under the Command type
~/Desktop/mesa-steam.sh %command%
after which you just save and close it. - Start the game and enjoy!
Conclusion
I hope you were able to fix the issue. As said earlier, thanks to the testers, the custom Mesa with its script has been able to fix the freezing and crashes on PS4 Pros running Pop OS, Nobara and Manjaro. If you face any issues while testing this out, let me know in the comments and I will get back to you.
You are the man noob404!
Issues with the PS4 Pro have been driving me batty! I assumed, being lucky and having a more powerful PS4 would be better but it’s been nothing but a headache trying to get Linux to work well with Vulkan. This 100% solved a ton of issues I’ve been running into.
Thanks a ton man!
Happy to help.
Hi, What are the next steps to research for enhanced acceleration of the pro model?
Hi,
Can I use this on a slim PS4 ?
Yup, if you are facing Vulkan issues.
Can this fix issues for Lutris too?
Technically, it can.
Yea… Hi It´s me again.. Pontus..
Guess what my question is about.. XD
Can you use this on Batocera? =D
and if that is the case, how? Because there is no desktop? =)
Thanks
Hi Noob,
Some Steam games I run crashes i.e. Halo: The Masterchief Collection, Aliens vs. Predator.
After adding the custom Mesa driver as above… I get errors: “Cannot start D3D11” or “D3D9 is broken.”
Any idea?
System specs:
PS4 Pro CUH-7215B
Kernel: 5.15.15 (by codedwrench)
Distro: Nobara 36
Thanks.