Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[doc] requirements: Add section encouraging DMABUF use for iGPUs #1117

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions doc/install_libvirt.rst
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ Looking Glass to use your GPUs DMA engine to transfer the frame data.
ivshmem_kvmfr
ivshmem_shm

.. seealso::

:ref:`igpu_kvmfr_recommended`


.. _libvirt_spice_server:

Expand Down
22 changes: 20 additions & 2 deletions doc/requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ At this time the recommended configuration is as follows:
* AMD or Intel brand GPU for the client application (usually your host system).
* NVIDIA brand GPU for the guest system (virtual machine).

The reason for these recommendations are as follows:

AMD or Intel for the client
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -78,3 +76,23 @@ NVIDIA unlike AMD do not seem to suffer from the same stability issues as AMD
GPUs when operating as a passthrough GPU, however due to the closed source
nature of their drivers NVIDIA can not make use of the DMABUF feature in the
Linux kernel unless you use the open source NVIDIA drivers.

.. _igpu_kvmfr_recommended:

iGPUs should use DMABUF
^^^^^^^^^^^^^^^^^^^^^^^

While `DMABUF` with the `KVMFR module <ivshmem_kvmfr>` offers performance
benefits for all users, for the often bandwidth-starved users with an iGPU on
their host it's considered necessary for a decent experience.

When using a normal SHM file, many GPU drivers will copy incoming frames from
shared memory to an intermediary buffer, then upload it from that buffer to the
GPU's framebuffer. The KVMFR module will instead use the GPU's copy engine to
download incoming frames directly from shared memory without using an
intermediary buffer. This is especially helpful to iGPU users as it frees up RAM
bandwidth, which an iGPU already uses extensively.

An added benefit: since the upload is done with the iGPU's copy engine, the CPU
load is reduced as the upload is done by the iGPU module rather than the
processor cores.
4 changes: 3 additions & 1 deletion doc/words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,16 @@ DirectX
distros
dmabuf
dmesg
downsample
downsampling
downscaler
downscaling
downsample
framebuffer
fullscreen
gcc
globalFullScreen
gnif
hypervisor
i3
imgui
ini
Expand Down
Loading