[ANNOUNCE] xorg-server 1.19.6
Yet another collection of fixes from master. There will likely be at least one more 1.19.x release in 2018 as there are still a number of unreviewed patches pending. Until then, happy new year. Adam Jackson (10): xfixes: Remove the CursorCurrent array glx: Fix typos that break GLX_ARB_context_flush_control glx: Only flush indirect contexts in MakeCurrent (v2) glx: Fix glXQueryContext for GLX_FBCONFIG_ID and GLX_RENDER_TYPE (v2) composite: Remove a misleading comment composite: Export compIsAlternateVisual composite: Make compIsAlternateVisual safe even if Composite is off glx: Send GLX_VISUAL_SELECT_GROUP_SGIX attribute for visuals glx: Move Composite's synthetic visuals to a different select group xserver 1.19.6 Alex Goins (1): ramdac: Check ScreenPriv != NULL in xf86ScreenSetCursor() Daniel Martin (4): modesetting: Fix potential buffer overflow test: input: Fix used uninitialized warning in dix_event_to_core test: signal-logging: Fix looping signed number tests os/xdmcp: Honour -once when session is dead Eric Anholt (1): xkb: Print the xkbcomp path being executed when we fail to compile. Giuseppe Bilotta (3): xkb: initialize tsyms randr: ProcRRGetOutputInfo: initialize memory randr: rrGetScreenResources: initialize memory Hector Martin (1): edid: fix off-by-one error in CEA mode numbering Michel Dänzer (1): present: Only send PresentCompleteNotify events to the presenting client Nikolay Martynov (1): XShmGetImage: fix censoring Olivier Fourdan (2): xwayland: Fix non-argb cursor conversion dix: avoid deferencing NULL PtrCtrl Peter Hutterer (1): config/udev: consider ID_INPUT_FOO=0 as 'unset' Thomas Hellstrom (3): glx: Work around a GLX_OML swap method in older dri drivers glx: Fix visual fbconfig matching with respect to swap method glx: Duplicate relevant fbconfigs for compositing visuals Tomasz Śniatowski (1): os: Fix strtok/free crash in ComputeLocalClient git tag: xorg-server-1.19.6 https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.19.6.tar.bz2 MD5: 3e4ff034a331aed2322b078694a8 xorg-server-1.19.6.tar.bz2 SHA1: 2dd560ac49bdbda7f67166546af43541fabf517f xorg-server-1.19.6.tar.bz2 SHA256: a732502f1db000cf36a376cd0c010ffdbf32ecdd7f1fa08ba7f5bdf9601cc197 xorg-server-1.19.6.tar.bz2 SHA512: 38519a8d0af9dd034045fc346959496dd718fa59b6188307974797a1cd9c349deb54987f6232ea8396baf810dcc710c0ff191f76ed2186cae4d44921b3680412 xorg-server-1.19.6.tar.bz2 PGP: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.19.6.tar.bz2.sig https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.19.6.tar.gz MD5: ada013becbe850b92e2a8433dfb2cfe6 xorg-server-1.19.6.tar.gz SHA1: f58b318bd17fe3af41ebf32d5a22da5dc667009e xorg-server-1.19.6.tar.gz SHA256: 3c0e4a354a6b1d5d357b121357946ee8ffdb2f52158b2e63e105be9cef013168 xorg-server-1.19.6.tar.gz SHA512: 0ee9e7a20bac7b3a9a7730fc453a8b1f146e36f774721c7f69f723976c5cb456b18ce27bba71605995a8fc087518e462f06deb52f5145b87f28397f8e2cc1210 xorg-server-1.19.6.tar.gz PGP: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.19.6.tar.gz.sig - ajax signature.asc Description: This is a digitally signed message part ___ xorg-announce mailing list xorg-announce@lists.x.org https://lists.x.org/mailman/listinfo/xorg-announce
[ANNOUNCE] xorg-server 1.19.6
Yet another collection of fixes from master. There will likely be at least one more 1.19.x release in 2018 as there are still a number of unreviewed patches pending. Until then, happy new year. Adam Jackson (10): xfixes: Remove the CursorCurrent array glx: Fix typos that break GLX_ARB_context_flush_control glx: Only flush indirect contexts in MakeCurrent (v2) glx: Fix glXQueryContext for GLX_FBCONFIG_ID and GLX_RENDER_TYPE (v2) composite: Remove a misleading comment composite: Export compIsAlternateVisual composite: Make compIsAlternateVisual safe even if Composite is off glx: Send GLX_VISUAL_SELECT_GROUP_SGIX attribute for visuals glx: Move Composite's synthetic visuals to a different select group xserver 1.19.6 Alex Goins (1): ramdac: Check ScreenPriv != NULL in xf86ScreenSetCursor() Daniel Martin (4): modesetting: Fix potential buffer overflow test: input: Fix used uninitialized warning in dix_event_to_core test: signal-logging: Fix looping signed number tests os/xdmcp: Honour -once when session is dead Eric Anholt (1): xkb: Print the xkbcomp path being executed when we fail to compile. Giuseppe Bilotta (3): xkb: initialize tsyms randr: ProcRRGetOutputInfo: initialize memory randr: rrGetScreenResources: initialize memory Hector Martin (1): edid: fix off-by-one error in CEA mode numbering Michel Dänzer (1): present: Only send PresentCompleteNotify events to the presenting client Nikolay Martynov (1): XShmGetImage: fix censoring Olivier Fourdan (2): xwayland: Fix non-argb cursor conversion dix: avoid deferencing NULL PtrCtrl Peter Hutterer (1): config/udev: consider ID_INPUT_FOO=0 as 'unset' Thomas Hellstrom (3): glx: Work around a GLX_OML swap method in older dri drivers glx: Fix visual fbconfig matching with respect to swap method glx: Duplicate relevant fbconfigs for compositing visuals Tomasz Śniatowski (1): os: Fix strtok/free crash in ComputeLocalClient git tag: xorg-server-1.19.6 https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.19.6.tar.bz2 MD5: 3e4ff034a331aed2322b078694a8 xorg-server-1.19.6.tar.bz2 SHA1: 2dd560ac49bdbda7f67166546af43541fabf517f xorg-server-1.19.6.tar.bz2 SHA256: a732502f1db000cf36a376cd0c010ffdbf32ecdd7f1fa08ba7f5bdf9601cc197 xorg-server-1.19.6.tar.bz2 SHA512: 38519a8d0af9dd034045fc346959496dd718fa59b6188307974797a1cd9c349deb54987f6232ea8396baf810dcc710c0ff191f76ed2186cae4d44921b3680412 xorg-server-1.19.6.tar.bz2 PGP: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.19.6.tar.bz2.sig https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.19.6.tar.gz MD5: ada013becbe850b92e2a8433dfb2cfe6 xorg-server-1.19.6.tar.gz SHA1: f58b318bd17fe3af41ebf32d5a22da5dc667009e xorg-server-1.19.6.tar.gz SHA256: 3c0e4a354a6b1d5d357b121357946ee8ffdb2f52158b2e63e105be9cef013168 xorg-server-1.19.6.tar.gz SHA512: 0ee9e7a20bac7b3a9a7730fc453a8b1f146e36f774721c7f69f723976c5cb456b18ce27bba71605995a8fc087518e462f06deb52f5145b87f28397f8e2cc1210 xorg-server-1.19.6.tar.gz PGP: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.19.6.tar.gz.sig - ajax signature.asc Description: This is a digitally signed message part ___ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: https://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s
Re: [PATCH] glx: do not pick sRGB config for 32-bit RGBA visual
On Mon, 2017-12-11 at 07:53 +0200, Tapani Pälli wrote: > Hi; > > Any comments? Without this change there will be issues with certain > Linux desktops when distributions start to use Mesa 17.4. I've merged Thomas' GLX visual setup changes to the 1.19 branch since at least fdobz#102086 has a positive confirmation of the fix and I'm already late in delivering 1.19.6. This change could still be correct but I didn't have much success in reproducing the issue to begin with; maybe I just don't know what I'm looking for. - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Bug#884846: xserver-xorg-video-radeon: xrandr hang on resolution setup after xorg has been started
On 2017-12-20 12:17 PM, Angelo Dureghello wrote: > Package: xserver-xorg-video-radeon > Version: 1:7.8.0-1+b1 > Severity: grave > Justification: renders package unusable "renders the package unusable" in this context means the package cannot be used for its intended purpose at all by anyone, which isn't the case. > Dear Maintainer, > > In xserver-xorg-video-radeon v.1.7.10.0-1 i am observing the following issue: > > after xorg has been started, and openbox-session is called, xrandr seems to > hang leaving interface with mouse pointer only, but not usable. > > The line causing the issue is : > (sleep 1s && xrandr --output VGA-0 --off --output DVI-0 --primary --mode > 2560x1440 --output HDMI-0 --mode 1920x1080 --right-of DVI-0) & When it hangs, can you attach gdb to the Xorg process and get a backtrace? See https://www.x.org/wiki/Development/Documentation/ServerDebugging/ for detailed information about how this can be done. Make sure the xserver-xorg-core-dbgsym and xserver-xorg-video-radeon-dbg packages are installed. > If i roll back to v.1.7.8.0.1+b1 version all works fine as usual and expected. Can you use git bisect to determine which change introduced the problem? -- 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 https://lists.x.org/mailman/listinfo/xorg-driver-ati
Re: [RFC xserver 0/1] Xwayland to send more accurate damage
On 2017-12-20 12:18 PM, Pekka Paalanen wrote: > > - What X11 applications would be good to analyze for the drawing (damage) they > produce? Some xscreensaver hacks can cause lots of tiny damage rectangles, e.g. interaggregate or cloudlife. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
[RFC xserver 0/1] Xwayland to send more accurate damage
From: Pekka PaalanenHi, currently Xwayland collapses all wl_surface damage into a single bounding rectangle. If the actual damage area is just a fraction of the sent damage area, this will cause massive extra work in the Wayland compositor. The effect is most notable in software rendered Wayland compositors. However, I would not be surprised if there were measurable benefits for GPU accelerated Wayland compositors, particularly if Xwayland was still software rendered but also with GLAMOR, on low-end systems and large screens. The motivation for this RFC is a real world use case with Weston/pixman as the compositor and a proprietary X11 application in fullscreen. An equivalent patch was measured to reduce Weston's CPU usage down to one third or one quarter compared to without the patch. In steady state animation that was roughly from 0.3-0.4 CPUs down to 0.1 CPUs consumed by Weston which was a quite significant portion of the total CPU power available. The case was originally discussed on June 28, 2017, on #xorg-devel, but I couldn't work much on it then. The patch here is crude: send up to 500 rectangles of accurate damage but if more, fall back to sending the bounding box. The reason to limit the number of rectangles is that if the Wayland connection overflows, it will abort Xwayland. Sending (more) accurate damage increases the risk of Xwayland aborting, so limiting the number of rectangles is not just a performance question. However, solving the overflow problem is not the goal here - I just try to mitigate the risk. The approach in the patch is problematic, because it uses a single hard-coded threshold without much justification: the threshold was found by experimenting with a proprietary application, and if I recall right, 300 was a sufficient limit while 150 was not, so it was not a case of just a few rectangles in the damage region. An idea by ajax was to compute the ratio of accurate damage area vs. the boundingbox area and use that percentage as a fixed threshold. The idea is nice and simple, but I think it also needs a limit on the number of rectangles to reduce the overflow risk. I have been thinking about an optimization based approach, where one would essentially assign relative costs to each pixel of extra damage added and each rectangle sent and attempt to minimize the total cost by merging rectangles into bigger rectangles before sending. The questions: - Which of the three approaches or something else would be sufficient for upstream? - What testing should I perform since sending significantly more Wayland requests is risky? - What X11 applications would be good to analyze for the drawing (damage) they produce? If we need anything more complicated than what is in this patch, then I would probably like to record the damage regions from various apps to gather a data set to develop on. Unless you think it's not necessary? Thanks, pq ps. I'll be on holidays until Jan 11, so might not reply until then. Pekka Paalanen (1): xwayland: reduce over-damage hw/xwayland/xwayland.c | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) -- 2.13.6 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
[RFC xserver 1/1] xwayland: reduce over-damage
From: Pekka PaalanenIf an X11 app draws a little here, some there, and a tiny bit in the opposite corner, using RegionExtents for the damage to be sent to the Wayland compositor will cause massive over-damaging. However, we cannot blindly send an arbitrary number of damage rectangles, because there is a risk of overflowing the Wayland connection. If that happens, it triggers an abort in libwayland-client. Try to be more accurate with the damage by sending up to 500 rectangles per window, and fall back to extents otherwise. The number is completely arbitrary. Signed-off-by: Pekka Paalanen --- hw/xwayland/xwayland.c | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index c5a3ae7ae..383680d7a 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -629,6 +629,7 @@ xwl_window_post_damage(struct xwl_window *xwl_window) BoxPtr box; struct wl_buffer *buffer; PixmapPtr pixmap; +int i; assert(!xwl_window->frame_callback); @@ -644,9 +645,20 @@ xwl_window_post_damage(struct xwl_window *xwl_window) wl_surface_attach(xwl_window->surface, buffer, 0, 0); -box = RegionExtents(region); -wl_surface_damage(xwl_window->surface, box->x1, box->y1, -box->x2 - box->x1, box->y2 - box->y1); +/* Arbitrary limit to try to avoid flooding the Wayland + * connection. If we flood it too much anyway, this could + * abort in libwayland-client. + */ +if (RegionNumRects(region) > 500) { +box = RegionExtents(region); +wl_surface_damage(xwl_window->surface, box->x1, box->y1, + box->x2 - box->x1, box->y2 - box->y1); +} else { +box = RegionRects(region); +for (i = 0; i < RegionNumRects(region); i++, box++) +wl_surface_damage(xwl_window->surface, box->x1, box->y1, + box->x2 - box->x1, box->y2 - box->y1); +} xwl_window->frame_callback = wl_surface_frame(xwl_window->surface); wl_callback_add_listener(xwl_window->frame_callback, _listener, xwl_window); -- 2.13.6 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel