xserver-multidpi/include
Tiago Vignatti 8976e9766e dix: adds support for none root window background
It lets the driver notify the server whether it can draw a background when
'-background none' option is used by the system platform. Use cases for that
could be video drivers performing mode-setting in kernel time, before X is up,
so a seamless transition would happen until X clients start to show up.

If the driver can copy the framebuffer cleanly then it can set the flag
(canDoBGNoneRoot), otherwise the server will fallback to the normal behaviour.
The system must explicit indicates willingness of doing so through
'-background none'. We could do this option as default; in such case,
malicious users would be able to steal the framebuffer with a bit of tricks.

For instance, I can see the content of my nVidia Quadro FX 580 framebuffer
old X session modifying a bit nv driver:

     xf86DPMSInit(pScreen, xf86DPMSSet, 0);

-    /* Clear the screen */
-    if(pNv->xaa) {
-        /* Use the acceleration engine */
-        pNv->xaa->SetupForSolidFill(pScrn, 0, GXcopy, ~0);
-        pNv->xaa->SubsequentSolidFillRect(pScrn,
-            0, 0, pScrn->displayWidth, pNv->offscreenHeight);
-        G80DmaKickoff(pNv);
-    } else {
-        /* Use a slow software clear path */
-        memset(pNv->mem, 0, pitch * pNv->offscreenHeight);
-    }
+    pScreen->canDoBGNoneRoot = TRUE;

The commit is originally based on discussions happened on xorg-devel:
http://lists.freedesktop.org/archives/xorg-devel/2010-June/009755.html

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
Acked-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2010-11-11 23:24:43 +02:00
..
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
bstore.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
bstorestr.h Implement core protocol backing store exclusively in terms of Composite. 2007-08-25 15:08:20 -04:00
callback.h dix: optimize CallCallbacks 2010-10-13 09:24:06 -07:00
closestr.h dixfonts: Deobfuscate GC ops calls. 2010-09-13 15:55:17 -07:00
closure.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
colormap.h Quit using clientErrorValue in dix/colormap.c. 2010-05-13 17:14:07 -07:00
colormapst.h Delete Colormap->devPriv. It isn't used any more. 2010-09-13 15:55:17 -07:00
cursor.h Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
cursorstr.h Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
dix-config-apple-verbatim.h Move the apple fat binary hacks back to a header file, and make it apple-only. 2009-01-30 16:36:45 -08:00
dix-config.h.in xfree86: Add MatchOS InputClass entry for operating system matching 2010-06-10 14:36:36 +10:00
dix.h Move replay-window check from ComputeFreezes to CheckDeviceGrabs. 2010-10-13 15:58:07 +10:00
dixaccess.h dix: add a new DixAccess bit, "DixPostAccess". 2009-06-26 17:05:52 -04:00
dixevents.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
dixfont.h dix: use one single function to register fpe fonts 2010-06-24 13:55:28 -07:00
dixfontstr.h Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
dixgrabs.h input: reshuffle CreateGrab and friends to take a GrabParameters param. 2009-05-01 09:07:37 +10:00
dixstruct.h os: simplify smart scheduler init process 2010-09-10 21:49:29 +03:00
eventconvert.h Re-enable RECORD extension. 2010-02-22 12:04:28 +10:00
events.h XQuartz: Transition from xEvent based mieq to InternalEvent 2009-09-27 23:31:07 -07:00
eventstr.h fix a sign problem with valuator data. 2010-10-18 10:16:23 +10:00
exevents.h Add support for per-axis valuator modes (Relative/Absolute) 2010-10-22 13:37:57 +10:00
extension.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
extinit.h include: XInputExtensionInit doesn't need to be exported. 2009-08-17 10:14:20 +10:00
extnsionst.h Declare functions that unconditionally call FatalError as _X_NORETURN. 2010-05-22 01:00:04 -07:00
gc.h Un-export CreateScratchGC now that nothing external uses it. 2010-09-13 15:58:08 -07:00
gcstruct.h Delete unused lastWinOrg field from GCs. 2010-09-13 15:55:17 -07:00
globals.h Move each screen's x/y origin into ScreenRec. 2010-06-03 14:03:23 -07:00
hotplug.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
input.h input: add valuator_get_mode() helper. 2010-10-22 16:18:56 +10:00
inputstr.h input: remove "mode" field from ValuatorClassRec. 2010-10-22 16:19:00 +10:00
inpututils.h dix: remove valuator_mask_copy_valuators, not needed anymore. 2010-10-22 11:02:53 +10:00
kdrive-config.h.in kdrive: Add option to compile out input drivers 2010-01-06 19:47:53 +06:00
list.h list.h: Fix list_for_each_entry_safe() 2010-06-22 12:21:51 -07:00
Makefile.am Abstract valuator masks through a set of APIs. 2010-10-22 11:02:48 +10:00
misc.h Use _X_ATTRIBUTE_PRINTF _X_DEPRECATED _X_NORETURN 2010-05-13 10:03:23 -07:00
miscstruct.h Merge branch 'master' into XACE-SELINUX 2007-08-28 07:25:21 -04:00
opaque.h dix: adds support for none root window background 2010-11-11 23:24:43 +02:00
os.h Use _X_ATTRIBUTE_PRINTF _X_DEPRECATED _X_NORETURN 2010-05-13 10:03:23 -07:00
pixmap.h dix: Remove the memory of the multibuffer extension 2010-10-13 09:18:41 -07:00
pixmapstr.h pixmap: Add some notes to devKind and devPrivate. 2008-10-10 16:14:23 +02:00
privates.h Introduce per-object per-screen privates. 2010-09-18 11:17:18 +02:00
property.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
propertyst.h dix: devPrivates support for PropertyRec. 2007-03-22 10:59:21 -04:00
protocol-versions.h Increase advertised RENDER protocol minor version to 11 2010-07-06 10:14:00 -04:00
ptrveloc.h Replace some input devPrivates with regular struct fields 2010-04-30 13:05:11 -07:00
region.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
regionstr.h Add REGION_ macros for source compatibility with existing drivers. 2010-06-05 19:03:22 -07:00
registry.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
resource.h Add typed resource-lookup errors for non-core resource types. 2010-05-19 12:32:48 -07:00
rgb.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
screenint.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
scrnintstr.h dix: adds support for none root window background 2010-11-11 23:24:43 +02:00
selection.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
servermd.h xfree86: nds32: add nds32 related definitions into include headers. 2010-09-23 15:35:48 -07:00
site.h dix: delete logo hack screen saver 2010-11-11 23:20:35 +02:00
swaprep.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
swapreq.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
validate.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
version-config.h.in Move VENDOR_* defines from AC_SUBST to a header to avoid angering shave. 2009-04-14 10:35:44 -04:00
window.h Remove CreateUnclippedWinSize from window.h 2009-01-20 22:07:07 -05:00
windowstr.h Move each screen's screensaver data into ScreenRec. 2010-06-03 14:03:22 -07:00
XIstubs.h input: Purge AddOtherInputDevices DDX hook. 2010-09-01 15:26:52 +10:00
xkb-config.h.in XKB: Allow build-time configuration of XKB defaults 2009-01-20 15:32:18 +11:00
xkbfile.h XKB: Remove support for setting combined keymaps 2009-01-22 15:08:56 +11:00
xkbrules.h XKB: Remove descriptions from maprules 2009-01-22 15:08:56 +11:00
xkbsrv.h Revert "xkb: merge lockedPtrButtons state from all attached SDs." 2010-07-01 23:46:27 -04:00
xkbstr.h Revert "XKB: Sanitise * actions" commits (#19602) 2009-07-10 11:23:52 +10:00
xorg-config.h.in DRI2: Allow building without libdrm 2010-06-03 11:56:03 +03:00
xorg-server.h.in Remove support for Solaris x86 releases older than Solaris 8 2009-08-13 21:56:05 -07:00
xserver-properties.h dix: add 3x3 transformation matrix xinput property for multi-head handling 2010-05-28 16:49:30 +10:00
xsha1.h Move SHA1 computation from render/glyph.c to os/ 2009-10-15 01:17:44 +02:00
xwin-config.h.in Cygwin/X: Allow the default log location to be configurable 2010-03-16 14:02:17 +00:00