Re: A question about XCompositeRedirectSubwindows
Egil Möller writes: > Impressive! It's nice to see someone spending the time to help out > newcomers to a codebase / api. Yo may also have a look at this good article: http://www.talisman.org/~erlkonig/misc/x11-composite-tutorial/ ___ 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
[PATCH xserver] os: Recompute whether any clients are ready after check_timers()
>From c3e83b86bdd22403215bdd03cf7f70657bfaea37 Mon Sep 17 00:00:00 2001 From: Damien Leone Date: Mon, 18 Jun 2018 16:24:28 -0700 Subject: [PATCH] os: Recompute whether any clients are ready after check_timers() If a driver calls AttendClient() from within a timer callback we need to re-compute the local 'are_ready' to prevent the attended client from waiting until WaitForSomething() times out. This is a fix similar to commit 9ed5b263. Signed-off-by: Damien Leone --- os/WaitFor.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/os/WaitFor.c b/os/WaitFor.c index ae317dc11..ff1d376e9 100644 --- a/os/WaitFor.c +++ b/os/WaitFor.c @@ -190,10 +190,11 @@ WaitForSomething(Bool are_ready) /* deal with any blocked jobs */ if (workQueue) { ProcessWorkQueue(); -are_ready = clients_are_ready(); } timeout = check_timers(); +are_ready = clients_are_ready(); + if (are_ready) timeout = 0; -- 2.17.1 ___ 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
[PATCH xserver] meson: ensure the libc has RPC functions when secure-rpc is enabled
Currently our meson.build just makes the assumption that the libc is going to provide RPC functions. This doesn't actually seem to be the case on Fedora, which causes compilation to fail unexpectedly: ../../Projects/xserver/os/rpcauth.c:47:10: fatal error: rpc/rpc.h: No such file or directory #include ^~~ compilation terminated. So, in the event that we can't use libtirpc ensure that we actually check whether or not the libc provides rpc/rpc.h. If it doesn't, raise an error. Signed-off-by: Lyude Paul --- os/meson.build | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/os/meson.build b/os/meson.build index eb8fcf55d..0e41f9c02 100644 --- a/os/meson.build +++ b/os/meson.build @@ -56,9 +56,13 @@ endif rpc_dep = [] if get_option('secure-rpc') -# prefer libtirpc (if available), otherwise assume RPC functions are +# prefer libtirpc (if available), otherwise ensure RPC functions are # provided by libc. rpc_dep = dependency('libtirpc', required: false) +if not (rpc_dep.found() or cc.has_header('rpc/rpc.h')) +error('secure-rpc requested, but neither libtirpc or libc RPC support were found') +endif + srcs_os += 'rpcauth.c' endif -- 2.17.1 ___ 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
Re: [ANN] edid-decode maintenance info
On 06/22/2018 01:36 AM, Alan Coopersmith wrote: > On 06/21/18 01:59 AM, Hans Verkuil wrote: >> Hi all, >> >> As Adam already announced earlier this week I'm taking over maintenance of >> the edid-decode utility. >> >> Since I am already maintaining other utilities on git.linuxtv.org I decided >> to move the edid-decode git repo to linuxtv.org as well. It is now available >> here: https://git.linuxtv.org/edid-decode.git/ >> >> Patches, bug reports, etc. should be mailed to linux-me...@vger.kernel.org >> (see https://linuxtv.org/lists.php). Please make sure the subject line >> contains 'edid-decode'. >> >> One thing I would like to tackle in the very near future is to add support >> for >> the new HDMI 2.1b EDID additions. >> >> I also know that some patches for edid-decode were posted to xorg-devel that >> were never applied. I will try to find them, but to be safe it is best to >> repost them to linux-media. > > Thanks - there's also a handful of open bug reports against edid-decode in > our bugzilla as well, some of which have patches attached: > > https://bugs.freedesktop.org/buglist.cgi?component=App%2Fedid-decode > Thank you for this information. I looked through all the bug reports and 100607, 100340 and 93366 were already fixed before I took over maintenance. I just fixed 89348 and 93777 in my git repo, so those can be marked as resolved. The edid-decode component should probably be removed from the freedesktop bugzilla. Regards, Hans ___ 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
Re: [PATCH] modesetting: Update fb_id from shadow allocate and destroy if not set
* Lyude Paul [180621 22:55]: > Hey, was a patch updated re: Keith's comments ever posted for this? Was going > to review this, but I can't find any versions of this patch other than this > one You got the second version already, that's patchworks: https://patchwork.freedesktop.org/patch/203834/ Looks like it's missing the description, do you want me to resend it with the description below? Regards, Tony > On Sat, 2018-02-03 at 10:34 -0800, Tony Lindgren wrote: > > Looks like drmModeDirtyFB() stopped working at some point and we now > > call it with fb_id of zero for rotated displays. This will stop displays > > relying on DRM_IOCTL_MODE_DIRTYFB ioctl to display anything. > > > > This regression probably with commit 3dcd591fa9b7 ("modesetting: Add > > support for using RandR shadow buffers") that inroduced rotate_fb_id. > > > > Let's fix this issue by copying rotate_fb_id to fb_id if zero and then > > reset it back to zero after we're done with the rotation. > > > > After the fix we then call drmModeDirtyFB() we then have the > > following fb_id changes: > > > > $ startx > > drmmode_get_default_bpp: fb_id: 51 > > drmmode_get_default_bpp: cleared fb_id > > dispatch_dirty: ms->drmmode.fb_id: 0 fb_id: 0 > > drmmode_set_mode_major: drmmode->fb_id: 52 > > dispatch_dirty: ms->drmmode.fb_id: 52 fb_id: 52 > > ... > > > > $ xrandr --output DSI-1 --rotate right > > drmmode_xf86crtc_resize: cleared old_fb_id > > dispatch_dirty: ms->drmmode.fb_id: 0 fb_id: 0 > > drmmode_shadow_allocate: drmmode_crtc->rotate_fb_id: 50 > > dispatch_dirty: ms->drmmode.fb_id: 50 fb_id: 50 > > ... > > > > $ xrandr --output DSI-1 --rotate normal > > drmmode_shadow_destroy: cleared drmmode_crtc->rotate_fb_id > > dispatch_dirty: ms->drmmode.fb_id: 0 fb_id: 0 > > dispatch_dirty: ms->drmmode.fb_id: 0 fb_id: 0 > > dispatch_dirty: ms->drmmode.fb_id: 0 fb_id: 0 > > drmmode_set_mode_major: drmmode->fb_id: 51 > > dispatch_dirty: ms->drmmode.fb_id: 51 fb_id: 51 > > ... > > > > Cc: Hans De Goede > > Cc: Jason Ekstrand > > Cc: Laurent Pinchart > > Cc: Sebastian Reichel > > Cc: Tomi Valkeinen > > Signed-off-by: Tony Lindgren > > --- > > hw/xfree86/drivers/modesetting/drmmode_display.c | 10 ++ > > hw/xfree86/drivers/modesetting/drmmode_display.h | 1 + > > 2 files changed, 11 insertions(+) > > > > diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c > > b/hw/xfree86/drivers/modesetting/drmmode_display.c > > --- a/hw/xfree86/drivers/modesetting/drmmode_display.c > > +++ b/hw/xfree86/drivers/modesetting/drmmode_display.c > > @@ -997,6 +997,12 @@ drmmode_shadow_allocate(xf86CrtcPtr crtc, int width, > > int height) > > return NULL; > > } > > > > +/* Must have proper drmmode->fb_id for drmModeDirtyFB() */ > > +if (!drmmode->fb_id) { > > +drmmode->fb_id = drmmode_crtc->rotate_fb_id; > > +drmmode_crtc->reset_fb_id = TRUE; > > +} > > + > > #ifdef GLAMOR_HAS_GBM > > if (drmmode->gbm) > > return drmmode_crtc->rotate_bo.gbm; > > @@ -1084,6 +1090,10 @@ drmmode_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr > > rotate_pixmap, void *data) > > > > if (data) { > > drmModeRmFB(drmmode->fd, drmmode_crtc->rotate_fb_id); > > +if (drmmode_crtc->reset_fb_id && > > +drmmode->fb_id == drmmode_crtc->rotate_fb_id) > > +drmmode->fb_id = 0; > > +drmmode_crtc->reset_fb_id = FALSE; > > drmmode_crtc->rotate_fb_id = 0; > > > > drmmode_bo_destroy(drmmode, _crtc->rotate_bo); > > diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.h > > b/hw/xfree86/drivers/modesetting/drmmode_display.h > > --- a/hw/xfree86/drivers/modesetting/drmmode_display.h > > +++ b/hw/xfree86/drivers/modesetting/drmmode_display.h > > @@ -98,6 +98,7 @@ typedef struct { > > > > drmmode_bo rotate_bo; > > unsigned rotate_fb_id; > > +Bool reset_fb_id; > > > > PixmapPtr prime_pixmap; > > PixmapPtr prime_pixmap_back; > -- > Cheers, > Lyude Paul ___ 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