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
bstorestr.h
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
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
dixfont.h
dix: use one single function to register fpe fonts
2010-06-24 13:55:28 -07:00
dixfontstr.h
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
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
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
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
privates.h
Introduce per-object per-screen privates.
2010-09-18 11:17:18 +02:00
property.h
propertyst.h
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
regionstr.h
Add REGION_ macros for source compatibility with existing drivers.
2010-06-05 19:03:22 -07:00
registry.h
resource.h
Add typed resource-lookup errors for non-core resource types.
2010-05-19 12:32:48 -07:00
rgb.h
screenint.h
scrnintstr.h
dix: adds support for none root window background
2010-11-11 23:24:43 +02:00
selection.h
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
swapreq.h
validate.h
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
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
xkbfile.h
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