[ANNOUNCE] xorg-server 1.11.2
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 == Description == This is the second release candidate for xorg-server 1.11.2 and contains fixes for various crashes and correctness issues fixed since the previous release. == Known Issues == Important issues are listed in the 1.11 tracker bug: https://bugs.freedesktop.org/show_bug.cgi?id=xserver-1.11 * #17013: Issues when mising Xinerama and XCopyArea/Xdamage * Patch on xorg-devel for review, will hopefully be in 1.11.3 * #17431: xorg can segfault in VidModeGetFirstModeline * A workaround is ready. Please review and submit to master first. * #29251: [from 1.8.x] server crash destroying GLX pixmaps * #39580: [from 1.9.x] crash in GLX when resizing a window * #39949: [from 1.9.x] RandR panning scaling don't work * #41124: [from 1.9.x] Another crash in GLX/DRI2 when resizing a window * #41211: [from 1.10.x] A DRI2 crash regression * A workaround is ready. Please review and submit to master first. * #42008: Double free using intel drivers * A fix is ready. Please review and submit to master first. * #42219: [from 1.10.x] Composite bug sometimes shows empty tooltips Some additional known issues from the 1.12 tracker would be considered for 1.11 if a fix becomes available: https://bugs.freedesktop.org/show_bug.cgi?id=xserver-1.12 * #11053: Buffer overflow in fbCopyArea() * Has a patch, ajax thinks the patch is wrong * #23938: [from 1.6.x] keys occasionally get stuck * #24094: CTRL-ALT-F1 doesn't switch to VT1 (provides garbage input to terminal instead) * XKB weirdness. This looks diagnosed, so let's get a patch tested. * #27428: xrandr events delayed until a key is pressed * #27804: Enter/Leave event woes with multiple master devices * #31501: [from 1.8.x] crash accessing font info with xfs in fontpath * #32765: [from 1.8.x] Xephyr segfaults on 24bpp hosts * A possible fix is discussed, but Keith didn't like it. * #39094: WaitFor does not handle EIO (causes 100% cpu load) * #41141: Wrong physical size reported for Acer Aspire One screen * A reviewed patch is idle on the list. Please get it merged into master. == New Issues == If you encounter an issue that you think should block a future 1.11 release, please follow the instructions listed in the wiki to raise this to our attention. http://www.x.org/wiki/Server111Branch == Changes since 1.11.1 RC1 == Alan Hourihane (1): dixfonts: Don't overwrite local c variable until new_closure is safely initialized. Carlos Garnacho (1): Xi: Fix passive XI2 ungrabs on XIAll[Master]Devices Jamey Sharp (1): Fix pixmap double-frees on error paths. Jeremy Huddleston (13): XQuartz: Use set_front_process rather than X11ApplicationSetFrontProcess since we're already in the AppKit thread XQuartz: pbproxy: Add missing AM_OBJCFLAGS configure.ac: Bump to 1.11.1.901 (1.11.2 RC1) Xnest: Match the host's keymap XQuartz: appledri: Set the correct reply length for XAppleDRICreatePixmap XQuartz: appledri: Fix byte swapping in replies XQuartz: appledri: Allow byte swapped requests XQuartz: applewm: Correct byte swapping in event notifications XQuartz: appledri: Correct byte swapping in event notifications XWin: windowswm: Correct byte swapping in event notifications configure.ac: Bump to 1.11.1.902 (1.11.2 RC2) Revert dix: don't XWarpPointer through the last slave anymore (#38313) configure.ac: Bump to 1.11.2 Jesse Barnes (1): crtc: match full preferred modes if possible when choosing an initial config Kirill Elagin (1): Fix server crash due to invalid images Matthieu Herrb (2): Fix CVE-2011-4028: File disclosure vulnerability. Fix CVE-2011-4029: File permission change vulnerability. Nobuhiro Iwamatsu (1): Disable check of double-aligned in test/input.c on Renesas SH Peter Harris (1): xkb: add missing swaps for xkbGetDeviceInfoReply Peter Hutterer (5): config: fix a log message dix: avoid using the VCP as modifier device dix: ignore devices when adding passive core grabs to list (#39545) dix: don't use the pointer as modifier device in UngrabKey. dix: don't XWarpPointer through the last slave anymore (#38313) Sam Spilsbury (1): Remove the SendEvent bit (0x80) before doing range checks on event type. Tomáš Trnka (1): Fix drain_console unregistration Ville Syrjala (1): composite: Update borderClip in compAllocPixmap() v...@picaros.org (1): Fix a rare memory leak git tag: xorg-server-1.11.2 http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.11.2.tar.bz2 MD5: 8796fff441e5435ee36a72579008af24 xorg-server-1.11.2.tar.bz2 SHA1: b4de5c599c90bd08d3122866ba68152cd59a880e xorg-server-1.11.2.tar.bz2 SHA256: fa415decf02027ca278b06254ccfbcceba2a83c2741405257ebf749da4a73cf2 xorg-server-1.11.2.tar.bz2 http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.11.2.tar.gz MD5:
Re: rotate display
This has been a major thorn in my side with Nvidia. Their driver does not support rotating a single display, it is all or nothing. The work-around is to use Xinerama. I have included the related parts of my config file, monitor 0 is normal and monitors 1 and 2 are rotated. As far as I can tell, both Damage and Composite extensions are not working with Xinerama, but I left the related configuration in the config file, so that if this ever changes, the configuration may be valid. If you wish to use rotation that differs between monitors along with Damage and Composite, you are likely out of luck with the Nvidia driver, and my talks with Nvidia revealed that they are not likely to fix this any time in the near future. -Neil- Section ServerLayout Identifier Layout0 Screen 0 Screen0 0 500 Screen 1 Screen1 1920 0 Screen 2 Screen2 3120 120 Option Xinerama 1 EndSection Section Device Identifier Device0 VendorName NVIDIA Corporation BoardName GeForce GT 440 Driver nvidia BusID PCI:1:0:0 Option backingstore true Option DamageEvents True Option TripleBuffer True Option AllowGLXWithComposite true Option RenderAccel true Screen 0 EndSection Section Device Identifier Device1 VendorName NVIDIA Corporation BoardName GeForce GT 440 Driver nvidia BusID PCI:1:0:0 Option backingstore true Option DamageEvents True Option TripleBuffer True Option AllowGLXWithComposite true Option RenderAccel true Option Rotate left Screen 1 EndSection Section Device Identifier Device2 Driver nvidia VendorName NVIDIA Corporation BoardName GeForce 9500 GT BusID PCI:2:0:0 Option backingstore true Option DamageEvents True Option TripleBuffer True Option AllowGLXWithComposite true Option RenderAccel true Option Rotate left Screen 0 EndSection On Thursday, November 03, 2011 16:45:11 Gergely Buday wrote: Hi, I have my X display as 2560x1024, two monitors in one, so I cannot rotate one of them. How I should modify my xorg.conf so that I can rotate the left one? - Gergely # nvidia-xconfig: X configuration file generated by nvidia-xconfig # nvidia-xconfig: version 270.41.06 (mockbuild@) Sun May 1 14:42:45 EDT 2011 Section ServerLayout #Screen1 at the right of Screen0 Identifier DualSreen Screen 0 Screen0 0 0 Screen 1 Screen1 RightOf Screen0 InputDeviceKeyboard0 CoreKeyboard InputDeviceMouse0 CorePointer Option TwinView 1 #To move windows between screens EndSection Section InputDevice # generated from data in /etc/sysconfig/keyboard Identifier Keyboard0 Driver keyboard Option XkbLayout us Option XkbModel pc105 EndSection Section InputDevice # generated from default Identifier Mouse0 Driver mouse Option Protocol auto Option Device /dev/input/mice Option Emulate3Buttons no Option ZAxisMapping 4 5 EndSection Section Monitor Identifier Monitor0 VendorName Unknown ModelName Unknown HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Option DPMS EndSection Section Monitor Identifier Monitor1 HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Option Enable true EndSection Section Device Identifier Videocard0 Driver nvidia EndSection Section Screen Identifier Screen0 Device Videocard0 MonitorMonitor0 DefaultDepth24 Option TwinView True SubSection Display Depth 24 Modes 1280x800_75.00 EndSubSection EndSection Section Screen Identifier Screen1 Device Videocard0 MonitorMonitor1 DefaultDepth24 Option TwinView True SubSection Display Depth 24 EndSubSection EndSection ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: neil.whelc...@gmail.com ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com
xrender issue
Hi, if I set an alpha-map to a destination picture via XRenderChangePicture(s-Dpy, Dest, CPAlphaMap, Att) ; the following XRenderComposite() call crash my X-server: Backtrace: [ 9911.289] 0: /usr/X11R6/bin/X (xorg_backtrace+0x37) [0x80e8997] [ 9911.289] Segmentation fault at address (nil) [ 9911.289] Fatal server error: [ 9911.289] Caught signal 11 (Segmentation fault). Server aborting [ 9911.289] [ 9911.289] Please consult the The X.Org Foundation support X.Org X Server 1.9.5 [ 9887.642] (II) Module intel: vendor=X.Org Foundation [ 9887.642] compiled for 1.9.5, module version = 2.14.0 is this a known bug? Thanks in advance. Peter ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com
Re: Simulating a mouse click
Thanks for the help. I was able to fix this now by setting the time member correctly. I had it set to CurrentTime before, but that didn't fix it. Cheers, Markus On 03.11.2011 00:34, Peter Hutterer wrote: On Wed, Nov 02, 2011 at 03:27:42PM +0100, Markus Kramer wrote: Hi, I'm attempting to use xlib to simulate a series of mouse clicks in an application (gedit). I found some posts that describe how to do this and it essentially works. I can do left clicks on buttons and so on. But if I generate a click on the menu bar, a menu opens and something breaks and no further ButtonPress/ButtonRelease events that I send will be processed by the application. When debugging it with xtrace I noticed that my events look slightly different than real left click events. Real: ButtonPress(4) [1]button=left button(0x01) [4]time=0x03752355 [8]root=0x0102 [12]event=0x01a3 [16]child=None(0x) [20]root-x=428 [22]root-y=33 [24]event-x=295 [26]event-y=10 state=0 [30]same-screen=true(0x01) My simulated event: SendEvent [1]propagate=true(0x01) [4]destination=PointerWindow(0x) event-mask=ButtonPress ButtonPress(4) [1]button=left button(0x01) [4]time=0x [8]root=0x0102 [12]event=0x012000a3 [16]child=None(0x) [20]root-x=407 [22]root-y=40 [24]event-x=274 [26]event-y=19 state=0 [30]same-screen=true(0x01) The field event of the real event says 0x01a3 mine is 0x012000a3. What is this event field about? It is not part of the ButtonPress struct. event is the window the event happens on. once you send a button down on a menu, the client usually grabs the device that sent the event and the event window from then on is the grab window, not necessarily the window underneath the cursor. If you're tyring to emulate click events, I recommend to use the XTest extension instead, it's much simpler to handle. Cheers, Peter This is the code that I use to simulate a left click: --- XEvent event; memset(event, 0, sizeof(XEvent)); XWindowAttributes attr; XGetWindowAttributes(dpy, windowId,attr); event.type = ButtonPress; event.xbutton.same_screen = TRUE; event.xbutton.root = root; event.xbutton.window = windowId; event.xbutton.subwindow = None; event.xbutton.x = x; event.xbutton.y = y; event.xbutton.x_root = attr.x + x; event.xbutton.y_root = attr.y + y; event.xbutton.state = 0; event.xbutton.button = Button1; XSendEvent(dpy, PointerWindow, True, ButtonPressMask,event); XFlush(dpy); // the same for ButtonRelease, with modified state and mask -- Thanks in advance. Markus ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: peter.hutte...@who-t.net ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com
Re: xrender issue
On Fri, 04 Nov 2011 11:26:07 +0100, Hans-Peter Budek peter.bu...@gmx.de wrote: Hi, if I set an alpha-map to a destination picture via XRenderChangePicture(s-Dpy, Dest, CPAlphaMap, Att) ; the following XRenderComposite() call crash my X-server: Backtrace: [ 9911.289] 0: /usr/X11R6/bin/X (xorg_backtrace+0x37) [0x80e8997] [ 9911.289] Segmentation fault at address (nil) [ 9911.289] Fatal server error: [ 9911.289] Caught signal 11 (Segmentation fault). Server aborting [ 9911.289] [ 9911.289] Please consult the The X.Org Foundation support X.Org X Server 1.9.5 [ 9887.642] (II) Module intel: vendor=X.Org Foundation [ 9887.642] compiled for 1.9.5, module version = 2.14.0 is this a known bug? It is now. I'll have a fix shortly, though you will still be triggering CPU fallbacks. Do you mind describing you use-case for alphamaps and could you create a little benchmark for your workload? -Chris -- Chris Wilson, Intel Open Source Technology Centre ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com
Re: xrender issue
On Fri, 04 Nov 2011 15:11:28 +0100, Hans-Peter Budek peter.bu...@gmx.de wrote: Chris Wilson wrote: Do you mind describing you use-case for alphamaps and could you create a little benchmark for your workload? -Chris I´am programming a animated crossfade from one window to another. Both windows are not created by my application. The content of both windows is previously stored in a ARGB32 picture (without a usable alpha channel). To apply an alpha channel, I use: So what I think you want to achieve is: dst = a * srcA + (1-a) * srcB which can be acheived (and hitting the accelerated paths) with: Picture a = XRenderCreateSolidFill(dpy, (XRenderColor){.alpha = 0x * Fade}); Picture ia = XRenderCreateSolidFill(dpy, (XRenderColor){.alpha = 0x * (1-Fade)}); XRenderComposite(dpy, PictOpSrc, srcA, a, dst, 0, 0, 0, 0, 0, 0, width, height); XRenderComposite(dpy, PictOpAdd, srcB, ia, dst, 0, 0, 0, 0, 0, 0, width, height); XRenderFreePicture(dpy, ia); XRenderFreePicture(dpy, a); -Chris -- Chris Wilson, Intel Open Source Technology Centre ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com
Re: xrender issue
Chris Wilson wrote: Do you mind describing you use-case for alphamaps and could you create a little benchmark for your workload? -Chris I´am programming a animated crossfade from one window to another. Both windows are not created by my application. The content of both windows is previously stored in a ARGB32 picture (without a usable alpha channel). To apply an alpha channel, I use: uint16_t v = a-Fade * 600 ; XRenderColor Fade = {.red = v, .green = v, .blue = v, .alpha = v} ; PixmapMap = XCreatePixmap(s-Dpy, f-Win, 1, 1, 8) ; XRenderPictFormat *Format8 = XRenderFindStandardFormat(s-Dpy, PictStandardA8) ; XRenderPictureAttributes Rep = {.repeat = RepeatNormal, .subwindow_mode = IncludeInferiors} ; Picture Alpha = XRenderCreatePicture(s-Dpy, Map, Format8, CPRepeat, Rep) ; Picture Dest = XRenderCreatePicture(s-Dpy, f-Win, s-RenderFormat, CPSubwindowMode, Rep) ; XRenderPictureAttributes Att = {.alpha_map = Alpha} ; XRenderFillRectangle(s-Dpy, PictOpSrc, Alpha, Fade, 0, 0, 1, 1) ; XRenderChangePicture(s-Dpy, a-OldPic, CPAlphaMap, Att) ; XRenderChangePicture(s-Dpy, a-NewPic, CPAlphaMap, Att) ; XRenderChangePicture(s-Dpy, Dest, CPAlphaMap, Att) ; Rendering to 'Dest' cause the described crash (even PictOpClear). I tried out 'PictStandardARGB32' alpha maps and maps with the same size as the windows (no 'RepeatNormal'). But that makes no difference. Unfortunately a copy of a 'PictStandardA8' picture to a 'PictStandardARGB32' (via PictOpSrc) does not only modifies the alpha values (it also clears the RGB values). Peter ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com
Re: xrender issue
Hi, So what I think you want to achieve is: dst = a * srcA + (1-a) * srcB yes, that's my intension which can be acheived (and hitting the accelerated paths) with: Picture a = XRenderCreateSolidFill(dpy, (XRenderColor){.alpha = 0x * Fade}); Picture ia = XRenderCreateSolidFill(dpy, (XRenderColor){.alpha = 0x * (1-Fade)}); XRenderComposite(dpy, PictOpSrc, srcA, a, dst, 0, 0, 0, 0, 0, 0, width, height); XRenderComposite(dpy, PictOpAdd, srcB, ia, dst, 0, 0, 0, 0, 0, 0, width, height); XRenderFreePicture(dpy, ia); XRenderFreePicture(dpy, a); -Chris That work's much better (and avoids the crash). I thought the third parameter of XRenderComposite() is something like a clipmask (after reading http://www.x.org/releases/current/doc/renderproto/renderproto.txt), but it is the missing multiplier. I will use your approach. Thank you very much. Peter Anyway, I wrote a little programm to reproduce the bug. /**/ /**/ #include stdint.h #include stdlib.h #include X11/Xlib.h #include X11/extensions/Xrender.h /**/ /**/ int main(int argc, char *argv[]) { const char *Host = (argc == 2) ? argv[1] : getenv(DISPLAY) ; if(Host != NULL) { Display *Dpy = XOpenDisplay(Host) ; if(Dpy != NULL) { Window Root = RootWindowOfScreen(DefaultScreenOfDisplay(Dpy)) ; Pixmap s = XCreatePixmap(Dpy, Root, 100, 100, 32) ; Pixmap d = XCreatePixmap(Dpy, Root, 100, 100, 32) ; Pixmap Map = XCreatePixmap(Dpy, Root, 1, 1, 8) ; XRenderPictFormat *Format32 = XRenderFindStandardFormat(Dpy, PictStandardARGB32) ; XRenderPictFormat *Format8 = XRenderFindStandardFormat(Dpy, PictStandardA8) ; uint16_t v = 0x8000 ; XRenderColor c = {.red = v, .green = v, .blue = v, .alpha = v} ; XRenderPictureAttributes Rep = {.repeat = RepeatNormal} ; Picture Alpha = XRenderCreatePicture(Dpy, Map, Format8, CPRepeat, Rep) ; Picture Src = XRenderCreatePicture(Dpy, s, Format32, 0, NULL) ; Picture Dest = XRenderCreatePicture(Dpy, d, Format32, 0, NULL) ; XRenderPictureAttributes Att = {.alpha_map = Alpha} ; XRenderFillRectangle(Dpy, PictOpSrc, Alpha, c, 0, 0, 1, 1) ; XRenderChangePicture(Dpy, Src, CPAlphaMap, Att) ; XRenderChangePicture(Dpy, Dest, CPAlphaMap, Att) ; XRenderComposite(Dpy, PictOpClear, Src, None, Dest, 0, 0, 0, 0, 0, 0, 100, 100) ; XSync(Dpy, False) ; XRenderFreePicture(Dpy, Dest) ; XRenderFreePicture(Dpy, Src) ; XRenderFreePicture(Dpy, Alpha) ; XFreePixmap(Dpy, s) ; XFreePixmap(Dpy, d) ; XCloseDisplay(Dpy) ; } } return(0) ; } ___ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com