From 65e6ecbe410cf915d67296ea1acad1ec13368207 Mon Sep 17 00:00:00 2001 From: Jonathan Rubenstein Date: Mon, 8 Apr 2024 06:53:11 +0300 Subject: [PATCH 1/3] [doc] requirements: Add section encouraging DMABUF use for iGPUs --- doc/requirements.rst | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/doc/requirements.rst b/doc/requirements.rst index 3b4cc1d1f..44576a4c7 100644 --- a/doc/requirements.rst +++ b/doc/requirements.rst @@ -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 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -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 ` 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. From d5a5453c4d3971b9869354c91da51051fb424082 Mon Sep 17 00:00:00 2001 From: Jonathan Rubenstein Date: Mon, 8 Apr 2024 06:58:17 +0300 Subject: [PATCH 2/3] [doc] install_libvirt: Link to iGPUs should use DMABUF --- doc/install_libvirt.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/install_libvirt.rst b/doc/install_libvirt.rst index aec21f74e..f31446ffb 100644 --- a/doc/install_libvirt.rst +++ b/doc/install_libvirt.rst @@ -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: From 21097bcd6d460b2563e6a1fbc38cf4aceaaef446 Mon Sep 17 00:00:00 2001 From: Jonathan Rubenstein Date: Mon, 8 Apr 2024 07:00:26 +0300 Subject: [PATCH 3/3] [doc] Add hypervisor and framebuffer to words.txt Used `python ./sort_words.py -s -a framebuffer -a hypervisor` This also properly sorted the list --- doc/words.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/words.txt b/doc/words.txt index 00c1ac904..4938baf73 100644 --- a/doc/words.txt +++ b/doc/words.txt @@ -16,14 +16,16 @@ DirectX distros dmabuf dmesg +downsample downsampling downscaler downscaling -downsample +framebuffer fullscreen gcc globalFullScreen gnif +hypervisor i3 imgui ini