Exclusive Fullscreen Mode

Thomas Lübking thomas.luebking at web.de
Tue Sep 7 09:08:14 PDT 2010


Am Tuesday 07 September 2010 schrieb Roland Plüss:
> What exactly you mean with this? What I'm looking for is if the
> compositing is disabled if a window goes fullscreen.
and to quote myself: "by default yes" 

KWin is the KDE WM and by default un-redirects fullscreen windows (and the 
only way for a user to change that is to edit the config file by hand)
This does of course NOT happen for a translucent (NET_WM_OPACITY) "fullscreen" 
window.
(There is no "fullscreen mode" in X11, there's a screensize window and a NETWM 
hint for the WM, which you should btw. use by all means since otherwise many 
WMs will not handle a window as "fullscreen" just because it's screensized)

If you really mean "disabled" like deleting th GL context, afaik at least 
compiz can't "disable" compositing at all, not sure about E17 module 
capabilities and kwin does NOT suspend compositing in this case (you'd have to 
call this via dbus) but just skips the expensive tfp conversion for the 
fullscreen window.

> With exclusive fullscreen one can fully grab all GPU RAM and work with it.
Maybe in your wet dreams ... let's say:
"since the compositor does not bind textures i'll get more of mine to VRAM"

This is however pretty irrelevant as the driver maps/copies textures to system 
RAM (and in doubt from there to disk) and since the compositors textures are 
ideally not accessed during the rendering of a FS & unredirected window, a 
smart driver would preferably keep the textures of the FS GL client in VRAM.

If you try to allocate VRAM on a driver level you'll likely invalidate the 
various buffers as well as X11s resource cache.
(And if you do not work for nvidia, you won't be able to do this on at least 
their css drivers ;-P )

Notice that various drivers also at least /used to/ statically split the VRAM 
between GL & X11 - i frankly don't know whether this is still the present 
sota.

> Xlib is a requirement. Toolkits are therefore a no-go.
Sorry, but that deduction "X11 -> !Toolkit" makes _no_ sense at all. Nothing 
prevents you from using Xlib directly while in general utilising some toolkit 
for an easy life, portability and a somehow documented API (yes, X11 API doc 
is lousy, now ban me ;-)

> Concerning OpenGL I never heard of the ability to change screen resolution. 
Is this some extension or GLX only code?
The easiest way is glutEnterGameMode() and friends, but since you refuse 
toolkits... (no idea whether it calls through to some lower level GL or 
directly X11 function, sorry)

Cheers



More information about the xorg mailing list