Re: CVE-1999-0526 Vulnerbility on W2k8 R2
Did this help at all? From: Duane Fish duanedf...@yahoo.com To: Alan Coopersmith alan.coopersm...@oracle.com Cc: xorg@lists.x.org xorg@lists.x.org Sent: Thursday, September 18, 2014 3:35 PM Subject: Re: CVE-1999-0526 Vulnerbility on W2k8 R2 Alan, I see nothing in the Add/Remove (or what was once called that), Programs, etc. Below is what the Vulnerability stated in the ticket I received. Does this help? === Vulnerability Scan Results Vulnerability Name: X Server Unauthenticated Access: Screenshot Synopsis: The remote X server accepts TCP connections. Description: The remote X server accepts remote TCP connections. It is possible for an attacker to grab a screenshot of the remote host. Solution: Restrict access to this port by using the 'xhost' command. If the X client/server facility is not used, disable TCP connections to the X server entirely. Vulnerability ID Details: Nessus Plugins Nessus Plugins Synopsis : The remote X server accepts TCP connections. Description : The remote X server accepts remote TCP connections. It is possible for an attacker to grab a screenshot of the remote host. View on www.tenable.com Preview by Yahoo From: Alan Coopersmith alan.coopersm...@oracle.com To: Duane Fish duanedf...@yahoo.com Cc: xorg@lists.x.org xorg@lists.x.org Sent: Wednesday, September 17, 2014 11:19 PM Subject: Re: CVE-1999-0526 Vulnerbility on W2k8 R2 On 09/17/14 08:45 PM, Duane Fish wrote: XII is what I was told. I've never heard of XII. X11 is version 11 of the X protocol, not an actual software program. As noted on https://en.wikipedia.org/wiki/X_Window_System#Implementations X servers for Microsoft Windows include Cygwin/X, Xming, Exceed, MKS X/Server, Reflection X, and X-Win32. Unless you can figure out the actual software being run, there's not much we can do to help you. It would be like being told you need to fix your http program and not knowing if that's Internet Explorer, Firefox, Chrome, Opera, Safari, or something else. And if you can't find any signs of any of those programs, then it's most likely a false alarm from your auditor or vulnerability scanner, when they can't figure out what software is listening on port 6000, and just make up answers to look useful when they're not. -- -Alan Coopersmith- alan.coopersm...@oracle.com Oracle Solaris Engineering - http://blogs.oracle.com/alanc___ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s
Re: CVE-1999-0526 Vulnerbility on W2k8 R2
On 09/23/14 03:59 PM, Duane Fish wrote: Did this help at all? Nope - as best we can tell, this is still the most likely answer: And if you can't find any signs of any of those programs, then it's most likely a false alarm from your auditor or vulnerability scanner, when they can't figure out what software is listening on port 6000, and just make up answers to look useful when they're not. On the other hand, if you don't know what software is running on your systems, you have a bigger security problem than any scanner can help with. -- -Alan Coopersmith- alan.coopersm...@oracle.com Oracle Solaris Engineering - http://blogs.oracle.com/alanc ___ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s
Re: CVE-1999-0526 Vulnerbility on W2k8 R2
It gets scanned by Verizon - they use a pretty good tool for it, so I'm pretty sure it's not made up. I just personally don't know much about the server, as it's not my primary responsibility. From what I thought I sent, it sounds like MS' own X-Windows that's the problem. I followed the link in the vulnerability alert (below), and mention of the X server brought me to X-Org. If I am in the wrong place, please let me know. Nessus Plugins Nessus Plugins Synopsis : The remote X server accepts TCP connections. Description : The remote X server accepts remote TCP connections. It is possible for an attacker to grab a screenshot of the remote host. View on www.tenable.com Preview by Yahoo From: Alan Coopersmith alan.coopersm...@oracle.com To: Duane Fish duanedf...@yahoo.com Cc: xorg@lists.x.org xorg@lists.x.org Sent: Tuesday, September 23, 2014 6:05 PM Subject: Re: CVE-1999-0526 Vulnerbility on W2k8 R2 On 09/23/14 03:59 PM, Duane Fish wrote: Did this help at all? Nope - as best we can tell, this is still the most likely answer: And if you can't find any signs of any of those programs, then it's most likely a false alarm from your auditor or vulnerability scanner, when they can't figure out what software is listening on port 6000, and just make up answers to look useful when they're not. On the other hand, if you don't know what software is running on your systems, you have a bigger security problem than any scanner can help with. -- -Alan Coopersmith- alan.coopersm...@oracle.com Oracle Solaris Engineering - http://blogs.oracle.com/alanc___ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s
Re: CVE-1999-0526 Vulnerbility on W2k8 R2
On 09/23/14 04:45 PM, Duane Fish wrote: It gets scanned by Verizon - they use a pretty good tool for it, so I'm pretty sure it's not made up. I just personally don't know much about the server, as it's not my primary responsibility. From what I thought I sent, it sounds like MS' own X-Windows that's the problem. Microsoft doesn't make a version of the X Window System - they instead have Microsoft Windows, which is completely their implementation, not using our API, protocol, design, or technology, just a similar name because both involve putting applications in windows on the screen. I followed the link in the vulnerability alert (below), and mention of the X server brought me to X-Org. If I am in the wrong place, please let me know. You're probably in the wrong place, which is why I kept suggesting you figure out what software you're really running. Xorg software is usually found on systems running Linux or Unix, not Microsoft Windows. -- -Alan Coopersmith- alan.coopersm...@oracle.com Oracle Solaris Engineering - http://blogs.oracle.com/alanc ___ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s
Re: CVE-1999-0526 Vulnerbility on W2k8 R2
Duane Fish wrote: I see nothing in the Add/Remove (or what was once called that), Programs, etc. [What follows works for me on a Windows 7 system; the details may be different on your system, but hopefully shouldn't be too different.] Start a command prompt as administrator, and use the command netstat -a -n -p tcp -o That should produce a listing of active connections; you're looking for an entry like: TCP0.0.0.0:6000 0.0.0.0:0 LISTENING 2104 I.e, a TCP socket in the LISTENING state on port 6000 (or possibly a different value in the range 6000-6010). The last number (2104 in this case) is the process identifier (PID). If you don't see such an entry, no X server is running at present. One may have been bundled as part of another application, and[1] is started by that application. [1] Typically, an application which was originally developed for Unix and has been ported to Windows rather than being re-written; if you have any applications which don't feel much like Windows applications, these would be prime suspects. Start the Task Manager (e.g. Control-Shift-Escape), switch to the Processes tab, and use the View - Select Columns ... menu option to add a display column for the PID. Look for the process with the matching PID. Right click on the entry and choose Open File Location from the menu. This should allow you to determine the filename of the executable and the directory which contains it. Hopefully that should provide some clues as to the source, or at least something to google for. Alternatively, you may find TCPView simpler: http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx -- Glynn Clements gl...@gclements.plus.com ___ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s
Re: F21/F22: xorg-x11-drv: which for SiS?
Seems to exist to me: http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/ On Mon, Sep 22, 2014 at 9:50 PM, Felix Miata mrma...@earthlink.net wrote: xorg-x11-drv-sis seems to have disappeared. Did that happen on purpose? It still exists as a selelection in Bugzilla. Xorg is looking for sis module but cannot find it. Gfxchip here is Z7/Z9 (XG20 core). Is it now supposed to be using some other (not installed) driver? Before today's upgrade, X still worked. -- The wise are known for their understanding, and pleasant words are persuasive. Proverbs 16:21 (New Living Translation) Team OS/2 ** Reg. Linux User #211409 ** a11y rocks! Felix Miata *** http://fm.no-ip.com/ ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel -- Jasper ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: F21/F22: xorg-x11-drv: which for SiS?
According to http://pkgs.fedoraproject.org/cgit/xorg-x11-drv-sis.git/commit/?id=95dc18d4c803988702974635badb391cc50b6a63 , this package is dead for Fedora 21 and later due to lack of KMS support. See also: https://lists.fedoraproject.org/pipermail/devel/2013-August/188429.html 2014-09-23 3:37 GMT-03:00 Jasper St. Pierre jstpie...@mecheye.net: Seems to exist to me: http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/ On Mon, Sep 22, 2014 at 9:50 PM, Felix Miata mrma...@earthlink.net wrote: xorg-x11-drv-sis seems to have disappeared. Did that happen on purpose? It still exists as a selelection in Bugzilla. Xorg is looking for sis module but cannot find it. Gfxchip here is Z7/Z9 (XG20 core). Is it now supposed to be using some other (not installed) driver? Before today's upgrade, X still worked. -- The wise are known for their understanding, and pleasant words are persuasive. Proverbs 16:21 (New Living Translation) Team OS/2 ** Reg. Linux User #211409 ** a11y rocks! Felix Miata *** http://fm.no-ip.com/ ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel -- Jasper ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel -- *Laércio de Sousa* *Orientador de Informática* *Escola Municipal Professor Eulálio Gruppi* *Rua Ismael da Silva Mello, 559, Mogi Moderno* *Mogi das Cruzes - SPCEP 08717-390* Telefone: (11) 4726-8313 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 01/18] kdrive: Remove vestigial reference to fbInitValidateTree
Reviewed-by: Keith Packard kei...@keithp.com Signed-off-by: Adam Jackson a...@redhat.com --- hw/kdrive/src/kdrive.c | 4 1 file changed, 4 deletions(-) diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index 5dbff3f..dddbe6e 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -909,10 +909,6 @@ KdScreenInit(ScreenPtr pScreen, int argc, char **argv) if (!(*card-cfuncs-finishInitScreen) (pScreen)) return FALSE; -#if 0 -fbInitValidateTree(pScreen); -#endif - /* * Wrap CloseScreen, the order now is: * KdCloseScreen -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 06/18] mi: Deobfuscate miOverlayWindowExposures
Signed-off-by: Adam Jackson a...@redhat.com --- mi/mioverlay.c | 40 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/mi/mioverlay.c b/mi/mioverlay.c index f894e2b..2ad6bc0 100644 --- a/mi/mioverlay.c +++ b/mi/mioverlay.c @@ -983,28 +983,19 @@ miOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn) { RegionPtr exposures = prgn; -if ((prgn !RegionNil(prgn)) || (exposures !RegionNil(exposures))) { +if (prgn !RegionNil(prgn)) { RegionRec expRec; -int clientInterested; - -clientInterested = (pWin-eventMask | wOtherEventMasks(pWin)) -ExposureMask; -if (clientInterested exposures -(RegionNumRects(exposures) RECTLIMIT)) { +int clientInterested = +(pWin-eventMask | wOtherEventMasks(pWin)) ExposureMask; +if (clientInterested (RegionNumRects(prgn) RECTLIMIT)) { ScreenPtr pScreen = pWin-drawable.pScreen; miOverlayScreenPtr pPriv = MIOVERLAY_GET_SCREEN_PRIVATE(pScreen); BoxRec box; -box = *RegionExtents(exposures); -if (exposures == prgn) { -exposures = expRec; -RegionInit(exposures, box, 1); -RegionReset(prgn, box); -} -else { -RegionReset(exposures, box); -RegionUnion(prgn, prgn, exposures); -} +box = *RegionExtents(prgn); +exposures = expRec; +RegionInit(exposures, box, 1); +RegionReset(prgn, box); /* This is the only reason why we are replacing mi's version of this file */ @@ -1016,21 +1007,14 @@ miOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn) else RegionIntersect(prgn, prgn, pWin-clipList); } -if (prgn !RegionNil(prgn)) -miPaintWindow(pWin, prgn, PW_BACKGROUND); -if (clientInterested exposures !RegionNil(exposures)) +miPaintWindow(pWin, prgn, PW_BACKGROUND); +if (clientInterested) miSendExposures(pWin, exposures, pWin-drawable.x, pWin-drawable.y); -if (exposures == expRec) { +if (exposures == expRec) RegionUninit(exposures); -} -else if (exposures exposures != prgn) -RegionDestroy(exposures); -if (prgn) -RegionEmpty(prgn); +RegionEmpty(prgn); } -else if (exposures exposures != prgn) -RegionDestroy(exposures); } typedef struct { -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 05/18] mi: Deobfuscate miWindowExposures
Signed-off-by: Adam Jackson a...@redhat.com --- mi/miexpose.c | 41 +++-- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/mi/miexpose.c b/mi/miexpose.c index 23987fa..de0e148 100644 --- a/mi/miexpose.c +++ b/mi/miexpose.c @@ -425,17 +425,11 @@ miWindowExposures(WindowPtr pWin, RegionPtr prgn) { RegionPtr exposures = prgn; -if ((prgn !RegionNil(prgn)) || (exposures !RegionNil(exposures))) { +if (prgn !RegionNil(prgn)) { RegionRec expRec; -int clientInterested; - -/* - * Restore from backing-store FIRST. - */ -clientInterested = +int clientInterested = (pWin-eventMask | wOtherEventMasks(pWin)) ExposureMask; -if (clientInterested exposures -(RegionNumRects(exposures) RECTLIMIT)) { +if (clientInterested (RegionNumRects(prgn) RECTLIMIT)) { /* * If we have LOTS of rectangles, we decide to take the extents * and force an exposure on that. This should require much less @@ -444,34 +438,21 @@ miWindowExposures(WindowPtr pWin, RegionPtr prgn) */ BoxRec box; -box = *RegionExtents(exposures); -if (exposures == prgn) { -exposures = expRec; -RegionInit(exposures, box, 1); -RegionReset(prgn, box); -} -else { -RegionReset(exposures, box); -RegionUnion(prgn, prgn, exposures); -} +box = *RegionExtents(prgn); +exposures = expRec; +RegionInit(exposures, box, 1); +RegionReset(prgn, box); /* miPaintWindow doesn't clip, so we have to */ RegionIntersect(prgn, prgn, pWin-clipList); } -if (prgn !RegionNil(prgn)) -miPaintWindow(pWin, prgn, PW_BACKGROUND); -if (clientInterested exposures !RegionNil(exposures)) +miPaintWindow(pWin, prgn, PW_BACKGROUND); +if (clientInterested) miSendExposures(pWin, exposures, pWin-drawable.x, pWin-drawable.y); -if (exposures == expRec) { +if (exposures == expRec) RegionUninit(exposures); -} -else if (exposures exposures != prgn) -RegionDestroy(exposures); -if (prgn) -RegionEmpty(prgn); +RegionEmpty(prgn); } -else if (exposures exposures != prgn) -RegionDestroy(exposures); } #ifdef ROOTLESS -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 07/18] mi: Simplify composite border clip redirection interface
There's not really a good reason for mi to not just call the composite code directly. Reviewed-by: Keith Packard kei...@keithp.com Signed-off-by: Adam Jackson a...@redhat.com --- composite/compext.c | 3 --- mi/mi.h | 11 --- mi/mivaltree.c | 52 +++- 3 files changed, 19 insertions(+), 47 deletions(-) diff --git a/composite/compext.c b/composite/compext.c index cadedbd..fcfc349 100644 --- a/composite/compext.c +++ b/composite/compext.c @@ -594,9 +594,6 @@ CompositeExtensionInit(void) return; CompositeReqCode = (CARD8) extEntry-base; -miRegisterRedirectBorderClipProc(compSetRedirectBorderClip, - compGetRedirectBorderClip); - /* Initialization succeeded */ noCompositeExtension = FALSE; } diff --git a/mi/mi.h b/mi/mi.h index 4b5e862..a4a01b8 100644 --- a/mi/mi.h +++ b/mi/mi.h @@ -425,17 +425,6 @@ extern _X_EXPORT int miShapedWindowIn(RegionPtr /*universe */ , int /*y */ ); -typedef void - (*SetRedirectBorderClipProcPtr) (WindowPtr pWindow, RegionPtr pRegion); - -typedef RegionPtr - (*GetRedirectBorderClipProcPtr) (WindowPtr pWindow); - -extern _X_EXPORT void - -miRegisterRedirectBorderClipProc(SetRedirectBorderClipProcPtr setBorderClip, - GetRedirectBorderClipProcPtr getBorderClip); - extern _X_EXPORT int miValidateTree(WindowPtr /*pParent */ , WindowPtr /*pChild */ , VTKind /*kind */ diff --git a/mi/mivaltree.c b/mi/mivaltree.c index c1cc431..8e4e9a9 100644 --- a/mi/mivaltree.c +++ b/mi/mivaltree.c @@ -99,8 +99,10 @@ Equipment Corporation. #includemi.h #includeregionstr.h #includemivalidate.h - #includeglobals.h +#ifdef COMPOSITE +#includecompint.h +#endif /* * Compute the visibility of a shaped window @@ -160,17 +162,6 @@ miShapedWindowIn(RegionPtr universe, RegionPtr bounding, return rgnOUT; } -static GetRedirectBorderClipProcPtr miGetRedirectBorderClipProc; -static SetRedirectBorderClipProcPtr miSetRedirectBorderClipProc; - -void -miRegisterRedirectBorderClipProc(SetRedirectBorderClipProcPtr setBorderClip, - GetRedirectBorderClipProcPtr getBorderClip) -{ -miSetRedirectBorderClipProc = setBorderClip; -miGetRedirectBorderClipProc = getBorderClip; -} - /* * Manual redirected windows are treated as transparent; they do not obscure * siblings or parent windows @@ -242,11 +233,9 @@ miComputeClips(WindowPtr pParent, * In redirected drawing case, reset universe to borderSize */ if (pParent-redirectDraw != RedirectDrawNone) { -if (miSetRedirectBorderClipProc) { -if (TreatAsTransparent(pParent)) -RegionEmpty(universe); -(*miSetRedirectBorderClipProc) (pParent, universe); -} +if (TreatAsTransparent(pParent)) +RegionEmpty(universe); +compSetRedirectBorderClip (pParent, universe); RegionCopy(universe, pParent-borderSize); } #endif @@ -516,6 +505,17 @@ miTreeObscured(WindowPtr pParent) } } +static RegionPtr +getBorderClip(WindowPtr pWin) +{ +#ifdef COMPOSITE +if (pWin-redirectDraw != RedirectDrawNone) +return compGetRedirectBorderClip(pWin); +else +#endif +return pWin-borderClip; +} + /* *--- * miValidateTree -- @@ -609,14 +609,7 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */ forward = TRUE; for (pWin = pChild; pWin; pWin = pWin-nextSib) { if (pWin-valdata) { -RegionPtr pBorderClip = pWin-borderClip; - -#ifdef COMPOSITE -if (pWin-redirectDraw != RedirectDrawNone -miGetRedirectBorderClipProc) -pBorderClip = (*miGetRedirectBorderClipProc) (pWin); -#endif -RegionAppend(totalClip, pBorderClip); +RegionAppend(totalClip, getBorderClip(pWin)); if (pWin-viewable) viewvals++; } @@ -627,14 +620,7 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */ pWin = pParent-lastChild; while (1) { if (pWin-valdata) { -RegionPtr pBorderClip = pWin-borderClip; - -#ifdef COMPOSITE -if (pWin-redirectDraw != RedirectDrawNone -miGetRedirectBorderClipProc) -pBorderClip = (*miGetRedirectBorderClipProc) (pWin); -#endif -RegionAppend(totalClip, pBorderClip); +RegionAppend(totalClip, getBorderClip(pWin)); if (pWin-viewable) viewvals++; } -- 1.9.3
[PATCH 04/18] dix: Drop the third argument from WindowExposuresProcPtr
A careful read shows that it was always NULL. It hasn't always been; as the DDX spec indicates, it was the occluded region that has backing store, but since that backing store code is long gone nothing, we can nuke it. mi{,Overlay}WindowExposures get slightly simpler here, and will get even simpler in just a moment. Signed-off-by: Adam Jackson a...@redhat.com --- dix/window.c | 2 +- fb/fboverlay.c | 5 ++--- fb/fboverlay.h | 4 +--- hw/dmx/dmxwindow.c | 4 ++-- hw/dmx/dmxwindow.h | 3 +-- hw/kdrive/ephyr/ephyr.c| 2 +- hw/kdrive/src/kxv.c| 6 +++--- hw/xfree86/common/xf86xv.c | 6 +++--- hw/xfree86/dri/dri.c | 4 ++-- hw/xfree86/dri/dri.h | 3 +-- hw/xnest/Window.c | 4 ++-- hw/xnest/XNWindow.h| 3 +-- include/scrnintstr.h | 3 +-- mi/mi.h| 4 +--- mi/miexpose.c | 15 +++ mi/mioverlay.c | 30 -- mi/miwindow.c | 4 ++-- 17 files changed, 35 insertions(+), 67 deletions(-) diff --git a/dix/window.c b/dix/window.c index f4acdc8..52e69ef 100644 --- a/dix/window.c +++ b/dix/window.c @@ -2601,7 +2601,7 @@ MapWindow(WindowPtr pWin, ClientPtr client) (*pScreen-PostValidateTree) (NullWindow, pWin, VTMap); RegionNull(temp); RegionCopy(temp, pWin-clipList); -(*pScreen-WindowExposures) (pWin, temp, NullRegion); +(*pScreen-WindowExposures) (pWin, temp); RegionUninit(temp); } diff --git a/fb/fboverlay.c b/fb/fboverlay.c index 935bf1b..6a5f0f8 100644 --- a/fb/fboverlay.c +++ b/fb/fboverlay.c @@ -240,12 +240,11 @@ fbOverlayCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) } void -fbOverlayWindowExposures(WindowPtr pWin, - RegionPtr prgn, RegionPtr other_exposed) +fbOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn) { fbOverlayUpdateLayerRegion(pWin-drawable.pScreen, fbOverlayWindowLayer(pWin), prgn); -miWindowExposures(pWin, prgn, other_exposed); +miWindowExposures(pWin, prgn); } Bool diff --git a/fb/fboverlay.h b/fb/fboverlay.h index 57c9873..47727e4 100644 --- a/fb/fboverlay.h +++ b/fb/fboverlay.h @@ -82,9 +82,7 @@ extern _X_EXPORT void fbOverlayCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc); extern _X_EXPORT void - -fbOverlayWindowExposures(WindowPtr pWin, - RegionPtr prgn, RegionPtr other_exposed); +fbOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn); extern _X_EXPORT Bool diff --git a/hw/dmx/dmxwindow.c b/hw/dmx/dmxwindow.c index 1c23527..c753735 100644 --- a/hw/dmx/dmxwindow.c +++ b/hw/dmx/dmxwindow.c @@ -772,7 +772,7 @@ dmxWindowExposurePredicate(Display * dpy, XEvent * ev, XPointer ptr) * in DMX, the events that are generated by the back-end server are * redundant, so we eat them here. */ void -dmxWindowExposures(WindowPtr pWindow, RegionPtr prgn, RegionPtr other_exposed) +dmxWindowExposures(WindowPtr pWindow, RegionPtr prgn) { ScreenPtr pScreen = pWindow-drawable.pScreen; DMXScreenInfo *dmxScreen = dmxScreens[pScreen-myNum]; @@ -799,7 +799,7 @@ dmxWindowExposures(WindowPtr pWindow, RegionPtr prgn, RegionPtr other_exposed) #if 1 if (pScreen-WindowExposures) -pScreen-WindowExposures(pWindow, prgn, other_exposed); +pScreen-WindowExposures(pWindow, prgn); #endif DMX_WRAP(WindowExposures, dmxWindowExposures, dmxScreen, pScreen); } diff --git a/hw/dmx/dmxwindow.h b/hw/dmx/dmxwindow.h index c6b2efe..dda6538 100644 --- a/hw/dmx/dmxwindow.h +++ b/hw/dmx/dmxwindow.h @@ -73,8 +73,7 @@ extern Bool dmxChangeWindowAttributes(WindowPtr pWindow, unsigned long mask); extern Bool dmxRealizeWindow(WindowPtr pWindow); extern Bool dmxUnrealizeWindow(WindowPtr pWindow); extern void dmxRestackWindow(WindowPtr pWindow, WindowPtr pOldNextSib); -extern void dmxWindowExposures(WindowPtr pWindow, RegionPtr prgn, - RegionPtr other_exposed); +extern void dmxWindowExposures(WindowPtr pWindow, RegionPtr prgn); extern void dmxCopyWindow(WindowPtr pWindow, DDXPointRec ptOldOrg, RegionPtr prgnSrc); diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c index 85d4193..8b88f3e 100644 --- a/hw/kdrive/ephyr/ephyr.c +++ b/hw/kdrive/ephyr/ephyr.c @@ -878,7 +878,7 @@ ephyrExposePairedWindow(int a_remote) screen = pair-local-drawable.pScreen; RegionNull(reg); RegionCopy(reg, pair-local-clipList); -screen-WindowExposures(pair-local, reg, NullRegion); +screen-WindowExposures(pair-local, reg); RegionUninit(reg); } #endif /* XF86DRI */ diff --git a/hw/kdrive/src/kxv.c b/hw/kdrive/src/kxv.c index f979e1f..163d5c1 100644 --- a/hw/kdrive/src/kxv.c +++ b/hw/kdrive/src/kxv.c @@ -86,7 +86,7 @@ static int KdXVQueryImageAttributes(XvPortPtr, XvImagePtr, /*
[PATCH 08/18] mi: Drop plane argument from miHandleExposures
This existed to be passed to the bs recovery routine; since we back all planes, we don't care. Signed-off-by: Adam Jackson a...@redhat.com --- fb/fbcopy.c | 2 +- glamor/glamor_copy.c | 3 +-- hw/dmx/dmxgcops.c| 8 mi/mi.h | 3 +-- mi/mibitblt.c| 5 ++--- mi/micopy.c | 3 +-- mi/miexpose.c| 8 +--- 7 files changed, 11 insertions(+), 21 deletions(-) diff --git a/fb/fbcopy.c b/fb/fbcopy.c index 541ef71..5bbabc3 100644 --- a/fb/fbcopy.c +++ b/fb/fbcopy.c @@ -271,5 +271,5 @@ fbCopyPlane(DrawablePtr pSrcDrawable, else return miHandleExposures(pSrcDrawable, pDstDrawable, pGC, xIn, yIn, - widthSrc, heightSrc, xOut, yOut, bitplane); + widthSrc, heightSrc, xOut, yOut); } diff --git a/glamor/glamor_copy.c b/glamor/glamor_copy.c index 6f422d4..3320935 100644 --- a/glamor/glamor_copy.c +++ b/glamor/glamor_copy.c @@ -677,8 +677,7 @@ glamor_copy_plane(DrawablePtr src, DrawablePtr dst, GCPtr gc, { if ((bitplane FbFullMask(src-depth)) == 0) return miHandleExposures(src, dst, gc, - srcx, srcy, width, height, dstx, dsty, - bitplane); + srcx, srcy, width, height, dstx, dsty); return miDoCopy(src, dst, gc, srcx, srcy, width, height, dstx, dsty, glamor_copy, bitplane, NULL); diff --git a/hw/dmx/dmxgcops.c b/hw/dmx/dmxgcops.c index aa7c8eb..0ebd69a 100644 --- a/hw/dmx/dmxgcops.c +++ b/hw/dmx/dmxgcops.c @@ -179,7 +179,7 @@ dmxCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, if (DMX_GCOPS_OFFSCREEN(pSrc) || DMX_GCOPS_OFFSCREEN(pDst)) return miHandleExposures(pSrc, pDst, pGC, srcx, srcy, w, h, - dstx, dsty, 0L); + dstx, dsty); DMX_GCOPS_SET_DRAWABLE(pSrc, srcDraw); DMX_GCOPS_SET_DRAWABLE(pDst, dstDraw); @@ -188,7 +188,7 @@ dmxCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, srcx, srcy, w, h, dstx, dsty); dmxSync(dmxScreen, FALSE); -return miHandleExposures(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty, 0L); +return miHandleExposures(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty); } /** Copy plane number \a bitPlane from \a pSrc drawable to \a pDst @@ -206,7 +206,7 @@ dmxCopyPlane(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, if (DMX_GCOPS_OFFSCREEN(pSrc) || DMX_GCOPS_OFFSCREEN(pDst)) return miHandleExposures(pSrc, pDst, pGC, srcx, srcy, width, height, - dstx, dsty, bitPlane); + dstx, dsty); DMX_GCOPS_SET_DRAWABLE(pSrc, srcDraw); DMX_GCOPS_SET_DRAWABLE(pDst, dstDraw); @@ -216,7 +216,7 @@ dmxCopyPlane(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, dmxSync(dmxScreen, FALSE); return miHandleExposures(pSrc, pDst, pGC, srcx, srcy, width, height, - dstx, dsty, bitPlane); + dstx, dsty); } /** Render list of points, \a pptInit in \a pDrawable on the back-end diff --git a/mi/mi.h b/mi/mi.h index a4a01b8..700bb11 100644 --- a/mi/mi.h +++ b/mi/mi.h @@ -229,8 +229,7 @@ extern _X_EXPORT RegionPtr miHandleExposures(DrawablePtr /*pSrcDrawable */ , int /*width */ , int /*height */ , int /*dstx */ , - int /*dsty */ , - unsigned long /*plane */ + int /*dsty */ ); extern _X_EXPORT void miSendGraphicsExpose(ClientPtr /*client */ , diff --git a/mi/mibitblt.c b/mi/mibitblt.c index 3ed4ed1..08bd1c5 100644 --- a/mi/mibitblt.c +++ b/mi/mibitblt.c @@ -242,8 +242,7 @@ miCopyArea(DrawablePtr pSrcDrawable, } } prgnExposed = miHandleExposures(pSrcDrawable, pDstDrawable, pGC, xIn, yIn, -widthSrc, heightSrc, xOut, yOut, -(unsigned long) 0); +widthSrc, heightSrc, xOut, yOut); if (realSrcClip) RegionDestroy(prgnSrcClip); @@ -579,7 +578,7 @@ miCopyPlane(DrawablePtr pSrcDrawable, } } prgnExposed = miHandleExposures(pSrcDrawable, pDstDrawable, pGC, srcx, srcy, -width, height, dstx, dsty, bitPlane); +width, height, dstx, dsty); RegionDestroy(prgnSrc); return prgnExposed; } diff --git a/mi/micopy.c b/mi/micopy.c index 3079511..a52b0a7 100644 --- a/mi/micopy.c +++ b/mi/micopy.c @@ -304,8 +304,7 @@ miDoCopy(DrawablePtr pSrcDrawable, yIn - pSrcDrawable-y,
[PATCH 14/18] dix: Remove an empty if
Signed-off-by: Adam Jackson a...@redhat.com --- dix/window.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/dix/window.c b/dix/window.c index e1645c3..e49670a 100644 --- a/dix/window.c +++ b/dix/window.c @@ -2806,8 +2806,6 @@ UnmapSubwindows(WindowPtr pWin) pChild-mapped = FALSE; if (pChild-realized) UnrealizeTree(pChild, FALSE); -if (wasViewable) { -} } } if (wasViewable) { -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 09/18] mi: Move pScreen-SendGraphicsExpose up to dix
No DDX is overriding this and it's fairly absurd to expose it as a screen operation anyway. Signed-off-by: Adam Jackson a...@redhat.com --- Xext/panoramiXprocs.c | 10 -- dix/dispatch.c| 52 +++ include/dix.h | 6 ++ include/scrnintstr.h | 7 --- mi/mi.h | 7 --- mi/miexpose.c | 47 -- mi/miscrinit.c| 1 - 7 files changed, 58 insertions(+), 72 deletions(-) diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c index 83a2e08..aa3859f 100644 --- a/Xext/panoramiXprocs.c +++ b/Xext/panoramiXprocs.c @@ -1193,9 +1193,8 @@ PanoramiXCopyArea(ClientPtr client) Bool overlap; RegionValidate(totalReg, overlap); -(*pDst-pScreen-SendGraphicsExpose) (client, totalReg, - stuff-dstDrawable, - X_CopyArea, 0); +SendGraphicsExpose(client, totalReg, stuff-dstDrawable, + X_CopyArea, 0); RegionUninit(totalReg); } } @@ -1306,9 +1305,8 @@ PanoramiXCopyPlane(ClientPtr client) Bool overlap; RegionValidate(totalReg, overlap); -(*pdstDraw-pScreen-SendGraphicsExpose) (client, totalReg, - stuff-dstDrawable, - X_CopyPlane, 0); +SendGraphicsExpose(client, totalReg, stuff-dstDrawable, + X_CopyPlane, 0); RegionUninit(totalReg); } diff --git a/dix/dispatch.c b/dix/dispatch.c index f7a08f8..74abecd 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -1597,6 +1597,52 @@ ProcClearToBackground(ClientPtr client) return Success; } +/* send GraphicsExpose events, or a NoExpose event, based on the region */ +void +SendGraphicsExpose(ClientPtr client, RegionPtr pRgn, XID drawable, + int major, int minor) +{ +if (pRgn !RegionNil(pRgn)) { +xEvent *pEvent; +xEvent *pe; +BoxPtr pBox; +int i; +int numRects; + +numRects = RegionNumRects(pRgn); +pBox = RegionRects(pRgn); +if (!(pEvent = calloc(numRects, sizeof(xEvent +return; +pe = pEvent; + +for (i = 1; i = numRects; i++, pe++, pBox++) { +pe-u.u.type = GraphicsExpose; +pe-u.graphicsExposure.drawable = drawable; +pe-u.graphicsExposure.x = pBox-x1; +pe-u.graphicsExposure.y = pBox-y1; +pe-u.graphicsExposure.width = pBox-x2 - pBox-x1; +pe-u.graphicsExposure.height = pBox-y2 - pBox-y1; +pe-u.graphicsExposure.count = numRects - i; +pe-u.graphicsExposure.majorEvent = major; +pe-u.graphicsExposure.minorEvent = minor; +} +/* GraphicsExpose is a critical event, which TryClientEvents + * handles specially. */ +TryClientEvents(client, NULL, pEvent, numRects, +(Mask) 0, NoEventMask, NullGrab); +free(pEvent); +} +else { +xEvent event = { +.u.noExposure.drawable = drawable, +.u.noExposure.majorEvent = major, +.u.noExposure.minorEvent = minor +}; +event.u.u.type = NoExpose; +WriteEventsToClient(client, 1, event); +} +} + int ProcCopyArea(ClientPtr client) { @@ -1628,8 +1674,7 @@ ProcCopyArea(ClientPtr client) stuff-width, stuff-height, stuff-dstX, stuff-dstY); if (pGC-graphicsExposures) { -(*pDst-pScreen-SendGraphicsExpose) -(client, pRgn, stuff-dstDrawable, X_CopyArea, 0); +SendGraphicsExpose(client, pRgn, stuff-dstDrawable, X_CopyArea, 0); if (pRgn) RegionDestroy(pRgn); } @@ -1676,8 +1721,7 @@ ProcCopyPlane(ClientPtr client) stuff-srcY, stuff-width, stuff-height, stuff-dstX, stuff-dstY, stuff-bitPlane); if (pGC-graphicsExposures) { -(*pdstDraw-pScreen-SendGraphicsExpose) -(client, pRgn, stuff-dstDrawable, X_CopyPlane, 0); +SendGraphicsExpose(client, pRgn, stuff-dstDrawable, X_CopyPlane, 0); if (pRgn) RegionDestroy(pRgn); } diff --git a/include/dix.h b/include/dix.h index 61ecc8d..116da2e 100644 --- a/include/dix.h +++ b/include/dix.h @@ -254,6 +254,12 @@ extern _X_EXPORT void ClientWakeup(ClientPtr /*client */ ); extern _X_EXPORT Bool ClientIsAsleep(ClientPtr /*client */ ); +extern _X_EXPORT void SendGraphicsExpose(ClientPtr /*client */ , + RegionPtr /*pRgn */ , + XID /*drawable */ , + int /*major */ , +
[PATCH 13/18] dix: Lower backStorage to a bit instead of a pointer
Signed-off-by: Adam Jackson a...@redhat.com --- composite/compinit.c | 4 ++-- dix/window.c | 2 +- include/windowstr.h | 2 +- mi/miexpose.c| 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/composite/compinit.c b/composite/compinit.c index 48e938f..111c16e 100644 --- a/composite/compinit.c +++ b/composite/compinit.c @@ -119,12 +119,12 @@ compChangeWindowAttributes(WindowPtr pWin, unsigned long mask) pScreen-backingStoreSupport != NotUseful) { if (pWin-backingStore != NotUseful !pWin-backStorage) { compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic); -pWin-backStorage = (void *) (intptr_t) 1; +pWin-backStorage = TRUE; } else if (pWin-backingStore == NotUseful pWin-backStorage) { compUnredirectWindow(serverClient, pWin, CompositeRedirectAutomatic); -pWin-backStorage = NULL; +pWin-backStorage = FALSE; } } diff --git a/dix/window.c b/dix/window.c index f227e4c..e1645c3 100644 --- a/dix/window.c +++ b/dix/window.c @@ -362,7 +362,7 @@ SetWindowToDefaults(WindowPtr pWin) pWin-cursorIsNone = TRUE; pWin-backingStore = NotUseful; -pWin-backStorage = (void *) NULL; +pWin-backStorage = 0; pWin-mapped = FALSE; /* off */ pWin-realized = FALSE; /* off */ diff --git a/include/windowstr.h b/include/windowstr.h index 81f5f8c..740f4a6 100644 --- a/include/windowstr.h +++ b/include/windowstr.h @@ -144,12 +144,12 @@ typedef struct _Window { Mask eventMask; /* mask from the creating client */ PixUnion background; PixUnion border; -void *backStorage; /* null when BS disabled */ WindowOptPtr optional; unsigned backgroundState:2; /* None, Relative, Pixel, Pixmap */ unsigned borderIsPixel:1; unsigned cursorIsNone:1;/* else real cursor (might inherit) */ unsigned backingStore:2; +unsigned backStorage:1; /* if bs is allocated */ unsigned saveUnder:1; unsigned bitGravity:4; unsigned winGravity:4; diff --git a/mi/miexpose.c b/mi/miexpose.c index 555f3b2..de8ee6c 100644 --- a/mi/miexpose.c +++ b/mi/miexpose.c @@ -143,7 +143,7 @@ miHandleExposures(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, if (!pGC-graphicsExposures (pDstDrawable-type == DRAWABLE_PIXMAP) ((pSrcDrawable-type == DRAWABLE_PIXMAP) || - (((WindowPtr) pSrcDrawable)-backStorage == NULL))) + (((WindowPtr) pSrcDrawable)-backStorage == 0))) return NULL; srcBox.x1 = srcx; -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 03/18] rootless: remove redundant RootlessShapedWindowIn
miShapedWindowIn is identical. Which you would expect, since neither one takes an actual WindowPtr argument, so they couldn't possibly make reference to rootlessness. Signed-off-by: Adam Jackson a...@redhat.com --- miext/rootless/rootlessValTree.c | 65 ++-- 1 file changed, 3 insertions(+), 62 deletions(-) diff --git a/miext/rootless/rootlessValTree.c b/miext/rootless/rootlessValTree.c index 730d291..c7c2c99 100644 --- a/miext/rootless/rootlessValTree.c +++ b/miext/rootless/rootlessValTree.c @@ -106,64 +106,6 @@ Equipment Corporation. int RootlessMiValidateTree(WindowPtr pRoot, WindowPtr pChild, VTKind kind); -/* - * Compute the visibility of a shaped window - */ -static int -RootlessShapedWindowIn(RegionPtr universe, - RegionPtr bounding, BoxPtr rect, int x, int y) -{ -BoxRec box; -register BoxPtr boundBox; -int nbox; -Bool someIn, someOut; -register int t, x1, y1, x2, y2; - -nbox = RegionNumRects(bounding); -boundBox = RegionRects(bounding); -someIn = someOut = FALSE; -x1 = rect-x1; -y1 = rect-y1; -x2 = rect-x2; -y2 = rect-y2; -while (nbox--) { -if ((t = boundBox-x1 + x) x1) -t = x1; -box.x1 = t; -if ((t = boundBox-y1 + y) y1) -t = y1; -box.y1 = t; -if ((t = boundBox-x2 + x) x2) -t = x2; -box.x2 = t; -if ((t = boundBox-y2 + y) y2) -t = y2; -box.y2 = t; -if (box.x1 box.x2) -box.x2 = box.x1; -if (box.y1 box.y2) -box.y2 = box.y1; -switch (RegionContainsRect(universe, box)) { -case rgnIN: -if (someOut) -return rgnPART; -someIn = TRUE; -break; -case rgnOUT: -if (someIn) -return rgnPART; -someOut = TRUE; -break; -default: -return rgnPART; -} -boundBox++; -} -if (someIn) -return rgnIN; -return rgnOUT; -} - #define HasParentRelativeBorder(w) (!(w)-borderIsPixel \ HasBorder(w) \ (w)-backgroundState == ParentRelative) @@ -229,10 +171,9 @@ RootlessComputeClips(WindowPtr pParent, ScreenPtr pScreen, RegionPtr pBounding; if ((pBounding = wBoundingShape(pParent))) { -switch (RootlessShapedWindowIn(universe, - pBounding, borderSize, - pParent-drawable.x, - pParent-drawable.y)) { +switch (miShapedWindowIn(universe, pBounding, borderSize, + pParent-drawable.x, + pParent-drawable.y)) { case rgnIN: newVis = VisibilityUnobscured; break; -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 02/18] xquartz: Remove useless DRIWindowExposures
Reviewed-by: Keith Packard kei...@keithp.com Signed-off-by: Adam Jackson a...@redhat.com --- hw/xquartz/xpr/dri.c | 21 - hw/xquartz/xpr/dri.h | 4 2 files changed, 25 deletions(-) diff --git a/hw/xquartz/xpr/dri.c b/hw/xquartz/xpr/dri.c index 0f19047..565d94f 100644 --- a/hw/xquartz/xpr/dri.c +++ b/hw/xquartz/xpr/dri.c @@ -138,9 +138,6 @@ DRIFinishScreenInit(ScreenPtr pScreen) DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); /* Wrap DRI support */ -pDRIPriv-wrap.WindowExposures = pScreen-WindowExposures; -pScreen-WindowExposures = DRIWindowExposures; - pDRIPriv-wrap.CopyWindow = pScreen-CopyWindow; pScreen-CopyWindow = DRICopyWindow; @@ -577,24 +574,6 @@ DRIDrawablePrivDelete(void *pResource, XID id) } void -DRIWindowExposures(WindowPtr pWin, RegionPtr prgn, RegionPtr bsreg) -{ -ScreenPtr pScreen = pWin-drawable.pScreen; -DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); -DRIDrawablePrivPtr pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin); - -if (pDRIDrawablePriv) { -/* FIXME: something? */ -} - -pScreen-WindowExposures = pDRIPriv-wrap.WindowExposures; - -(*pScreen-WindowExposures)(pWin, prgn, bsreg); - -pScreen-WindowExposures = DRIWindowExposures; -} - -void DRICopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) { ScreenPtr pScreen = pWin-drawable.pScreen; diff --git a/hw/xquartz/xpr/dri.h b/hw/xquartz/xpr/dri.h index 4476b06..a4400a2 100644 --- a/hw/xquartz/xpr/dri.h +++ b/hw/xquartz/xpr/dri.h @@ -51,7 +51,6 @@ typedef void (*ClipNotifyPtr)(WindowPtr, int, int); * overridden by the driver in its [driver]DRIScreenInit function. */ typedef struct { -WindowExposuresProcPtr WindowExposures; CopyWindowProcPtr CopyWindow; ClipNotifyProcPtr ClipNotify; } DRIWrappedFuncsRec, *DRIWrappedFuncsPtr; @@ -109,9 +108,6 @@ extern void DRIClipNotify(WindowPtr pWin, int dx, int dy); extern void -DRIWindowExposures(WindowPtr pWin, RegionPtr prgn, RegionPtr bsreg); - -extern void DRISurfaceNotify(xp_surface_id id, int kind); extern void -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 11/18] mi: Rewrite a conditional chain to be a bit more obvious
Signed-off-by: Adam Jackson a...@redhat.com --- mi/mivaltree.c | 8 +++- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mi/mivaltree.c b/mi/mivaltree.c index b1caec9..1b68739 100644 --- a/mi/mivaltree.c +++ b/mi/mivaltree.c @@ -648,17 +648,15 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */ } for (pWin = pChild; pWin != NullWindow; pWin = pWin-nextSib) { -if (pWin-viewable) { -if (pWin-valdata) { +if (pWin-valdata) { +if (pWin-viewable) { RegionIntersect(childClip, totalClip, pWin-borderSize); miComputeClips(pWin, pScreen, childClip, kind, exposed); if (overlap !TreatAsTransparent(pWin)) { RegionSubtract(totalClip, totalClip, pWin-borderSize); } } -} -else { -if (pWin-valdata) { +else { RegionEmpty(pWin-clipList); if (pScreen-ClipNotify) (*pScreen-ClipNotify) (pWin, 0, 0); -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 00/18] Misc exposure/validation cleanups, v2
This series no longer has the spontaneous combustion removal. 5 and 6 are instead just propagating through the 'exposures = prgn' bit of the logic. It also no longer has the doVisibilityNotify refactor, since in 10 we discover that the second path can't actually get hit so there's no reason to factor it out. The rest from 11 to 18 are new, and hopefully boringly correct. - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 15/18] dix: Remove some pointless casting of NULL
Signed-off-by: Adam Jackson a...@redhat.com --- dix/window.c | 23 ++- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/dix/window.c b/dix/window.c index e49670a..295038a 100644 --- a/dix/window.c +++ b/dix/window.c @@ -357,8 +357,8 @@ SetWindowToDefaults(WindowPtr pWin) pWin-firstChild = NullWindow; pWin-lastChild = NullWindow; -pWin-valdata = (ValidatePtr) NULL; -pWin-optional = (WindowOptPtr) NULL; +pWin-valdata = NULL; +pWin-optional = NULL; pWin-cursorIsNone = TRUE; pWin-backingStore = NotUseful; @@ -1550,7 +1550,7 @@ MoveWindowInStack(WindowPtr pWin, WindowPtr pNextSib) if (pWin-prevSib) pWin-prevSib-nextSib = pWin-nextSib; pWin-nextSib = pParent-firstChild; -pWin-prevSib = (WindowPtr) NULL; +pWin-prevSib = NULL; pNextSib-prevSib = pWin; pParent-firstChild = pWin; } @@ -1847,7 +1847,7 @@ WindowExtents(WindowPtr pWin, BoxPtr pBox) return pBox; } -#define IS_SHAPED(pWin)(wBoundingShape (pWin) != (RegionPtr) NULL) +#define IS_SHAPED(pWin)(wBoundingShape (pWin) != NULL) static RegionPtr MakeBoundingRegion(WindowPtr pWin, BoxPtr pBox) @@ -1953,7 +1953,7 @@ WhereDoIGoInTheStack(WindowPtr pWin, WindowPtr pHead, pFirst; if ((pWin == pWin-parent-firstChild) (pWin == pWin-parent-lastChild)) -return ((WindowPtr) NULL); +return NULL; pHead = RealChildHead(pWin-parent); pFirst = pHead ? pHead-nextSib : pWin-parent-firstChild; box.x1 = x; @@ -2644,8 +2644,7 @@ MapSubwindows(WindowPtr pParent, ClientPtr client) RealizeTree(pWin); if (pWin-viewable) { anyMarked |= (*pScreen-MarkOverlappedWindows) (pWin, pWin, -(WindowPtr - *) NULL); +NULL); } } } @@ -2655,8 +2654,7 @@ MapSubwindows(WindowPtr pParent, ClientPtr client) pLayerWin = (*pScreen-GetLayerWindow) (pParent); if (pLayerWin-parent != pParent) { anyMarked |= (*pScreen-MarkOverlappedWindows) (pLayerWin, -pLayerWin, -(WindowPtr *) NULL); +pLayerWin, NULL); pFirstMapped = pLayerWin; } if (anyMarked) { @@ -2815,8 +2813,7 @@ UnmapSubwindows(WindowPtr pWin) else { WindowPtr ptmp; -(*pScreen-MarkOverlappedWindows) (pWin, pLayerWin, - (WindowPtr *) NULL); +(*pScreen-MarkOverlappedWindows) (pWin, pLayerWin, NULL); (*pScreen-MarkWindow) (pLayerWin-parent); /* Windows between pWin and pLayerWin may not have been marked */ @@ -2875,7 +2872,7 @@ HandleSaveSet(ClientPtr client) } free(client-saveSet); client-numSaved = 0; -client-saveSet = (SaveSetElt *) NULL; +client-saveSet = NULL; } /** @@ -3591,7 +3588,7 @@ SetRootClip(ScreenPtr pScreen, Bool enable) if (pWin-firstChild) { anyMarked |= (*pScreen-MarkOverlappedWindows) (pWin-firstChild, pWin-firstChild, -(WindowPtr *) NULL); +NULL); } else { (*pScreen-MarkWindow) (pWin); -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 18/18] fb: fb{Map,Unmap}Window - fb{Realize,Unrealize}Window
Make the function names match the screen slot name. Signed-off-by: Adam Jackson a...@redhat.com --- fb/fb.h| 4 ++-- fb/fbscreen.c | 4 ++-- fb/fbwindow.c | 4 ++-- fb/wfbrename.h | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/fb/fb.h b/fb/fb.h index 9057767..d176bb3 100644 --- a/fb/fb.h +++ b/fb/fb.h @@ -1621,13 +1621,13 @@ extern _X_EXPORT Bool fbDestroyWindow(WindowPtr pWin); extern _X_EXPORT Bool - fbMapWindow(WindowPtr pWindow); + fbRealizeWindow(WindowPtr pWindow); extern _X_EXPORT Bool fbPositionWindow(WindowPtr pWin, int x, int y); extern _X_EXPORT Bool - fbUnmapWindow(WindowPtr pWindow); + fbUnrealizeWindow(WindowPtr pWindow); extern _X_EXPORT void diff --git a/fb/fbscreen.c b/fb/fbscreen.c index 0d4d87f..71bcc5d 100644 --- a/fb/fbscreen.c +++ b/fb/fbscreen.c @@ -110,8 +110,8 @@ fbSetupScreen(ScreenPtr pScreen, void *pbits, /* pointer to screen bitmap */ pScreen-DestroyWindow = fbDestroyWindow; pScreen-PositionWindow = fbPositionWindow; pScreen-ChangeWindowAttributes = fbChangeWindowAttributes; -pScreen-RealizeWindow = fbMapWindow; -pScreen-UnrealizeWindow = fbUnmapWindow; +pScreen-RealizeWindow = fbRealizeWindow; +pScreen-UnrealizeWindow = fbUnrealizeWindow; pScreen-CopyWindow = fbCopyWindow; pScreen-CreatePixmap = fbCreatePixmap; pScreen-DestroyPixmap = fbDestroyPixmap; diff --git a/fb/fbwindow.c b/fb/fbwindow.c index c90175f..7a5fac8 100644 --- a/fb/fbwindow.c +++ b/fb/fbwindow.c @@ -46,7 +46,7 @@ fbDestroyWindow(WindowPtr pWin) } Bool -fbMapWindow(WindowPtr pWindow) +fbRealizeWindow(WindowPtr pWindow) { return TRUE; } @@ -58,7 +58,7 @@ fbPositionWindow(WindowPtr pWin, int x, int y) } Bool -fbUnmapWindow(WindowPtr pWindow) +fbUnrealizeWindow(WindowPtr pWindow) { return TRUE; } diff --git a/fb/wfbrename.h b/fb/wfbrename.h index 54d00d0..749c6d0 100644 --- a/fb/wfbrename.h +++ b/fb/wfbrename.h @@ -88,7 +88,6 @@ #define fbInstallColormap wfbInstallColormap #define fbLaneTable wfbLaneTable #define fbListInstalledColormaps wfbListInstalledColormaps -#define fbMapWindow wfbMapWindow #define FbMergeRopBits wFbMergeRopBits #define fbOddStipple wfbOddStipple #define fbOddTile wfbOddTile @@ -134,6 +133,7 @@ #define fbQueryBestSize wfbQueryBestSize #define fbRasterizeTrapezoid wfbRasterizeTrapezoid #define fbRealizeFont wfbRealizeFont +#define fbRealizeWindow wfbRealizeWindow #define fbReduceRasterOp wfbReduceRasterOp #define fbReplicatePixel wfbReplicatePixel #define fbResolveColor wfbResolveColor @@ -160,7 +160,7 @@ #define fbTrapezoids wfbTrapezoids #define fbTriangles wfbTriangles #define fbUninstallColormap wfbUninstallColormap -#define fbUnmapWindow wfbUnmapWindow +#define fbUnrealizeWindow wfbUnrealizeWindow #define fbUnrealizeFont wfbUnrealizeFont #define fbValidateGC wfbValidateGC #define fbWinPrivateKeyRec wfbWinPrivateKeyRec -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 12/18] dix: Remove DIXsaveUnder bit from the Window
Signed-off-by: Adam Jackson a...@redhat.com --- dix/window.c| 1 - include/windowstr.h | 1 - 2 files changed, 2 deletions(-) diff --git a/dix/window.c b/dix/window.c index 52e69ef..f227e4c 100644 --- a/dix/window.c +++ b/dix/window.c @@ -362,7 +362,6 @@ SetWindowToDefaults(WindowPtr pWin) pWin-cursorIsNone = TRUE; pWin-backingStore = NotUseful; -pWin-DIXsaveUnder = FALSE; pWin-backStorage = (void *) NULL; pWin-mapped = FALSE; /* off */ diff --git a/include/windowstr.h b/include/windowstr.h index 6b79bbd..81f5f8c 100644 --- a/include/windowstr.h +++ b/include/windowstr.h @@ -151,7 +151,6 @@ typedef struct _Window { unsigned cursorIsNone:1;/* else real cursor (might inherit) */ unsigned backingStore:2; unsigned saveUnder:1; -unsigned DIXsaveUnder:1; unsigned bitGravity:4; unsigned winGravity:4; unsigned overrideRedirect:1; -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 16/18] dix: Remove an obfuscatory macro
Signed-off-by: Adam Jackson a...@redhat.com --- dix/window.c | 5 + 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/dix/window.c b/dix/window.c index 295038a..7a2866a 100644 --- a/dix/window.c +++ b/dix/window.c @@ -1812,8 +1812,6 @@ ResizeChildrenWinSize(WindowPtr pWin, int dx, int dy, int dw, int dh) #define ChangeMask ((Mask)(CWX | CWY | CWWidth | CWHeight)) -#define IllegalInputOnlyConfigureMask (CWBorderWidth) - /* * IsSiblingAboveMe * returns Above if pSib above pMe in stack or Below otherwise @@ -2091,8 +2089,7 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client) h = pWin-drawable.height, bw = pWin-borderWidth; int rc, action, smode = Above; -if ((pWin-drawable.class == InputOnly) -(mask IllegalInputOnlyConfigureMask)) +if ((pWin-drawable.class == InputOnly) (mask CWBorderWidth)) return BadMatch; if ((mask CWSibling) !(mask CWStackMode)) -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 17/18] mi: miSlideAndSizeWindow - miResizeWindow
Make the function name match the screen slot name. Signed-off-by: Adam Jackson a...@redhat.com --- mi/mi.h| 12 ++-- mi/miscrinit.c | 2 +- mi/miwindow.c | 5 ++--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/mi/mi.h b/mi/mi.h index 8cb3ce7..5a455c9 100644 --- a/mi/mi.h +++ b/mi/mi.h @@ -470,12 +470,12 @@ extern _X_EXPORT void miMoveWindow(WindowPtr /*pWin */ , VTKind /*kind */ ); -extern _X_EXPORT void miSlideAndSizeWindow(WindowPtr /*pWin */ , - int /*x */ , - int /*y */ , - unsigned int /*w */ , - unsigned int /*h */ , - WindowPtr/*pSib */ +extern _X_EXPORT void miResizeWindow(WindowPtr /*pWin */ , + int /*x */ , + int /*y */ , + unsigned int /*w */ , + unsigned int /*h */ , + WindowPtr/*pSib */ ); extern _X_EXPORT WindowPtr miGetLayerWindow(WindowPtr /*pWin */ diff --git a/mi/miscrinit.c b/mi/miscrinit.c index ec4d108..327bd15 100644 --- a/mi/miscrinit.c +++ b/mi/miscrinit.c @@ -264,7 +264,7 @@ miScreenInit(ScreenPtr pScreen, void *pbits, /* pointer to screen bits */ pScreen-MarkWindow = miMarkWindow; pScreen-MarkOverlappedWindows = miMarkOverlappedWindows; pScreen-MoveWindow = miMoveWindow; -pScreen-ResizeWindow = miSlideAndSizeWindow; +pScreen-ResizeWindow = miResizeWindow; pScreen-GetLayerWindow = miGetLayerWindow; pScreen-HandleExposures = miHandleValidateExposures; pScreen-ReparentWindow = (ReparentWindowProcPtr) 0; diff --git a/mi/miwindow.c b/mi/miwindow.c index ba4c9ed..cfe085a 100644 --- a/mi/miwindow.c +++ b/mi/miwindow.c @@ -337,9 +337,8 @@ miRecomputeExposures(WindowPtr pWin, void *value) } void -miSlideAndSizeWindow(WindowPtr pWin, - int x, int y, - unsigned int w, unsigned int h, WindowPtr pSib) +miResizeWindow(WindowPtr pWin, int x, int y, unsigned int w, unsigned int h, + WindowPtr pSib) { WindowPtr pParent; Bool WasViewable = (Bool) (pWin-viewable); -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH 10/18] mi: Remove a can't-happen from miValidateTree
The only way you can get VisibilityNotViewable is to be, you know, not viewable. Since this test is inside if (pWin-viewable)... Signed-off-by: Adam Jackson a...@redhat.com --- mi/mivaltree.c | 30 -- 1 file changed, 30 deletions(-) diff --git a/mi/mivaltree.c b/mi/mivaltree.c index 8e4e9a9..b1caec9 100644 --- a/mi/mivaltree.c +++ b/mi/mivaltree.c @@ -478,33 +478,6 @@ miComputeClips(WindowPtr pParent, (*pScreen-ClipNotify) (pParent, dx, dy); } -static void -miTreeObscured(WindowPtr pParent) -{ -WindowPtr pChild; -int oldVis; - -pChild = pParent; -while (1) { -if (pChild-viewable) { -oldVis = pChild-visibility; -if (oldVis != (pChild-visibility = VisibilityFullyObscured) -((pChild- - eventMask | wOtherEventMasks(pChild)) VisibilityChangeMask)) -SendVisibilityNotify(pChild); -if (pChild-firstChild) { -pChild = pChild-firstChild; -continue; -} -} -while (!pChild-nextSib (pChild != pParent)) -pChild = pChild-parent; -if (pChild == pParent) -break; -pChild = pChild-nextSib; -} -} - static RegionPtr getBorderClip(WindowPtr pWin) { @@ -683,9 +656,6 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */ RegionSubtract(totalClip, totalClip, pWin-borderSize); } } -else if (pWin-visibility == VisibilityNotViewable) { -miTreeObscured(pWin); -} } else { if (pWin-valdata) { -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH 13/18] dix: Lower backStorage to a bit instead of a pointer
On Tue, Sep 23, 2014 at 12:32 PM, Adam Jackson a...@redhat.com wrote: Signed-off-by: Adam Jackson a...@redhat.com --- composite/compinit.c | 4 ++-- dix/window.c | 2 +- include/windowstr.h | 2 +- mi/miexpose.c| 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/composite/compinit.c b/composite/compinit.c index 48e938f..111c16e 100644 --- a/composite/compinit.c +++ b/composite/compinit.c @@ -119,12 +119,12 @@ compChangeWindowAttributes(WindowPtr pWin, unsigned long mask) pScreen-backingStoreSupport != NotUseful) { if (pWin-backingStore != NotUseful !pWin-backStorage) { compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic); -pWin-backStorage = (void *) (intptr_t) 1; +pWin-backStorage = TRUE; } else if (pWin-backingStore == NotUseful pWin-backStorage) { compUnredirectWindow(serverClient, pWin, CompositeRedirectAutomatic); -pWin-backStorage = NULL; +pWin-backStorage = FALSE; Here you use TRUE / FALSE } } diff --git a/dix/window.c b/dix/window.c index f227e4c..e1645c3 100644 --- a/dix/window.c +++ b/dix/window.c @@ -362,7 +362,7 @@ SetWindowToDefaults(WindowPtr pWin) pWin-cursorIsNone = TRUE; pWin-backingStore = NotUseful; -pWin-backStorage = (void *) NULL; +pWin-backStorage = 0; Here you use 0. pWin-mapped = FALSE; /* off */ pWin-realized = FALSE; /* off */ diff --git a/include/windowstr.h b/include/windowstr.h index 81f5f8c..740f4a6 100644 --- a/include/windowstr.h +++ b/include/windowstr.h @@ -144,12 +144,12 @@ typedef struct _Window { Mask eventMask; /* mask from the creating client */ PixUnion background; PixUnion border; -void *backStorage; /* null when BS disabled */ WindowOptPtr optional; unsigned backgroundState:2; /* None, Relative, Pixel, Pixmap */ unsigned borderIsPixel:1; unsigned cursorIsNone:1;/* else real cursor (might inherit) */ unsigned backingStore:2; +unsigned backStorage:1; /* if bs is allocated */ unsigned saveUnder:1; unsigned bitGravity:4; unsigned winGravity:4; diff --git a/mi/miexpose.c b/mi/miexpose.c index 555f3b2..de8ee6c 100644 --- a/mi/miexpose.c +++ b/mi/miexpose.c @@ -143,7 +143,7 @@ miHandleExposures(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, if (!pGC-graphicsExposures (pDstDrawable-type == DRAWABLE_PIXMAP) ((pSrcDrawable-type == DRAWABLE_PIXMAP) || - (((WindowPtr) pSrcDrawable)-backStorage == NULL))) + (((WindowPtr) pSrcDrawable)-backStorage == 0))) return NULL; Here you use 0. Why the inconsistency? srcBox.x1 = srcx; -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel -- Jasper ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH 17/18] mi: miSlideAndSizeWindow - miResizeWindow
I sort of like slide because it gives the impression that we copy the framebuffer contents if the size of the window hasn't changed. That said, if we want to change this, we should change the name of the slot too. Reviewed-by: Jasper St. Pierre jstpie...@mecheye.net On Tue, Sep 23, 2014 at 12:32 PM, Adam Jackson a...@redhat.com wrote: Make the function name match the screen slot name. Signed-off-by: Adam Jackson a...@redhat.com --- mi/mi.h| 12 ++-- mi/miscrinit.c | 2 +- mi/miwindow.c | 5 ++--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/mi/mi.h b/mi/mi.h index 8cb3ce7..5a455c9 100644 --- a/mi/mi.h +++ b/mi/mi.h @@ -470,12 +470,12 @@ extern _X_EXPORT void miMoveWindow(WindowPtr /*pWin */ , VTKind /*kind */ ); -extern _X_EXPORT void miSlideAndSizeWindow(WindowPtr /*pWin */ , - int /*x */ , - int /*y */ , - unsigned int /*w */ , - unsigned int /*h */ , - WindowPtr/*pSib */ +extern _X_EXPORT void miResizeWindow(WindowPtr /*pWin */ , + int /*x */ , + int /*y */ , + unsigned int /*w */ , + unsigned int /*h */ , + WindowPtr/*pSib */ ); extern _X_EXPORT WindowPtr miGetLayerWindow(WindowPtr /*pWin */ diff --git a/mi/miscrinit.c b/mi/miscrinit.c index ec4d108..327bd15 100644 --- a/mi/miscrinit.c +++ b/mi/miscrinit.c @@ -264,7 +264,7 @@ miScreenInit(ScreenPtr pScreen, void *pbits, /* pointer to screen bits */ pScreen-MarkWindow = miMarkWindow; pScreen-MarkOverlappedWindows = miMarkOverlappedWindows; pScreen-MoveWindow = miMoveWindow; -pScreen-ResizeWindow = miSlideAndSizeWindow; +pScreen-ResizeWindow = miResizeWindow; pScreen-GetLayerWindow = miGetLayerWindow; pScreen-HandleExposures = miHandleValidateExposures; pScreen-ReparentWindow = (ReparentWindowProcPtr) 0; diff --git a/mi/miwindow.c b/mi/miwindow.c index ba4c9ed..cfe085a 100644 --- a/mi/miwindow.c +++ b/mi/miwindow.c @@ -337,9 +337,8 @@ miRecomputeExposures(WindowPtr pWin, void *value) } void -miSlideAndSizeWindow(WindowPtr pWin, - int x, int y, - unsigned int w, unsigned int h, WindowPtr pSib) +miResizeWindow(WindowPtr pWin, int x, int y, unsigned int w, unsigned int h, + WindowPtr pSib) { WindowPtr pParent; Bool WasViewable = (Bool) (pWin-viewable); -- 1.9.3 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel -- Jasper ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH 13/18] dix: Lower backStorage to a bit instead of a pointer
On Tue, 2014-09-23 at 13:03 -0600, Jasper St. Pierre wrote: Here you use 0. Why the inconsistency? No especially good reason. In the tree I'm actually working on [1] this particular lowering happened after I'd factored out the redirection logic in compChangeWindowAttributes to its own function. When I reordered things so the trivial cleanuppy bits came before functionality this change conflicted, and when I fixed it up my hands typed the other thing. Good eye though, I'll fix it up before sending a pull request. [1] - http://cgit.freedesktop.org/~ajax/xserver/log/?h=bsbs - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH 17/18] mi: miSlideAndSizeWindow - miResizeWindow
On Tue, 2014-09-23 at 13:07 -0600, Jasper St. Pierre wrote: I sort of like slide because it gives the impression that we copy the framebuffer contents if the size of the window hasn't changed. That said, if we want to change this, we should change the name of the slot too. Meh. This change was in favor of the majority, the other occupiers of that slot are all named fooResizeWindow. The DDX documentation says The formerly dix function SlideAndSizeWindow has moved to ddx and is accessed via [pScreen-ResizeWindow], which apparently happened between X11R5 and X11R6.0. I guess I don't have a strong opinion, but SlideAndSize seems awkward. - aja ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH] uxa/video: only call intel_xvmc_adaptor_init when xvmc is enabled
Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de --- src/uxa/intel_video.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/uxa/intel_video.c b/src/uxa/intel_video.c index 310b6c9..33d447c 100644 --- a/src/uxa/intel_video.c +++ b/src/uxa/intel_video.c @@ -239,8 +239,10 @@ void intel_video_init(ScreenPtr screen) intel-XvEnabled = FALSE; } +#ifdef INTEL_XVMC if (texturedAdaptor) intel_xvmc_adaptor_init(screen); +#endif free(adaptors); } -- 1.8.5.5 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[Bug 84186] X 1.16.1 RC 1 segfaults and reports XXX fail to create fbo with Radeon HD 7970.
https://bugs.freedesktop.org/show_bug.cgi?id=84186 --- Comment #2 from John Steele Scott tooj...@toojays.net --- Okay, I've figured out how to get a bit more debug information out of glamor (setting the environment variable GLAMOR_DEBUG=1), and have installed debug symbols. The following log message is shown twice before the segfault: glamor_pixmap_ensure_fb:glamor: Failed to create fbo, incomplete attachment The backtrace at the first of these points looks like: #0 glamor_pixmap_ensure_fb (fbo=fbo@entry=0x56212e50) at ../../glamor/glamor_fbo.c:218 str = 0x713b66ab incomplete attachment status = 36054 err = 0 __PRETTY_FUNCTION__ = glamor_pixmap_ensure_fb __FUNCTION__ = glamor_pixmap_ensure_fb #1 0x713ac2b5 in glamor_create_fbo_from_tex (glamor_priv=0x55b24740, w=1024, h=1056, format=6408, tex=2, flag=261) at ../../glamor/glamor_fbo.c:250 fbo = 0x56212e50 #2 0x713837d8 in glamor_create_pixmap (screen=0x559d57e0, w=1024, h=1056, depth=32, usage=261) at ../../glamor/glamor.c:201 type = GLAMOR_MEMORY pixmap_priv = 0x56212dd0 fbo = 0x8cd6 #3 0x7203ab01 in radeon_glamor_create_pixmap (screen=0x559d57e0, w=1024, h=1056, depth=32, usage=261) at ../../src/radeon_glamor.c:197 priv = 0x55af5290 new_pixmap = 0x105 #4 0x7138bfc1 in glamor_realize_glyph_caches (pScreen=0x559d57e0) at ../../glamor/glamor_glyphs.c:332 depth = 32 pPictFormat = 0x55a2b9c8 pixmap = 0x20 picture = 0x55a2b9c8 component_alpha = 0 error = 0 formats = {134316032, 537036936} #5 0x7138277d in glamor_create_screen_resources (screen=0x559d57e0) at ../../glamor/glamor.c:305 ret = 1 #6 0x720332d3 in RADEONCreateScreenResources_KMS (pScreen=0x559d57e0) at ../../src/radeon_kms.c:229 pScrn = 0x559d64b0 info = 0x559d7300 pixmap = optimized out #7 0x5561fc3e in xf86CrtcCreateScreenResources (screen=0x559d57e0) at ../../../../hw/xfree86/modes/xf86Crtc.c:709 scrn = optimized out config = optimized out #8 0x555aef26 in dix_main (argc=3, argv=0x7fffe6a8, envp=optimized out) at ../../dix/main.c:223 pScreen = 0x559d57e0 i = 0 alwaysCheckForInput = {0, 1} #9 0x75d13b45 in __libc_start_main (main=0x555994e0 main, argc=3, argv=0x7fffe6a8, init=optimized out, fini=optimized out, rtld_fini=optimized out, stack_end=0x7fffe698) at libc-start.c:287 result = optimized out unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -8785920377037677806, 93824992515301, 140737488348832, 0, 0, 8785920376303360786, 8785898719497657106}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x5571a810 __libc_csu_init, 0x7fffe6a8}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1433511952}}} not_first_call = optimized out #10 0x5559950e in _start () No symbol table info available. The backtrace at the second looks like: #0 glamor_pixmap_ensure_fb (fbo=fbo@entry=0x56219e50) at ../../glamor/glamor_fbo.c:218 str = 0x713b66ab incomplete attachment status = 36054 err = 0 __PRETTY_FUNCTION__ = glamor_pixmap_ensure_fb __FUNCTION__ = glamor_pixmap_ensure_fb #1 0x713ac2b5 in glamor_create_fbo_from_tex (glamor_priv=glamor_priv@entry=0x55b24740, w=2560, h=1440, format=6408, tex=tex@entry=3, flag=flag@entry=0) at ../../glamor/glamor_fbo.c:250 fbo = 0x56219e50 #2 0x71383192 in glamor_set_pixmap_texture (pixmap=pixmap@entry=0x561edb60, tex=3) at ../../glamor/glamor.c:103 screen = optimized out pixmap_priv = 0x55ac7160 fbo = optimized out #3 0x7137fe49 in glamor_egl_create_textured_pixmap (pixmap=pixmap@entry=0x561edb60, handle=handle@entry=49, stride=stride@entry=10240) at ../../../../glamor/glamor_egl.c:314 screen = 0x559d57e0 scrn = optimized out pixmap_priv = 0x5622d0d0 texture = 3 name = optimized out ret = 0 __PRETTY_FUNCTION__ = glamor_egl_create_textured_pixmap #4 0x7138003d in glamor_egl_create_textured_screen (screen=screen@entry=0x559d57e0, handle=handle@entry=49, stride=stride@entry=10240) at ../../../../glamor/glamor_egl.c:232 scrn = 0x559d64b0 pixmap_priv = 0x5622d0d0 screen_pixmap = 0x561edb60 #5 0x7138013d in glamor_egl_create_textured_screen_ext (screen=screen@entry=0x559d57e0, handle=49, stride=10240, back_pixmap=back_pixmap@entry=0x0) at ../../../../glamor/glamor_egl.c:254 scrn = optimized out #6 0x7203a6ec in radeon_glamor_create_screen_resources (screen=screen@entry=0x559d57e0) at ../../src/radeon_glamor.c:67 scrn = 0x559d64b0 info = 0x559d7300 #7
[Bug 84253] New: XDrawSegments() output truncated if EXAPixmaps = on
https://bugs.freedesktop.org/show_bug.cgi?id=84253 Priority: medium Bug ID: 84253 Assignee: xorg-driver-ati@lists.x.org Summary: XDrawSegments() output truncated if EXAPixmaps = on QA Contact: xorg-t...@lists.x.org Severity: normal Classification: Unclassified OS: Linux (All) Reporter: mse00...@gmail.com Hardware: x86 (IA32) Status: NEW Version: unspecified Component: Driver/Radeon Product: xorg Created attachment 106748 -- https://bugs.freedesktop.org/attachment.cgi?id=106748action=edit Test application Since several years MSEgui doesn't work with radeon driver anymore. http://sourceforge.net/projects/mseide-msegui/ https://bugs.launchpad.net/ubuntu/+bug/373781 https://bugzilla.novell.com/show_bug.cgi?id=690766 https://bugzilla.novell.com/show_bug.cgi?id=852944 https://bugs.freedesktop.org/show_bug.cgi?id=69543 I again unsuccessfully spent several days to try to find a bug in MSEgui, try to find a workaround or to find a small testapplication which shows the problems. MSEgui paints on a pixmap with the size of the update region which is moved to the window by xcopyarea() after the drawing is complete. The attached application draws a diagonal line over a grid cell. Every 2 seconds the cell will be invalidated and refreshed. At startup the display is OK, after 2 seconds the diagonal line will be truncated. This has been reproduced on three installations. If the test-program is started with any command line parameter (ex. ./radeonline abc the drawing of the blue rectangle is disabled. Two of the three installations always show the diagonal line in this mode with full length, one truncates it after 2 seconds. With the option EXAPixmaps off in xorg.conf all is OK. The simplified testprogram from https://bugs.freedesktop.org/show_bug.cgi?id=69543 shows a distorted display also by directly drawing to the window so the double buffering probably is not the culprit. -- You are receiving this mail because: You are the assignee for the bug. ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati
[Bug 84253] XDrawSegments() output truncated if EXAPixmaps = on
https://bugs.freedesktop.org/show_bug.cgi?id=84253 Martin Schreiber mse00...@gmail.com changed: What|Removed |Added CC||mse00...@gmail.com -- You are receiving this mail because: You are the assignee for the bug. ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati
[Bug 84255] New: UVD / VDPAU not working on kaveri with VLC
https://bugs.freedesktop.org/show_bug.cgi?id=84255 Priority: medium Bug ID: 84255 Assignee: xorg-driver-ati@lists.x.org Summary: UVD / VDPAU not working on kaveri with VLC QA Contact: xorg-t...@lists.x.org Severity: normal Classification: Unclassified OS: Linux (All) Reporter: r...@cryptolab.net Hardware: x86-64 (AMD64) Status: NEW Version: git Component: Driver/Radeon Product: xorg I'm running several AMD-based systems, including two with Kabini E-350 chips and one with a Kaveri A10-7700 one. All runs a Slackware64 system, with custom built 3.16.3 kernel and libdrm, glamor, mesa and xf86-video-ati built from git pulls, dated on the 20th of september, with exact same options. Libvdpau 0.8 is installed on all systems, compiled with the same options. vdpauinfo 0.1 is also installed, as well as x264, ffmpeg and vlc, all compiled from git pulls, dated from the same 20th of september, with the same options on all platforms. The only differing options during compiles is that I use -march=bdver3 -mtune=bdver3 on Kaveri while I use -march=btver1 -mtune=btver1 on Kabini. On Kaveri, vdpauinfo shows the following (only the begining): ** bash-4.3$ vdpauinfo -h display: :0 screen: 0 API version: 1 Information string: G3DVL VDPAU Driver Shared Library version 1.0 Video surface: name width height types --- 42016384 16384 NV12 YV12 42216384 16384 UYVY YUYV 44416384 16384 Y8U8V8A8 V8U8Y8A8 Decoder capabilities: name level macbs width height --- MPEG1 0 9216 2048 1152 MPEG2_SIMPLE 3 9216 2048 1152 MPEG2_MAIN3 9216 2048 1152 H264_BASELINE41 9216 2048 1152 H264_MAIN41 9216 2048 1152 H264_HIGH41 9216 2048 1152 VC1_ADVANCED 4 9216 2048 1152 MPEG4_PART2_SP3 9216 2048 1152 MPEG4_PART2_ASP 5 9216 2048 1152 (snip) ** On Kabini, I have the following output : ** bash-4.3$ vdpauinfo display: :0 screen: 0 API version: 1 Information string: G3DVL VDPAU Driver Shared Library version 1.0 Video surface: name width height types --- 42016384 16384 NV12 YV12 42216384 16384 UYVY YUYV 44416384 16384 Y8U8V8A8 V8U8Y8A8 Decoder capabilities: name level macbs width height --- MPEG1 0 9216 2048 1152 MPEG2_SIMPLE 3 9216 2048 1152 MPEG2_MAIN3 9216 2048 1152 H264_BASELINE41 9216 2048 1152 H264_MAIN41 9216 2048 1152 H264_HIGH41 9216 2048 1152 VC1_ADVANCED 4 9216 2048 1152 MPEG4_PART2_SP3 9216 2048 1152 MPEG4_PART2_ASP 5 9216 2048 1152 * So far so good, the capabilities of both systems seem to be identical. I have several H264 HD1080p videos with High Main profiles, and 41 levels. They properly play on Kabini using VLC with VDPAU. The CPU usage is low for a HD file and I can see in the vlc logs the following output : [7f5954044cd8] vdpau_avcodec generic debug: video surface limits: 16384x16384 [7f5954044cd8] vdpau_avcodec generic debug: decoder profile limits: level 41 mb 9216 2048x1152 [7f5954044cd8] core generic debug: using hw decoder module vdpau_avcodec [7f5970d42768] avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding. [7f5970d42768] avcodec decoder debug: available hardware decoder output format 109 (vdpau) [7f5970d42768] avcodec decoder debug: available software decoder output format 0 (yuv420p) [7f5954044cd8] core generic debug: looking for hw decoder module matching any: 2 candidates [7f5954044cd8] vdpau_avcodec generic debug: video surface limits: 16384x16384 [7f5954044cd8] vdpau_avcodec generic debug: decoder profile limits: level 41 mb 9216 2048x1152 [7f5954044cd8] core generic debug: using hw decoder module vdpau_avcodec [7f5970d42768] avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding. On Kaveri, this does not work. CPU usage is high and no hardware decoding seems to be used. How is possible to debug this issue? -- You are receiving this mail because: You are the assignee for the bug. ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati
[Bug 84255] UVD / VDPAU not working on kaveri with VLC
https://bugs.freedesktop.org/show_bug.cgi?id=84255 --- Comment #1 from Alex Deucher ag...@yahoo.com --- Can you attach the dmesg output, xorg log, and vlc log from the kaveri system? -- You are receiving this mail because: You are the assignee for the bug. ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati
[Bug 84255] UVD / VDPAU not working on kaveri with VLC
https://bugs.freedesktop.org/show_bug.cgi?id=84255 --- Comment #2 from Richard Van Den Boom r...@cryptolab.net --- Created attachment 106755 -- https://bugs.freedesktop.org/attachment.cgi?id=106755action=edit Dmesg output -- You are receiving this mail because: You are the assignee for the bug. ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati
[Bug 84255] UVD / VDPAU not working on kaveri with VLC
https://bugs.freedesktop.org/show_bug.cgi?id=84255 --- Comment #3 from Richard Van Den Boom r...@cryptolab.net --- Created attachment 106756 -- https://bugs.freedesktop.org/attachment.cgi?id=106756action=edit VLC log with -vvv playing a HD mkv file -- You are receiving this mail because: You are the assignee for the bug. ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati
[Bug 84255] UVD / VDPAU not working on kaveri with VLC
https://bugs.freedesktop.org/show_bug.cgi?id=84255 --- Comment #5 from Richard Van Den Boom r...@cryptolab.net --- Here we go. There are some weird messages in the X11 log I was not aware of. Don't know if it's related. -- You are receiving this mail because: You are the assignee for the bug. ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati
Bug#762047: xserver-xorg-video-ati: Black screen with mouse cursor on PowerPC
On 23.09.2014 00:25, Bill Chatfield wrote: If I understand this correctly, then one of the defects in this situation is that the old radeonfb, nouveaufb, etc fb device drivers are still being compiled into the kernel. This shouldn't happen if they're not really supported by the rest of the system. I could file a bug in that regard, if that is the right thing to do. There is a file that attempts to blacklist all the old cardnamefb drivers, but since they are not loadable modules, this fails. You'd have to discuss that with the kernel package maintainers. I have determined that the reason why gdm and gnome will not run is because they require an accelerated driver, which radeonfb does not support. So I either have to use radeonfb with xfce or get the radeon/drm to work so I can run gnome. Unfortunately, the upsream Mesa r300 driver currently doesn't work correctly on big endian hosts. That would need to be fixed before you can run gnome-shell. So I'm afraid there's no obvious 'right thing to do', it's more a 'pick your poison' kind of situation. -- Earthling Michel Dänzer| http://www.amd.com Libre software enthusiast |Mesa and X developer ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati
[Bug 84253] XDrawSegments() output truncated if EXAPixmaps = on
https://bugs.freedesktop.org/show_bug.cgi?id=84253 Michel Dänzer mic...@daenzer.net changed: What|Removed |Added Assignee|xorg-driver-ati@lists.x.org |xorg-t...@lists.x.org Component|Driver/Radeon |Server/Acceleration/EXA --- Comment #1 from Michel Dänzer mic...@daenzer.net --- Probably an EXA issue. Option EXAPixmaps off mostly avoids the hardware acceleration paths in EXA. -- You are receiving this mail because: You are the assignee for the bug. ___ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati