Re: Proposing _NET_WM_STATE_FULLSCREEN_EXCLUSIVE



On Fri, 26 Oct 2012 12:23:34 -0700 Konstantin Svist <fry kun gmail com> said:

> On 10/26/2012 11:06 AM, Carsten Haitzler (The Rasterman) wrote:
> > On Fri, 26 Oct 2012 10:45:53 -0700 Konstantin Svist <fry kun gmail com>
> > said:
> >
> >> * turning off other displays is usually NOT desired: if the game is not
> >> using them, I would expect to be able to use a 2nd/3rd/etc. monitor to
> >> display something else (reference information for the game, or maybe
> >> email client/notification widget/etc.). If the user doesn't need to use
> >> the extra monitors, she can turn them off manually.
> > due to how randr does things keeping screens on is not desirable. it also
> > means you can't turn off compositing. it's not sane/sensible to keep them
> > on given the x11 setup we have at this time (changes would mean changes to
> > xserver internals and implementations as opposed to just a wm<->app
> > protocol).
> 
> I use XFCE desktop without compositing (not a fan of any sfx that slow 
> my wm down). Hope you're not saying I can only use 1 monitor in this case?
> Agree on not having to support full 3D-accellerated desktop while a game 
> is running, but here's a thought: since it doesn't need to be 
> interactive, why not render it in 2D for the duration? If some dynamic 
> widget updates, it can be re-drawn [with low priority], and then left as 
> static image on screen.

this doesn't have to do with 3d accel at all. it's entirely buffer FLIPPING vs
buffer COPYING. and it's for the 3d game window. currently drivers have an
optimization. it goes something like this:

if 3d window is "on top" AND has no shape AND it is the EXACT dimensions of the
framebuffer, then do buffer FLIPS, otherwise COPY from backbuffer to
framebuffer.

so literally every time the game does a swapbuffers the backbuffer is EXCHANGED
with the current framebuffer. this leads to ZERO copying of pixels to do the
swap. all games that use gl do this (realistically). so by just keeping your
2nd screen around at all in any way or form, you'll impact performance. this
can impact performance anywhere from maybe 5% to 50%. depending on the game
and nature of rendering, gpu, framebuffer size etc. - this is all because both
the screens become a big single framebuffer in hardware.

there is also another reason. let's say that your left monitor is where you
want the game, and the right is where you keep your "windows". your left
monitor is currently at 1600x900. your right is at 1600x900. when the game
wantsa to change resolution, it asks for 1920x1080. this means there is no
SPACE on the left area to shrink, so you have to reconfigure both screens, move
all the windows and content around on the 2nd screen and shuffle them over to
the right by 320 pixels to make room for the expanded left monitor region. this
will lead to "artifacts" when starting/stopping the fullscreen mode.

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster rasterman com



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]