[Pkg-virtualbox-devel] Bug#889030: virtualbox: Windows10 guest flickers with nVidia drivers, there's a patch

Gianfranco Costamagna locutusofborg at debian.org
Thu Feb 1 12:29:04 UTC 2018


control: close -1
On Thu, 01 Feb 2018 11:40:35 +0100 Marius Mikucionis <mmikucionis at gmail.com> wrote:
> Package: virtualbox
> Version: 5.2.6-dfsg-2
> Severity: normal
> Tags: patch
> 
> Dear Maintainer,
> 
> I am running Windows 10 guest and the screen flickers when something is (re)drawn,
> basically it's unusable.
> 
> Relevant configuration to reproduce:
> 1) nVidia drivers on the host.
> 2) virtualbox guest additions with 3D acceleration enabled.
> 3) enabled 3D accelaration in the Windows 10 machine settings.
> 
> One workaround is to disable 3D acceleration, but here I found a better solution:
> 
> https://techblog.devlat.eu/2017/04/07/screen-flickering-in-virtualbox-with-3d-enabled/
> in particular it says:
> 
> With nVidia drivers on the host, a race condition happens, causing buffers to be swapped (i.e. picture to be shown) before rendering is completed by the client, hence the flickering.
> The only workaround is to change (comment out actually) a single line in VirtualBox source and recompile it. After recompilation is done, it is actually possible to just replace a single freshly compiled file, VBoxOGLrenderspu.so, which is located in /usr/lib/virtualbox/. No need to uninstall the “original” VirtualBox and install the self-compiled one.
> 
> The patch is just one line:
> https://www.virtualbox.org/attachment/ticket/13653/vbox-NVIDIA-fix-v2.patch.txt
> --- /home/alexey/vbox-orig/VirtualBox-5.0.0_BETA4/./src/VBox/HostServices/SharedOpenGL/render/renderspu_glx.c   2015-05-18 18:02:05.000000000 +0300
> +++ ./src/VBox/HostServices/SharedOpenGL/render/renderspu_glx.c 2015-05-22 23:33:33.000000000 +0300
> @@ -1922,11 +1922,10 @@
>              XSync(window->visual->dpy, 0);
>          }
>      }
>  }
>  
> -#define CR_RENDER_FORCE_PRESENT_MAIN_THREAD
>  
>  void renderspu_SystemVBoxPresentComposition( WindowInfo *window, const struct VBOXVR_SCR_COMPOSITOR_ENTRY *pChangedEntry )
>  {
>      /* the CR_RENDER_FORCE_PRESENT_MAIN_THREAD is actually inherited from cocoa backend impl,
>       * here it forces rendering in WinCmd thread rather than a Main thread.
> 
> 
> Perhaps this patch can be included in Debian.
> 

Hello, thanks for the patch!
There is a runtime variable that you can use to disable that thing, however I don't like to apply such patches, until upstream merges them.
https://www.virtualbox.org/ticket/13653/
I pinged upstream, I'll include in case they ack it

thanks

G.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-virtualbox-devel/attachments/20180201/d56b4260/attachment.sig>


More information about the Pkg-virtualbox-devel mailing list