[PATCH xserver] randr: Adjust master's last set time with slaves
In prime configurations master's last set time may not be latest and greatest, adjust it with slaves last set time, pick up greatest one. Otherwise xserver may end with events which has lastSetTime < lastConfigTime even if that's not the case and confuse xrandr client. Signed-off-by: Nikhil Mahale --- randr/randr.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/randr/randr.c b/randr/randr.c index 3aabb19..c07def1 100644 --- a/randr/randr.c +++ b/randr/randr.c @@ -568,6 +568,7 @@ RRSetChanged(ScreenPtr pScreen) void RRTellChanged(ScreenPtr pScreen) { +ScreenPtr slave; ScreenPtr master; rrScrPriv(pScreen); rrScrPrivPtr mastersp; @@ -584,6 +585,15 @@ RRTellChanged(ScreenPtr pScreen) mastersp = pScrPriv; } +xorg_list_for_each_entry(slave, &master->output_slave_list, output_head) { +pSlaveScrPriv = rrGetScrPriv(slave); + +if (CompareTimeStamps(mastersp->lastSetTime, + pSlaveScrPriv->lastSetTime) == EARLIER) { +mastersp->lastSetTime = pSlaveScrPriv->lastSetTime; +} +} + if (mastersp->changed) { UpdateCurrentTimeIf(); if (mastersp->configChanged) { -- 2.8.2 --- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. --- ___ 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] randr: Do not check the screen size bound for gpu screens
For gpu screen, CrtcSet set/adjust the master screen size along mode in following callstack - ProcRRSetCrtcConfig() | -> RRCrtcSet() | -> rrCheckPixmapBounding() | -> pScrPriv->rrScreenSetSize() Checking screen size bound for gpus screen cause some configurations to fails, e.g $ xrandr --output eDP --mode 1920x1080 --pos 0x0 --output HDMI \ --mode 2560x1440 --pos 0x0 Here xrandr utility first sets screen size to 2560x1440 which gets resized to 1920x1080 on RRSetCrtcConfig request for eDP, and then RRSetCrtcConfig request for HDMI fails because of failure of screen bound check. Signed-off-by: Nikhil Mahale --- randr/rrcrtc.c | 19 ++- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index 566a3db..82db9a8 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -1176,27 +1176,20 @@ ProcRRSetCrtcConfig(ClientPtr client) #ifdef RANDR_12_INTERFACE /* + * For gpu screen, CrtcSet set/adjust the master screen size along + * with mode. + * * Check screen size bounds if the DDX provides a 1.2 interface * for setting screen size. Else, assume the CrtcSet sets * the size along with the mode. If the driver supports transforms, * then it must allow crtcs to display a subset of the screen, so * only do this check for drivers without transform support. */ -if (pScrPriv->rrScreenSetSize && !crtc->transforms) { +if (!pScreen->isGPU && pScrPriv->rrScreenSetSize && !crtc->transforms) { int source_width; int source_height; PictTransform transform; struct pixman_f_transform f_transform, f_inverse; -int width, height; - -if (pScreen->isGPU) { -width = pScreen->current_master->width; -height = pScreen->current_master->height; -} -else { -width = pScreen->width; -height = pScreen->height; -} RRTransformCompute(stuff->x, stuff->y, mode->mode.width, mode->mode.height, @@ -1206,13 +1199,13 @@ ProcRRSetCrtcConfig(ClientPtr client) RRModeGetScanoutSize(mode, &transform, &source_width, &source_height); -if (stuff->x + source_width > width) { +if (stuff->x + source_width > pScreen->width) { client->errorValue = stuff->x; free(outputs); return BadValue; } -if (stuff->y + source_height > height) { +if (stuff->y + source_height > pScreen->height) { client->errorValue = stuff->y; free(outputs); return BadValue; -- 2.8.2 --- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. --- ___ 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 xserver 1/2] xwayland: Move sprite invalidation logic into mipointer
Emil Velikov writes: >> +/* Invalidate current sprite, forcing reload on next >> + * sprite setting (window crossing, grab action, etc) >> + */ >> +extern _X_EXPORT void >> +miPointerInvalidateSprite(DeviceIntPtr pDev); >> + > It doesn't look like this should be exported, should it ? Yes, it's part of the server API and replaces the public definition of the underlying structure. > Perhaps it's worth making a list of needed symbols (ideally in an > automated manner) and throwing the remainder out there ? Then anyone > can take a small bite as they get bored ;-) We've done a bunch of symbol hiding, but it's always good to review any of the remaining ones... > Just a related thought... there's nothing wrong with the patch. Thanks! -- -keith signature.asc Description: PGP signature ___ 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 evdev] conf: rename to 65-evdev.conf
On Thu, May 19, 2016 at 05:37:59PM +0200, Stefan Dirsch wrote: > Bump up evdev driver to 65, so it get's perferred over libipnut, > which was dropped down to 60. Reason is, that evdev driver is more > of an additional driver, which likely won't be installed by default > on a system any longer. But if it is installed it should also be > used, i.e. preferred over libinput. > > Similar to what was done for wacom configuration file. > > https://bugzilla.suse.com/show_bug.cgi?id=979554 > > Signed-off-by: Stefan Dirsch nope, can't do this yet. evdev is still more flexible than libinput and handles a couple of devices that libinput doesn't handle. so we have to assume that for the time being evdev will be installed on most machines. Cheers, Peter ___ 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 xserver 1/2] xwayland: Move sprite invalidation logic into mipointer
On 18 May 2016 at 22:03, Keith Packard wrote: > This creates a function that invalidates the current sprite and forces > a sprite image reload the next time the sprite is checked, moving that > logic out of the xwayland sources and allowing the miPointerRec > structure to be removed from the server API. > > Signed-off-by: Keith Packard > --- > hw/xwayland/xwayland-input.c | 9 + > mi/mipointer.c | 15 +++ > mi/mipointer.h | 6 ++ > 3 files changed, 22 insertions(+), 8 deletions(-) > > diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c > index cbc1bf2..d186681 100644 > --- a/hw/xwayland/xwayland-input.c > +++ b/hw/xwayland/xwayland-input.c > @@ -219,7 +219,6 @@ pointer_handle_enter(void *data, struct wl_pointer > *pointer, > struct xwl_seat *xwl_seat = data; > DeviceIntPtr dev = xwl_seat->pointer; > DeviceIntPtr master; > -miPointerPtr mipointer; > int i; > int sx = wl_fixed_to_int(sx_w); > int sy = wl_fixed_to_int(sy_w); > @@ -243,13 +242,7 @@ pointer_handle_enter(void *data, struct wl_pointer > *pointer, > master = GetMaster(dev, POINTER_OR_FLOAT); > (*pScreen->SetCursorPosition) (dev, pScreen, sx, sy, TRUE); > > -/* X is very likely to have the wrong idea of what the actual cursor > - * sprite is, so in order to force updating the cursor lets set the > - * current sprite to some invalid cursor behind its back so that it > - * always will think it changed to the not invalid cursor. > - */ > -mipointer = MIPOINTER(master); > -mipointer->pSpriteCursor = (CursorPtr) 1; > +miPointerInvalidateSprite(master); > > CheckMotion(NULL, master); > > diff --git a/mi/mipointer.c b/mi/mipointer.c > index ada1ab5..7f95cdb 100644 > --- a/mi/mipointer.c > +++ b/mi/mipointer.c > @@ -468,6 +468,21 @@ miPointerUpdateSprite(DeviceIntPtr pDev) > } > > /** > + * Invalidate the current sprite and force it to be reloaded on next cursor > setting > + * operation > + * > + * @param pDev The device to invalidate the sprite fore > + */ > +void > +miPointerInvalidateSprite(DeviceIntPtr pDev) > +{ > +miPointerPtr pPointer; > + > +pPointer = MIPOINTER(pDev); > +pPointer->pSpriteCursor = (CursorPtr) 1; > +} > + > +/** > * Set the device to the coordinates on the given screen. > * > * @param pDev The device to move > diff --git a/mi/mipointer.h b/mi/mipointer.h > index bdeed12..7ce6409 100644 > --- a/mi/mipointer.h > +++ b/mi/mipointer.h > @@ -109,6 +109,12 @@ miPointerSetPosition(DeviceIntPtr pDev, int mode, double > *x, double *y, > extern _X_EXPORT void > miPointerUpdateSprite(DeviceIntPtr pDev); > > +/* Invalidate current sprite, forcing reload on next > + * sprite setting (window crossing, grab action, etc) > + */ > +extern _X_EXPORT void > +miPointerInvalidateSprite(DeviceIntPtr pDev); > + It doesn't look like this should be exported, should it ? From a quick look... many of the exported symbols seems to be left over from when we hid (made builtin) most of the external modules (dri/dri2/record/dbe...) Perhaps it's worth making a list of needed symbols (ideally in an automated manner) and throwing the remainder out there ? Then anyone can take a small bite as they get bored ;-) Just a related thought... there's nothing wrong with the patch. -Emil ___ 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 v5 00/13] PRIME Synchronization
Hi Dave, Any update on this? Anything I can do to help? Thanks, Alex On Tue, 3 May 2016, Dave Airlie wrote: > On 3 May 2016 at 12:19, Alex Goins wrote: > > Sorry for all of the self-replies. > > > > I spent more time looking into what might be causing this (despite not being > > able to reproduce it), and found that in the Present extension's > > present_check_flip(), it doesn't use flipping if there are slave outputs. > > So, > > that's why it's not allowing page flipping, but that isn't due to these > > patches. > > > > Since it can't flip, it falls back to just waiting for vblank and you can > > get > > some ugly tearing on the native display. I still can't reproduce the choppy > > rendering, but if there is a problem it's likely something to do with > > drmWaitVBlank(). > > > > Have you tried to see if it fails like that even without my patches? If the > > problem is with drmWaitVBlank(), it might just be that something is going > > wrong > > there, and adding output slaves just exposes the issue. > > > > It looks like since drmWaitVBlank() doesn't take in the crtc_id directly > > like > > drmModePageFlip(), and since there is no standard interface to do something > > like > > drm_intel_get_pipe_from_crtc_id(), we just make a best guess in > > drmmode_crtc_vblank_pipe(). Could be error-prone. > > Okay thanks for looking into it. Yes the present behaviour is known as > we can't flip > on multiple crtcs with the current present driver API, I should post > patches to at > least clean that up. > > Otherwise you are probably right wrt what is causing the choppiness, I'll try > and get some times (it might be next week) to track it down, but I don't think > it should block these patches at this point. > > I'll try and finish review by the end of the week, > > Dave. > ___ 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 synaptics] conf: rename to 70-synaptics.conf
On Thu, May 19, 2016 at 05:35:57PM +0200, Stefan Dirsch wrote: > --- > conf/50-synaptics.conf | 46 -- > conf/70-synaptics.conf | 46 ++ Also, `git format-patch` supports -M, which avoids all this "delete whole file and create a whole new file" in favour of "move this file" ;) ___ 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 synaptics] conf: rename to 70-synaptics.conf
On Thu, May 19, 2016 at 05:35:57PM +0200, Stefan Dirsch wrote: > Bump up synaptics driver to 70, so it get's perferred over libipnut, > which was dropped down to 60. Reason is, that synaptics driver is more > of an additional driver, which then should be installed if installed. s/perferred/preferred/, and it seems like there's been a bit too much of copy/paste near the end :) ___ 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 xserver 08/11] kdrive/ephyr: Poll for events in block handler
Laércio de Sousa writes: > Could it be related somehow to my concerns in > https://patchwork.freedesktop.org/patch/86328 ? I don't think so -- my patch only changes where the FD is read, not when that FD is added to the select call. Your patch looks like a fine change, although I think it might need to include a change to discard input events when the input subsystem wasn't running (which is why the SetNotifyFd calls are where they are) -- -keith signature.asc Description: PGP signature ___ 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 evdev] conf: rename to 65-evdev.conf
Bump up evdev driver to 65, so it get's perferred over libipnut, which was dropped down to 60. Reason is, that evdev driver is more of an additional driver, which likely won't be installed by default on a system any longer. But if it is installed it should also be used, i.e. preferred over libinput. Similar to what was done for wacom configuration file. https://bugzilla.suse.com/show_bug.cgi?id=979554 Signed-off-by: Stefan Dirsch --- 10-evdev.conf | 40 65-evdev.conf | 40 Makefile.am | 2 +- 3 files changed, 41 insertions(+), 41 deletions(-) delete mode 100644 10-evdev.conf create mode 100644 65-evdev.conf diff --git a/10-evdev.conf b/10-evdev.conf deleted file mode 100644 index cc83ab2..000 --- a/10-evdev.conf +++ /dev/null @@ -1,40 +0,0 @@ -# -# Catch-all evdev loader for udev-based systems -# We don't simply match on any device since that also adds accelerometers -# and other devices that we don't really want to use. The list below -# matches everything but joysticks. - -Section "InputClass" -Identifier "evdev pointer catchall" -MatchIsPointer "on" -MatchDevicePath "/dev/input/event*" -Driver "evdev" -EndSection - -Section "InputClass" -Identifier "evdev keyboard catchall" -MatchIsKeyboard "on" -MatchDevicePath "/dev/input/event*" -Driver "evdev" -EndSection - -Section "InputClass" -Identifier "evdev touchpad catchall" -MatchIsTouchpad "on" -MatchDevicePath "/dev/input/event*" -Driver "evdev" -EndSection - -Section "InputClass" -Identifier "evdev tablet catchall" -MatchIsTablet "on" -MatchDevicePath "/dev/input/event*" -Driver "evdev" -EndSection - -Section "InputClass" -Identifier "evdev touchscreen catchall" -MatchIsTouchscreen "on" -MatchDevicePath "/dev/input/event*" -Driver "evdev" -EndSection diff --git a/65-evdev.conf b/65-evdev.conf new file mode 100644 index 000..cc83ab2 --- /dev/null +++ b/65-evdev.conf @@ -0,0 +1,40 @@ +# +# Catch-all evdev loader for udev-based systems +# We don't simply match on any device since that also adds accelerometers +# and other devices that we don't really want to use. The list below +# matches everything but joysticks. + +Section "InputClass" +Identifier "evdev pointer catchall" +MatchIsPointer "on" +MatchDevicePath "/dev/input/event*" +Driver "evdev" +EndSection + +Section "InputClass" +Identifier "evdev keyboard catchall" +MatchIsKeyboard "on" +MatchDevicePath "/dev/input/event*" +Driver "evdev" +EndSection + +Section "InputClass" +Identifier "evdev touchpad catchall" +MatchIsTouchpad "on" +MatchDevicePath "/dev/input/event*" +Driver "evdev" +EndSection + +Section "InputClass" +Identifier "evdev tablet catchall" +MatchIsTablet "on" +MatchDevicePath "/dev/input/event*" +Driver "evdev" +EndSection + +Section "InputClass" +Identifier "evdev touchscreen catchall" +MatchIsTouchscreen "on" +MatchDevicePath "/dev/input/event*" +Driver "evdev" +EndSection diff --git a/Makefile.am b/Makefile.am index 1cc3ea6..99e3b6c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -28,7 +28,7 @@ MAINTAINERCLEANFILES = ChangeLog INSTALL pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = xorg-evdev.pc -dist_xorgconf_DATA = 10-evdev.conf +dist_xorgconf_DATA = 65-evdev.conf .PHONY: ChangeLog INSTALL -- 2.6.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
[PATCH synaptics] conf: rename to 70-synaptics.conf
Bump up synaptics driver to 70, so it get's perferred over libipnut, which was dropped down to 60. Reason is, that synaptics driver is more of an additional driver, which then should be installed if installed. Similar to what was done for wacom configuration file. https://bugzilla.suse.com/show_bug.cgi?id=979554 Signed-off-by: Stefan Dirsch --- conf/50-synaptics.conf | 46 -- conf/70-synaptics.conf | 46 ++ conf/Makefile.am | 2 +- man/synaptics.man | 2 +- 4 files changed, 48 insertions(+), 48 deletions(-) delete mode 100644 conf/50-synaptics.conf create mode 100644 conf/70-synaptics.conf diff --git a/conf/50-synaptics.conf b/conf/50-synaptics.conf deleted file mode 100644 index aa50456..000 --- a/conf/50-synaptics.conf +++ /dev/null @@ -1,46 +0,0 @@ -# Example xorg.conf.d snippet that assigns the touchpad driver -# to all touchpads. See xorg.conf.d(5) for more information on -# InputClass. -# DO NOT EDIT THIS FILE, your distribution will likely overwrite -# it when updating. Copy (and rename) this file into -# /etc/X11/xorg.conf.d first. -# Additional options may be added in the form of -# Option "OptionName" "value" -# -Section "InputClass" -Identifier "touchpad catchall" -Driver "synaptics" -MatchIsTouchpad "on" -# This option is recommend on all Linux systems using evdev, but cannot be -# enabled by default. See the following link for details: -# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html -# MatchDevicePath "/dev/input/event*" -EndSection - -Section "InputClass" -Identifier "touchpad ignore duplicates" -MatchIsTouchpad "on" -MatchOS "Linux" -MatchDevicePath "/dev/input/mouse*" -Option "Ignore" "on" -EndSection - -# This option enables the bottom right corner to be a right button on clickpads -# and the right and middle top areas to be right / middle buttons on clickpads -# with a top button area. -# This option is only interpreted by clickpads. -Section "InputClass" -Identifier "Default clickpad buttons" -MatchDriver "synaptics" -Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0" -Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%" -EndSection - -# This option disables software buttons on Apple touchpads. -# This option is only interpreted by clickpads. -Section "InputClass" -Identifier "Disable clickpad buttons on Apple touchpads" -MatchProduct "Apple|bcm5974" -MatchDriver "synaptics" -Option "SoftButtonAreas" "0 0 0 0 0 0 0 0" -EndSection diff --git a/conf/70-synaptics.conf b/conf/70-synaptics.conf new file mode 100644 index 000..aa50456 --- /dev/null +++ b/conf/70-synaptics.conf @@ -0,0 +1,46 @@ +# Example xorg.conf.d snippet that assigns the touchpad driver +# to all touchpads. See xorg.conf.d(5) for more information on +# InputClass. +# DO NOT EDIT THIS FILE, your distribution will likely overwrite +# it when updating. Copy (and rename) this file into +# /etc/X11/xorg.conf.d first. +# Additional options may be added in the form of +# Option "OptionName" "value" +# +Section "InputClass" +Identifier "touchpad catchall" +Driver "synaptics" +MatchIsTouchpad "on" +# This option is recommend on all Linux systems using evdev, but cannot be +# enabled by default. See the following link for details: +# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html +# MatchDevicePath "/dev/input/event*" +EndSection + +Section "InputClass" +Identifier "touchpad ignore duplicates" +MatchIsTouchpad "on" +MatchOS "Linux" +MatchDevicePath "/dev/input/mouse*" +Option "Ignore" "on" +EndSection + +# This option enables the bottom right corner to be a right button on clickpads +# and the right and middle top areas to be right / middle buttons on clickpads +# with a top button area. +# This option is only interpreted by clickpads. +Section "InputClass" +Identifier "Default clickpad buttons" +MatchDriver "synaptics" +Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0" +Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%" +EndSection + +# This option disables software buttons on Apple touchpads. +# This option is only interpreted by clickpads. +Section "InputClass" +Identifier "Disable clickpad buttons on Apple touchpads" +MatchProduct "Apple|bcm5974" +MatchDriver "synaptics" +Option "SoftButtonAreas" "0 0 0 0 0 0 0 0" +EndSection diff --git a/conf/Makefile.am b/conf/Makefile.am index 38d2a01..b883c10 100644 --- a/conf/Makefile.am +++ b/conf/Makefile.am @@ -20,7 +20,7 @@ if HAS_XORG_CONF_DIR -dist_config_DATA = 50-synaptics.conf +dist_config_DATA = 70-synaptics.conf else fdidir = $(datadir)/hal/fdi/policy/20thirdparty dist_fdi_DATA = 11-x11-synaptics.fdi diff --git a/man/synapt
Re: [PATCH 1/4] Remove CLTS code
On Wed, 2016-05-18 at 19:12 -0500, Keith Packard wrote: > Adam Jackson writes: > > > Never been used, as far as I can tell. > > All seem like fine changes to me, although I'd rather see people working > to just stop using Xtrans entirely... Oh, very much agreed. Just trimming the fat first. > For the series: > > Reviewed-by: Keith Packard remote: I: patch #87928 updated using rev 473e77563b16fa7c42db9403c1382e9483e3666c. remote: I: patch #87929 updated using rev 0794b1b712a90b40e2b019c9edc6f96874493c52. remote: I: patch #87930 updated using rev 75419e6b6d985ea8796f05d1acb5e154b065c9b9. remote: I: patch #87931 updated using rev 3810e026323210df6ec6cf818f01832a63e9fbb9. remote: I: 4 patch(es) updated to state Accepted. To ssh://git.freedesktop.org/git/xorg/lib/libxtrans b167145..3810e02 master -> master - 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
Re: [PATCH xserver 08/11] kdrive/ephyr: Poll for events in block handler
Could it be related somehow to my concerns in https://patchwork.freedesktop.org/patch/86328 ? 2016-05-18 18:51 GMT-03:00 Keith Packard : > With the driver block handler guaranteed to be the last thing called > before the server blocks, we can now reliably check for events there > and never block with events read but not processed. > > Signed-off-by: Keith Packard > --- > hw/kdrive/ephyr/ephyr.c | 14 +- > hw/kdrive/ephyr/ephyr.h | 3 +++ > hw/kdrive/ephyr/ephyrinit.c | 1 + > hw/kdrive/src/kdrive.h | 2 +- > hw/kdrive/src/kinput.c | 9 - > 5 files changed, 22 insertions(+), 7 deletions(-) > > diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c > index 1a410ca..6066b5d 100644 > --- a/hw/kdrive/ephyr/ephyr.c > +++ b/hw/kdrive/ephyr/ephyr.c > @@ -1106,7 +1106,7 @@ ephyrProcessConfigureNotify(xcb_generic_event_t *xev) > } > > static void > -ephyrXcbNotify(int fd, int ready, void *data) > +ephyrXcbProcessEvents(void) > { > xcb_connection_t *conn = hostx_get_xcbconn(); > > @@ -1166,6 +1166,18 @@ ephyrXcbNotify(int fd, int ready, void *data) > } > } > > +static void > +ephyrXcbNotify(int fd, int ready, void *data) > +{ > +ephyrXcbProcessEvents(); > +} > + > +void > +ephyrBlockHandler(ScreenPtr pScreen, void *timeo) > +{ > +ephyrXcbProcessEvents(); > +} > + > void > ephyrCardFini(KdCardInfo * card) > { > diff --git a/hw/kdrive/ephyr/ephyr.h b/hw/kdrive/ephyr/ephyr.h > index f5015f6..ef5736e 100644 > --- a/hw/kdrive/ephyr/ephyr.h > +++ b/hw/kdrive/ephyr/ephyr.h > @@ -138,6 +138,9 @@ void > ephyrCloseScreen(ScreenPtr pScreen); > > void > +ephyrBlockHandler(ScreenPtr pScreen, void *timeo); > + > +void > ephyrCardFini(KdCardInfo * card); > > void > diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c > index 149ea98..03d6289 100644 > --- a/hw/kdrive/ephyr/ephyrinit.c > +++ b/hw/kdrive/ephyr/ephyrinit.c > @@ -411,4 +411,5 @@ KdCardFuncs ephyrFuncs = { > ephyrPutColors, /* putColors */ > > ephyrCloseScreen, /* closeScreen */ > +ephyrBlockHandler, /* blockHandler */ > }; > diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h > index 3c7f2cd..6ef7337 100644 > --- a/hw/kdrive/src/kdrive.h > +++ b/hw/kdrive/src/kdrive.h > @@ -133,6 +133,7 @@ typedef struct _KdCardFuncs { > void (*putColors) (ScreenPtr, int, xColorItem *); > > void (*closeScreen) (ScreenPtr);/* close ScreenRec */ > +void (*blockHandler) (ScreenPtr, void *timeo); > } KdCardFuncs; > > #define KD_MAX_PSEUDO_DEPTH 8 > @@ -296,7 +297,6 @@ typedef struct _KdOsFuncs { > Bool (*SpecialKey) (KeySym); > void (*Disable) (void); > void (*Fini) (void); > -void (*pollEvents) (void); > void (*Bell) (int, int, int); > } KdOsFuncs; > > diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c > index c0f1cf7..2234dfc 100644 > --- a/hw/kdrive/src/kinput.c > +++ b/hw/kdrive/src/kinput.c > @@ -1965,6 +1965,7 @@ KdBlockHandler(ScreenPtr pScreen, void *timeo) > { > KdPointerInfo *pi; > int myTimeout = 0; > +KdScreenPriv(pScreen); > > for (pi = kdPointers; pi; pi = pi->next) { > if (pi->timeoutPending) { > @@ -1977,13 +1978,11 @@ KdBlockHandler(ScreenPtr pScreen, void *timeo) > myTimeout = ms; > } > } > -/* if we need to poll for events, do that */ > -if (kdOsFuncs->pollEvents) { > -(*kdOsFuncs->pollEvents) (); > -myTimeout = 20; > -} > if (myTimeout > 0) > AdjustWaitForDelay(timeo, myTimeout); > + > +if (pScreenPriv->card->cfuncs->blockHandler) > +(*pScreenPriv->card->cfuncs->blockHandler)(pScreen, timeo); > } > > void > -- > 2.8.0.rc3 > > ___ > 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 -- *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: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH xserver 1/2] xwayland: Move sprite invalidation logic into mipointer
Hi Keith! Just saw this patch while I glossed over the input threading patches. Glad to see them land after all these years! But anyway: On 05/18/2016 11:03 PM, Keith Packard wrote: -/* X is very likely to have the wrong idea of what the actual cursor - * sprite is, so in order to force updating the cursor lets set the - * current sprite to some invalid cursor behind its back so that it - * always will think it changed to the not invalid cursor. - */ -mipointer = MIPOINTER(master); -mipointer->pSpriteCursor = (CursorPtr) 1; +miPointerInvalidateSprite(master); Maybe the MIPOINTER macro def is a candidate for removal, too? Cheers, Simon ___ 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 libXfont 1/2] autogen: Set a default subject prefix for patches
Am 18.05.2016 um 17:52 schrieb Adam Jackson: Signed-off-by: Adam Jackson --- autogen.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/autogen.sh b/autogen.sh index fc34bd5..da95aaa 100755 --- a/autogen.sh +++ b/autogen.sh @@ -9,6 +9,9 @@ cd $srcdir autoreconf -v --install || exit 1 cd $ORIGDIR || exit $? +git config --local --get format.subjectPrefix || +git config --local format.subjectPrefix "PATCH libXfont" + Hi, would it be possible make sure that this is applied only to git clones? For example using something like if test -d .git ; then If the directory has been created from a tarball, then git would traverse up the directories and it would change the subjectPrefix of some other repository, for example ~/.git for those with a versioned $HOME. Regards, -- Gioele Barabucci ___ 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 xserver 1/2] xwayland: Move sprite invalidation logic into mipointer
On Wed, 18 May 2016 16:03:47 -0500 Keith Packard wrote: > This creates a function that invalidates the current sprite and forces > a sprite image reload the next time the sprite is checked, moving that > logic out of the xwayland sources and allowing the miPointerRec > structure to be removed from the server API. > > Signed-off-by: Keith Packard > --- > hw/xwayland/xwayland-input.c | 9 + > mi/mipointer.c | 15 +++ > mi/mipointer.h | 6 ++ > 3 files changed, 22 insertions(+), 8 deletions(-) Hi, FWIW as I'm so not familiar with Xserver code nor even compile-tested this, but still looks good to me: Reviewed-by: Pekka Paalanen for both patches. Thanks, pq > diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c > index cbc1bf2..d186681 100644 > --- a/hw/xwayland/xwayland-input.c > +++ b/hw/xwayland/xwayland-input.c > @@ -219,7 +219,6 @@ pointer_handle_enter(void *data, struct wl_pointer > *pointer, > struct xwl_seat *xwl_seat = data; > DeviceIntPtr dev = xwl_seat->pointer; > DeviceIntPtr master; > -miPointerPtr mipointer; > int i; > int sx = wl_fixed_to_int(sx_w); > int sy = wl_fixed_to_int(sy_w); > @@ -243,13 +242,7 @@ pointer_handle_enter(void *data, struct wl_pointer > *pointer, > master = GetMaster(dev, POINTER_OR_FLOAT); > (*pScreen->SetCursorPosition) (dev, pScreen, sx, sy, TRUE); > > -/* X is very likely to have the wrong idea of what the actual cursor > - * sprite is, so in order to force updating the cursor lets set the > - * current sprite to some invalid cursor behind its back so that it > - * always will think it changed to the not invalid cursor. > - */ > -mipointer = MIPOINTER(master); > -mipointer->pSpriteCursor = (CursorPtr) 1; > +miPointerInvalidateSprite(master); > > CheckMotion(NULL, master); > > diff --git a/mi/mipointer.c b/mi/mipointer.c > index ada1ab5..7f95cdb 100644 > --- a/mi/mipointer.c > +++ b/mi/mipointer.c > @@ -468,6 +468,21 @@ miPointerUpdateSprite(DeviceIntPtr pDev) > } > > /** > + * Invalidate the current sprite and force it to be reloaded on next cursor > setting > + * operation > + * > + * @param pDev The device to invalidate the sprite fore > + */ > +void > +miPointerInvalidateSprite(DeviceIntPtr pDev) > +{ > +miPointerPtr pPointer; > + > +pPointer = MIPOINTER(pDev); > +pPointer->pSpriteCursor = (CursorPtr) 1; > +} > + > +/** > * Set the device to the coordinates on the given screen. > * > * @param pDev The device to move > diff --git a/mi/mipointer.h b/mi/mipointer.h > index bdeed12..7ce6409 100644 > --- a/mi/mipointer.h > +++ b/mi/mipointer.h > @@ -109,6 +109,12 @@ miPointerSetPosition(DeviceIntPtr pDev, int mode, double > *x, double *y, > extern _X_EXPORT void > miPointerUpdateSprite(DeviceIntPtr pDev); > > +/* Invalidate current sprite, forcing reload on next > + * sprite setting (window crossing, grab action, etc) > + */ > +extern _X_EXPORT void > +miPointerInvalidateSprite(DeviceIntPtr pDev); > + > /* Sets whether the sprite should be updated immediately on pointer moves */ > extern _X_EXPORT Bool > miPointerSetWaitForUpdate(ScreenPtr pScreen, Bool wait); pgprF_X204a1b.pgp Description: OpenPGP digital signature ___ 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