Add PRIME documentation
This commit is contained in:
parent
d3890c110a
commit
4a3ec82256
1 changed files with 101 additions and 0 deletions
101
docs/PRIME.md
Normal file
101
docs/PRIME.md
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
---
|
||||||
|
How to make Proton work with PRIME
|
||||||
|
---
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
PRIME is a technology that allows one GPU to perform graphics rendering and
|
||||||
|
another GPU to display the result on the screen.
|
||||||
|
|
||||||
|
This document assumes that PRIME / GPU offloading is configured and working
|
||||||
|
for native software and will touch only on things specific to Proton.
|
||||||
|
|
||||||
|
If you need help with configuring PRIME in the first place you may find the
|
||||||
|
following resources useful:
|
||||||
|
|
||||||
|
* https://wiki.archlinux.org/index.php/PRIME
|
||||||
|
* https://wiki.debian.org/NVIDIA%20Optimus
|
||||||
|
|
||||||
|
|
||||||
|
Here, the two most common PRIME scenarios are covered, but the content should
|
||||||
|
be enough to troubleshoot and make any other configuration work.
|
||||||
|
|
||||||
|
|
||||||
|
## AMD -> Integrated Intel (Mesa -> Mesa)
|
||||||
|
|
||||||
|
In Steam, set your game's Properties -> GENERAL -> LAUNCH OPTIONS to:
|
||||||
|
|
||||||
|
DRI_PRIME=1 %command%
|
||||||
|
|
||||||
|
That's it. This should be enough to have everything working.
|
||||||
|
|
||||||
|
|
||||||
|
## Nvidia -> Integrated Intel (Nvidia's Proprietary Driver -> Mesa)
|
||||||
|
|
||||||
|
In Steam set your game's Properties -> GENERAL -> LAUNCH OPTIONS to:
|
||||||
|
|
||||||
|
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%
|
||||||
|
|
||||||
|
For most games, Nvidia GPUs are reported as AMD GPUs to workaround issues with
|
||||||
|
NVAPI. This means that DXGI will report your GPU as RX480. Because of that
|
||||||
|
DXVK/VKD3D won't recognize the vendor/product ids and will pick a GPU on their
|
||||||
|
own, so you have to add other options to force the correct choice.
|
||||||
|
|
||||||
|
DXVK (used for DirectX 9-11 games) takes GPU name so you might have to
|
||||||
|
prepend the following to 'LAUNCH OPTIONS': `DXVK_FILTER_DEVICE_NAME="GeForce"`.
|
||||||
|
A different or more specific name may be required (e.g. "Quadro").
|
||||||
|
|
||||||
|
VKD3D-Proton (used for DirectX 12 games) takes GPU id as reported by the
|
||||||
|
`vulkaninfo` program (usually packaged as `vulkan-tools`). In this case you
|
||||||
|
have to prepend the following to 'LAUNCH OPTIONS': `VKD3D_VULKAN_DEVICE=0`.
|
||||||
|
Replace `0` with the appropriate GPU id.
|
||||||
|
|
||||||
|
|
||||||
|
# Troubleshooting
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
Having vsync enabled in-game is known to cause problems in PRIME
|
||||||
|
configurations. If you experience poor framerates / freezes try disabling
|
||||||
|
vsync.
|
||||||
|
|
||||||
|
## Device selection
|
||||||
|
|
||||||
|
To make sure that all libraries have selected the correct GPU you can check
|
||||||
|
the logs.
|
||||||
|
|
||||||
|
In the game's properties set the following 'LAUNCH OPTIONS':
|
||||||
|
|
||||||
|
PROTON_LOG=1 WINEDEBUG=+d3d VKD3D_DEBUG=trace
|
||||||
|
|
||||||
|
After running the game, you should find a file named `steam-$APPID.log` in your
|
||||||
|
Home directory.
|
||||||
|
|
||||||
|
For wined3d/DXGI, look for:
|
||||||
|
|
||||||
|
```
|
||||||
|
trace:d3d:wined3d_adapter_init_gl_caps GL_RENDERER: "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.9-zen1-1-zen, LLVM 11.0.1)".
|
||||||
|
```
|
||||||
|
|
||||||
|
For DXVK, look for:
|
||||||
|
|
||||||
|
```
|
||||||
|
info: DXVK: v1.7.3-36-g85c70ad5
|
||||||
|
...
|
||||||
|
info: AMD RADV POLARIS10 (ACO):
|
||||||
|
info: Driver: 20.3.3
|
||||||
|
info: Vulkan: 1.2.145
|
||||||
|
```
|
||||||
|
|
||||||
|
For VKD3D-Proton, look for:
|
||||||
|
|
||||||
|
```
|
||||||
|
trace:vkd3d_trace_physical_device_properties: Device name: AMD RADV POLARIS10 (ACO).
|
||||||
|
trace:vkd3d_trace_physical_device_properties: Vendor ID: 0x1002, Device ID: 0x67df.
|
||||||
|
```
|
||||||
|
|
||||||
|
Refer to the main README and each project's own documentation for more details
|
||||||
|
on logging. Extra logging can destroy game performance. Make sure that you
|
||||||
|
clear your 'LAUNCH OPTIONS' after troubleshooting.
|
Loading…
Reference in a new issue