gmc-holle / xfdashboard

Maybe a Gnome shell like dashboard for Xfce
GNU General Public License v2.0
120 stars 14 forks source link

Running as daemon won't allow other full screen applications to update the screen by flipping #181

Closed allan-null closed 4 years ago

allan-null commented 5 years ago

tl;dr: Running xfdashboard as daemon won't allow other full screen applications to update the screen by flipping, consequently making impossible for the video driver to enable G-SYNC.

Hello. It is nice to have a good looking dashboard in a lightweight system like XFCE, but lately I am having a problem that might affect other users too. Basically, running xfdashboard as daemon will cause the same issue as running xfwm4 with compositing on: it won't allow other applications in full screen to update the screen by flipping, therefore making impossible for the video driver to enable G-SYNC. While I do have a bash script detecting applications and games running in full screen and then quitting xfdashboard, doing that loses most perks of running it as daemon in the first place. I am not a C programmer, but I can compile and test the as soon as a proposed fix appears. I mean, if you guys even consider this a bug.

gmc-holle commented 5 years ago

Hi,

thanks for your report. Sadly I do not understand the problem. What is G-Sync and how does it work? And why does compositing disturb these applications? Sorry, I don't know anything about these things and problems so I don't know how to fix it.

If I have done a mistake, xfdashboard should release any window redirections as soon as it goes into background. I think that is "compositing" and so it should be turned off if in background. I don't know if Clutter will do it also, although I also turned it off there when going to background.

But the best would be to explain G-Sync and the flipping problem and how (if possible with Intel GPU only) to reproduce the problem.

allan-null commented 5 years ago

I don't think Intel has a graphics technology similar to G-Sync (NVIDIA) and FreeSync (AMD). Those two are technologies for eliminating screen tearing without causing as much input lag as v-sync does. They are used mostly to improve gaming experience, and require compatible monitors in order to work.

I don't know much about FreeSync, but G-Sync is a tricky one to get working. In order to use this technology, the application you intent using with it must be covering the X screen completely. If even a pixel is being drawn by another application, it won't work. That is why it won't work when using a compositor, because it usually gets in between of the application running if full-screen and the X screen.

When I said "flipping", I was referring to one of the two ways I know my graphical drivers updates the screen: blitting and flipping. I am attaching two screenshots from mpv, in which the first one xfdashboard is running as daemon and the on the second one it is not.

xfdashboard running

xfdashboard not running

Ps.: Obviously, a media player such as mpv doesn't take advantage of G-Sync. I am just using it as an example because it's easier to launch.

allan-null commented 4 years ago

I think this was a video driver issue, because after updating it the problem is gone. Thanks.