Xext/geext.c | 22 Xext/security.c | 2 Xext/shape.c | 1 Xext/shm.c | 12 Xext/sleepuntil.c | 17 Xext/sync.c | 45 Xext/vidmode.c | 2 Xext/xace.c | 45 Xext/xace.h | 12 Xext/xf86bigfont.c | 10 Xext/xres.c | 96 - Xext/xselinux_hooks.c | 18 Xext/xvdisp.c | 3 Xi/exevents.c | 8 Xi/extinit.c | 17 Xi/stubs.c | 14 Xi/xiproperty.c | 8 Xi/xiquerypointer.c | 4 composite/compalloc.c | 4 composite/compext.c | 29 config/config.c | 6 config/dbus-core.c | 18 config/hal.c | 4 config/udev.c | 57 config/wscons.c | 2 configure.ac | 173 +- damageext/damageext.c | 23 dix/devices.c | 81 - dix/dispatch.c | 227 ++- dix/dixfonts.c | 326 +++-- dix/dixutils.c | 45 dix/events.c | 17 dix/getevents.c | 29 dix/inpututils.c | 17 dix/main.c | 36 dix/pixmap.c | 7 dix/privates.c | 9 dix/property.c | 14 dix/ptrveloc.c | 42 dix/resource.c | 41 dix/selection.c | 3 dix/touch.c | 92 - doc/Xinput.xml | 8 doc/Xserver-spec.xml | 59 dri3/dri3_request.c | 8 dri3/dri3int.h | 26 exa/exa.c | 10 fb/fbimage.c | 2 glamor/Makefile.am | 4 glamor/glamor.c | 85 - glamor/glamor.h | 40 glamor/glamor_composite_glyphs.c | 3 glamor/glamor_copy.c | 45 glamor/glamor_core.c | 168 -- glamor/glamor_egl.c | 129 -- glamor/glamor_egl.h | 79 + glamor/glamor_egl_stubs.c | 5 glamor/glamor_fbo.c | 238 --- glamor/glamor_font.c | 6 glamor/glamor_gradient.c | 8 glamor/glamor_largepixmap.c | 2 glamor/glamor_picture.c | 1003 +++------------ glamor/glamor_priv.h | 55 glamor/glamor_program.c | 3 glamor/glamor_render.c | 86 - glamor/glamor_spans.c | 2 glamor/glamor_sync.c | 3 glamor/glamor_utils.h | 559 -------- glx/Makefile.am | 10 glx/createcontext.c | 8 glx/extension_string.c | 5 glx/extension_string.h | 1 glx/glxcmds.c | 45 glx/glxcontext.h | 5 glx/glxdrawable.h | 3 glx/glxdri2.c | 182 +- glx/glxdricommon.c | 62 glx/glxdricommon.h | 3 glx/glxdriswrast.c | 98 - glx/glxext.c | 22 glx/glxscreens.c | 44 glx/glxscreens.h | 17 glx/single2.c | 4 glx/single2swap.c | 4 glx/singlepix.c | 1 glx/singlepixswap.c | 1 hw/dmx/dmxfont.c | 9 hw/dmx/dmxinput.c | 5 hw/dmx/dmxinput.h | 18 hw/dmx/dmxscrinit.c | 4 hw/dmx/dmxsync.c | 4 hw/dmx/doc/dmx.xml | 11 hw/dmx/input/Makefile.am | 2 hw/dmx/input/dmxcommon.c | 17 hw/dmx/input/dmxevents.c | 29 hw/dmx/input/dmxinputinit.c | 13 hw/dmx/input/dmxsigio.c | 234 --- hw/dmx/input/dmxsigio.h | 43 hw/dmx/input/lnx-keyboard.c | 7 hw/dmx/input/lnx-ms.c | 21 hw/dmx/input/lnx-ps2.c | 14 hw/dmx/input/usb-common.c | 2 hw/dmx/input/usb-keyboard.c | 2 hw/kdrive/ephyr/Makefile.am | 14 hw/kdrive/ephyr/ephyr.c | 216 +-- hw/kdrive/ephyr/ephyr.h | 6 hw/kdrive/ephyr/ephyr_glamor_glx.c | 8 hw/kdrive/ephyr/ephyrdri.c | 356 ----- hw/kdrive/ephyr/ephyrdri.h | 70 - hw/kdrive/ephyr/ephyrdriext.c | 1376 --------------------- hw/kdrive/ephyr/ephyrdriext.h | 40 hw/kdrive/ephyr/ephyrglxext.c | 854 ------------- hw/kdrive/ephyr/ephyrglxext.h | 34 hw/kdrive/ephyr/ephyrhostglx.c | 490 ------- hw/kdrive/ephyr/ephyrhostglx.h | 75 - hw/kdrive/ephyr/ephyrinit.c | 65 - hw/kdrive/ephyr/ephyrvideo.c | 2 hw/kdrive/ephyr/hostx.c | 275 ++-- hw/kdrive/ephyr/hostx.h | 30 hw/kdrive/ephyr/os.c | 1 hw/kdrive/fake/mouse.c | 1 hw/kdrive/linux/evdev.c | 20 hw/kdrive/linux/linux.c | 80 - hw/kdrive/linux/mouse.c | 34 hw/kdrive/linux/ms.c | 13 hw/kdrive/linux/ps2.c | 13 hw/kdrive/linux/tslib.c | 1 hw/kdrive/src/Makefile.am | 8 hw/kdrive/src/kdrive.c | 96 + hw/kdrive/src/kdrive.h | 6 hw/kdrive/src/kinfo.c | 4 hw/kdrive/src/kinput.c | 390 +++--- hw/vfb/InitOutput.c | 4 hw/xfree86/common/xf86.h | 13 hw/xfree86/common/xf86AutoConfig.c | 13 hw/xfree86/common/xf86Bus.c | 3 hw/xfree86/common/xf86Config.c | 35 hw/xfree86/common/xf86Cursor.c | 8 hw/xfree86/common/xf86Events.c | 114 - hw/xfree86/common/xf86Globals.c | 3 hw/xfree86/common/xf86Helper.c | 94 - hw/xfree86/common/xf86Init.c | 266 +--- hw/xfree86/common/xf86Module.h | 9 hw/xfree86/common/xf86PM.c | 8 hw/xfree86/common/xf86Priv.h | 6 hw/xfree86/common/xf86Privstr.h | 17 hw/xfree86/common/xf86VGAarbiter.c | 12 hw/xfree86/common/xf86VGAarbiterPriv.h | 6 hw/xfree86/common/xf86Xinput.c | 159 +- hw/xfree86/common/xf86cmap.c | 62 hw/xfree86/common/xf86platformBus.c | 28 hw/xfree86/common/xf86str.h | 2 hw/xfree86/ddc/ddc.c | 2 hw/xfree86/ddc/ddcProperty.c | 55 hw/xfree86/ddc/edid.h | 1 hw/xfree86/dixmods/Makefile.am | 2 hw/xfree86/dixmods/glxmodule.c | 10 hw/xfree86/doc/Makefile.am | 1 hw/xfree86/doc/README.DRIcomp | 551 -------- hw/xfree86/doc/ddxDesign.xml | 18 hw/xfree86/dri/dri.c | 171 +- hw/xfree86/dri/dri.h | 16 hw/xfree86/dri2/dri2.c | 8 hw/xfree86/dri2/pci_ids/i965_pci_ids.h | 32 hw/xfree86/dri2/pci_ids/radeonsi_pci_ids.h | 12 hw/xfree86/drivers/modesetting/Makefile.am | 1 hw/xfree86/drivers/modesetting/dri2.c | 323 ++++- hw/xfree86/drivers/modesetting/driver.c | 547 +++++++- hw/xfree86/drivers/modesetting/driver.h | 26 hw/xfree86/drivers/modesetting/drmmode_display.c | 573 ++++++--- hw/xfree86/drivers/modesetting/drmmode_display.h | 55 hw/xfree86/drivers/modesetting/pageflip.c | 344 +++++ hw/xfree86/drivers/modesetting/present.c | 335 ----- hw/xfree86/drivers/modesetting/vblank.c | 74 - hw/xfree86/i2c/xf86i2c.c | 8 hw/xfree86/loader/loader.c | 1 hw/xfree86/loader/loadmod.c | 38 hw/xfree86/loader/os.c | 2 hw/xfree86/man/xorg.conf.man | 35 hw/xfree86/modes/xf86Crtc.c | 113 - hw/xfree86/modes/xf86Crtc.h | 53 hw/xfree86/modes/xf86Cursors.c | 165 +- hw/xfree86/modes/xf86RandR12.c | 338 +++-- hw/xfree86/modes/xf86RandR12.h | 5 hw/xfree86/modes/xf86Rotate.c | 9 hw/xfree86/os-support/bsd/bsd_init.c | 2 hw/xfree86/os-support/bus/Sbus.c | 4 hw/xfree86/os-support/linux/lnx_init.c | 2 hw/xfree86/os-support/shared/VTsw_usl.c | 2 hw/xfree86/os-support/shared/posix_tty.c | 33 hw/xfree86/os-support/shared/sigio.c | 121 + hw/xfree86/os-support/shared/sigiostubs.c | 23 hw/xfree86/os-support/solaris/sun_bell.c | 4 hw/xfree86/os-support/xf86_OSlib.h | 22 hw/xfree86/os-support/xf86_OSproc.h | 4 hw/xfree86/parser/DRI.c | 2 hw/xfree86/parser/Device.c | 3 hw/xfree86/parser/Extensions.c | 2 hw/xfree86/parser/Files.c | 2 hw/xfree86/parser/Flags.c | 2 hw/xfree86/parser/Input.c | 3 hw/xfree86/parser/InputClass.c | 95 + hw/xfree86/parser/Layout.c | 4 hw/xfree86/parser/Module.c | 4 hw/xfree86/parser/Monitor.c | 8 hw/xfree86/parser/OutputClass.c | 3 hw/xfree86/parser/Pointer.c | 4 hw/xfree86/parser/Screen.c | 4 hw/xfree86/parser/Vendor.c | 4 hw/xfree86/parser/Video.c | 4 hw/xfree86/parser/configProcs.h | 6 hw/xfree86/parser/read.c | 2 hw/xfree86/parser/scan.c | 42 hw/xfree86/parser/write.c | 36 hw/xfree86/parser/xf86Parser.h | 2 hw/xfree86/parser/xf86tokens.h | 13 hw/xfree86/ramdac/xf86Cursor.c | 23 hw/xfree86/ramdac/xf86Cursor.h | 1 hw/xfree86/ramdac/xf86CursorPriv.h | 1 hw/xfree86/ramdac/xf86HWCurs.c | 125 + hw/xfree86/sdksyms.sh | 1 hw/xfree86/utils/gtf/gtf.c | 2 hw/xfree86/vbe/vbe.c | 2 hw/xfree86/xorg-wrapper.c | 2 hw/xnest/Font.c | 7 hw/xnest/Handlers.c | 4 hw/xnest/Handlers.h | 5 hw/xnest/Init.c | 12 hw/xquartz/GL/glcontextmodes.c | 1 hw/xquartz/GL/indirect.c | 40 hw/xquartz/GL/visualConfigs.c | 1 hw/xquartz/X11Application.h | 3 hw/xquartz/X11Application.m | 64 - hw/xquartz/darwin.c | 18 hw/xquartz/darwinEvents.c | 125 - hw/xquartz/darwinXinput.c | 15 hw/xquartz/pbproxy/Makefile.am | 5 hw/xquartz/pbproxy/app-main.m | 3 hw/xquartz/pbproxy/main.m | 18 hw/xquartz/quartzCocoa.m | 8 hw/xquartz/quartzCommon.h | 5 hw/xquartz/quartzStartup.c | 9 hw/xwayland/.gitignore | 4 hw/xwayland/Makefile.am | 30 hw/xwayland/xwayland-cursor.c | 16 hw/xwayland/xwayland-glamor.c | 15 hw/xwayland/xwayland-input.c | 919 ++++++++++++-- hw/xwayland/xwayland-output.c | 14 hw/xwayland/xwayland-shm.c | 56 hw/xwayland/xwayland.c | 176 ++ hw/xwayland/xwayland.h | 53 hw/xwin/InitInput.c | 14 hw/xwin/InitOutput.c | 112 - hw/xwin/Makefile.am | 16 hw/xwin/dri/Makefile.am | 9 hw/xwin/dri/windowsdri.c | 274 ++++ hw/xwin/dri/windowsdri.h | 30 hw/xwin/glx/Makefile.am | 7 hw/xwin/glx/dri_helpers.c | 120 + hw/xwin/glx/dri_helpers.h | 38 hw/xwin/glx/indirect.c | 494 +++---- hw/xwin/glx/indirect.h | 95 + hw/xwin/glx/winpriv.c | 7 hw/xwin/glx/winpriv.h | 1 hw/xwin/man/XWin.man | 10 hw/xwin/win.h | 39 hw/xwin/winallpriv.c | 7 hw/xwin/winauth.c | 25 hw/xwin/winblock.c | 5 hw/xwin/winconfig.c | 5 hw/xwin/wincreatewnd.c | 6 hw/xwin/winengine.c | 2 hw/xwin/winerror.c | 2 hw/xwin/winglobals.c | 1 hw/xwin/winglobals.h | 1 hw/xwin/winkeybd.c | 2 hw/xwin/winmsg.c | 33 hw/xwin/winmsg.h | 17 hw/xwin/winmultiwindowicons.c | 151 +- hw/xwin/winmultiwindowicons.h | 4 hw/xwin/winmultiwindowwindow.c | 56 hw/xwin/winmultiwindowwm.c | 1442 +++++++++++------------ hw/xwin/winmultiwindowwndproc.c | 2 hw/xwin/winprefs.c | 30 hw/xwin/winprefs.h | 9 hw/xwin/winprocarg.c | 21 hw/xwin/winscrinit.c | 10 hw/xwin/winshadddnl.c | 6 hw/xwin/winshadgdi.c | 12 hw/xwin/wintaskbar.c | 2 hw/xwin/winvalargs.c | 19 hw/xwin/winwakeup.c | 3 hw/xwin/winwin32rootless.c | 68 - hw/xwin/winwin32rootlesswindow.c | 15 hw/xwin/winwin32rootlesswndproc.c | 239 --- hw/xwin/winwindow.h | 26 hw/xwin/winwindowswm.c | 2 hw/xwin/winwndproc.c | 52 include/Makefile.am | 3 include/dix-config.h.in | 18 include/dix.h | 34 include/dixfont.h | 18 include/dixfontstr.h | 1 include/dixfontstubs.h | 43 include/dixstruct.h | 41 include/eventstr.h | 10 include/globals.h | 2 include/input.h | 25 include/inpututils.h | 4 include/misc.h | 3 include/os.h | 43 include/pixmap.h | 3 include/privates.h | 3 include/property.h | 9 include/protocol-versions.h | 5 include/scrnintstr.h | 73 - include/xkbsrv.h | 6 include/xorg-config.h.in | 6 include/xserver_poll.h | 55 m4/ax_pthread.m4 | 337 +++++ mi/mieq.c | 163 -- mi/miglblt.c | 6 mi/mipointer.c | 48 mi/mipointer.h | 6 mi/mipointrst.h | 14 mi/misprite.c | 8 miext/damage/damage.c | 125 + miext/rootless/rootlessScreen.c | 4 miext/shadow/shadow.c | 20 miext/shadow/shadow.h | 1 os/Makefile.am | 10 os/WaitFor.c | 434 ++---- os/access.c | 25 os/backtrace.c | 2 os/connection.c | 558 +++----- os/inputthread.c | 551 ++++++++ os/io.c | 143 -- os/osdep.h | 71 - os/osinit.c | 26 os/ospoll.c | 477 +++++++ os/ospoll.h | 142 ++ os/rpcauth.c | 2 os/utils.c | 161 -- os/xdmauth.c | 2 os/xdmcp.c | 159 -- os/xserver_poll.c | 277 ++++ present/present.c | 18 present/present_event.c | 29 present/present_fake.c | 3 present/present_priv.h | 6 present/present_request.c | 2 present/present_screen.c | 6 randr/randr.c | 56 randr/randrstr.h | 25 randr/rrcrtc.c | 279 +++- randr/rrmonitor.c | 17 randr/rroutput.c | 10 randr/rrprovider.c | 107 + randr/rrscreen.c | 15 render/animcur.c | 57 render/render.c | 13 test/.gitignore | 2 test/Makefile.am | 44 test/ddxstubs.c | 16 test/os.c | 166 -- test/scripts/run-piglit.sh | 80 + test/scripts/xephyr-glamor-piglit.sh | 16 test/scripts/xinit-piglit-session.sh | 44 test/scripts/xvfb-piglit.sh | 7 test/simple-xinit.c | 229 +++ test/touch.c | 31 test/xi2/protocol-xiquerypointer.c | 1 xfixes/cursor.c | 1 xfixes/select.c | 1 xfixes/xfixes.c | 21 xkb/maprules.c | 2 xkb/xkbAccessX.c | 11 xkb/xkbActions.c | 176 +- xkb/xkbInit.c | 2 379 files changed, 12162 insertions(+), 13882 deletions(-)
New commits: commit 7e5c9bdf73e4185ac4cf7f044da0793a5cc3e62c Author: Keith Packard <[email protected]> Date: Tue Nov 15 08:12:05 2016 -0800 Bump version to 1.19.0 Signed-off-by: Keith Packard <[email protected]> diff --git a/configure.ac b/configure.ac index 395df80..f7ab48c 100644 --- a/configure.ac +++ b/configure.ac @@ -26,9 +26,9 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.60) -AC_INIT([xorg-server], 1.18.99.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2016-10-28" -RELEASE_NAME="Shigoku" +AC_INIT([xorg-server], 1.19.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2016-11-15" +RELEASE_NAME="Cioppino" AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) commit ea8efb3a997e15d27d362762e6c85d59487f9864 Author: Keith Packard <[email protected]> Date: Wed Nov 2 13:25:33 2016 -0700 dix: Make sure client is not in output_pending chain after closed (RH 1382444) I think it is possible that output could get queued to a client during CloseDownClient. After it is removed from the pending queue, active grabs are released, the client is awoken if sleeping and any work queue entries related to the client are processed. To fix this, move the call removing it from the output_pending chain until after clientGone has been set and then check clientGone in output_pending_mark. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1382444 Signed-off-by: Keith Packard <[email protected]> Reviewed-by: Hans de Goede <[email protected]> diff --git a/dix/dispatch.c b/dix/dispatch.c index e111377..3d0fe26 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -3406,7 +3406,6 @@ CloseDownClient(ClientPtr client) UngrabServer(client); } mark_client_not_ready(client); - xorg_list_del(&client->output_pending); BITCLEAR(grabWaiters, client->index); DeleteClientFromAnySelections(client); ReleaseActiveGrabs(client); @@ -3435,6 +3434,7 @@ CloseDownClient(ClientPtr client) if (ClientIsAsleep(client)) ClientSignal(client); ProcessWorkQueueZombies(); + output_pending_clear(client); CloseDownConnection(client); /* If the client made it to the Running stage, nClients has diff --git a/include/dixstruct.h b/include/dixstruct.h index 3b578f8..d71b0ac 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -159,7 +159,7 @@ extern struct xorg_list output_pending_clients; static inline void output_pending_mark(ClientPtr client) { - if (xorg_list_is_empty(&client->output_pending)) + if (!client->clientGone && xorg_list_is_empty(&client->output_pending)) xorg_list_append(&client->output_pending, &output_pending_clients); } commit 7513da40a656317ad3aa101651d29373de99c798 Author: Timo Aaltonen <[email protected]> Date: Wed Nov 2 17:18:11 2016 +0200 dri2: Sync i965_pci_ids.h from mesa Import changes from these mesa commits: 85ea8deb26da420 i965: Removing PCI IDs that are no longer listed as Kabylake. bdff2e554735ed9 i956: Add more Kabylake PCI IDs. f1fa8b4a1ca73fa i965/bxt: Add 2x6 variant d1ab544bb883d04 i965/chv: Display proper branding 20e8ee36627f874 i965/skl: Update Skylake renderer strings 644c8a515192d28 i965/skl: Add two missing device IDs Reviewed-by: Adam Jackson <[email protected]> Signed-off-by: Timo Aaltonen <[email protected]> diff --git a/hw/xfree86/dri2/pci_ids/i965_pci_ids.h b/hw/xfree86/dri2/pci_ids/i965_pci_ids.h index 5139e27..1566afd 100644 --- a/hw/xfree86/dri2/pci_ids/i965_pci_ids.h +++ b/hw/xfree86/dri2/pci_ids/i965_pci_ids.h @@ -112,6 +112,7 @@ CHIPSET(0x162E, bdw_gt3, "Intel(R) Broadwell GT3") CHIPSET(0x1902, skl_gt1, "Intel(R) HD Graphics 510 (Skylake GT1)") CHIPSET(0x1906, skl_gt1, "Intel(R) HD Graphics 510 (Skylake GT1)") CHIPSET(0x190A, skl_gt1, "Intel(R) Skylake GT1") +CHIPSET(0x190B, skl_gt1, "Intel(R) HD Graphics 510 (Skylake GT1)") CHIPSET(0x190E, skl_gt1, "Intel(R) Skylake GT1") CHIPSET(0x1912, skl_gt2, "Intel(R) HD Graphics 530 (Skylake GT2)") CHIPSET(0x1913, skl_gt2, "Intel(R) Skylake GT2f") @@ -122,19 +123,21 @@ CHIPSET(0x191A, skl_gt2, "Intel(R) Skylake GT2") CHIPSET(0x191B, skl_gt2, "Intel(R) HD Graphics 530 (Skylake GT2)") CHIPSET(0x191D, skl_gt2, "Intel(R) HD Graphics P530 (Skylake GT2)") CHIPSET(0x191E, skl_gt2, "Intel(R) HD Graphics 515 (Skylake GT2)") -CHIPSET(0x1921, skl_gt2, "Intel(R) Skylake GT2") -CHIPSET(0x1923, skl_gt3, "Intel(R) Iris Graphics 540 (Skylake GT3e)") -CHIPSET(0x1926, skl_gt3, "Intel(R) HD Graphics 535 (Skylake GT3)") +CHIPSET(0x1921, skl_gt2, "Intel(R) HD Graphics 520 (Skylake GT2)") +CHIPSET(0x1923, skl_gt3, "Intel(R) Skylake GT3e") +CHIPSET(0x1926, skl_gt3, "Intel(R) Iris Graphics 540 (Skylake GT3e)") CHIPSET(0x1927, skl_gt3, "Intel(R) Iris Graphics 550 (Skylake GT3e)") CHIPSET(0x192A, skl_gt4, "Intel(R) Skylake GT4") -CHIPSET(0x192B, skl_gt3, "Intel(R) Iris Graphics (Skylake GT3fe)") -CHIPSET(0x1932, skl_gt4, "Intel(R) Skylake GT4") -CHIPSET(0x193A, skl_gt4, "Intel(R) Skylake GT4") -CHIPSET(0x193B, skl_gt4, "Intel(R) Skylake GT4") -CHIPSET(0x193D, skl_gt4, "Intel(R) Skylake GT4") +CHIPSET(0x192B, skl_gt3, "Intel(R) Iris Graphics 555 (Skylake GT3e)") +CHIPSET(0x192D, skl_gt3, "Intel(R) Iris Graphics P555 (Skylake GT3e)") +CHIPSET(0x1932, skl_gt4, "Intel(R) Iris Pro Graphics 580 (Skylake GT4e)") +CHIPSET(0x193A, skl_gt4, "Intel(R) Iris Pro Graphics P580 (Skylake GT4e)") +CHIPSET(0x193B, skl_gt4, "Intel(R) Iris Pro Graphics 580 (Skylake GT4e)") +CHIPSET(0x193D, skl_gt4, "Intel(R) Iris Pro Graphics P580 (Skylake GT4e)") CHIPSET(0x5902, kbl_gt1, "Intel(R) Kabylake GT1") CHIPSET(0x5906, kbl_gt1, "Intel(R) Kabylake GT1") CHIPSET(0x590A, kbl_gt1, "Intel(R) Kabylake GT1") +CHIPSET(0x5908, kbl_gt1, "Intel(R) Kabylake GT1") CHIPSET(0x590B, kbl_gt1, "Intel(R) Kabylake GT1") CHIPSET(0x590E, kbl_gt1, "Intel(R) Kabylake GT1") CHIPSET(0x5913, kbl_gt1_5, "Intel(R) Kabylake GT1.5") @@ -147,17 +150,16 @@ CHIPSET(0x591B, kbl_gt2, "Intel(R) Kabylake GT2") CHIPSET(0x591D, kbl_gt2, "Intel(R) Kabylake GT2") CHIPSET(0x591E, kbl_gt2, "Intel(R) Kabylake GT2") CHIPSET(0x5921, kbl_gt2, "Intel(R) Kabylake GT2F") +CHIPSET(0x5923, kbl_gt3, "Intel(R) Kabylake GT3") CHIPSET(0x5926, kbl_gt3, "Intel(R) Kabylake GT3") -CHIPSET(0x592A, kbl_gt3, "Intel(R) Kabylake GT3") -CHIPSET(0x592B, kbl_gt3, "Intel(R) Kabylake GT3") -CHIPSET(0x5932, kbl_gt4, "Intel(R) Kabylake GT4") -CHIPSET(0x593A, kbl_gt4, "Intel(R) Kabylake GT4") +CHIPSET(0x5927, kbl_gt3, "Intel(R) Kabylake GT3") CHIPSET(0x593B, kbl_gt4, "Intel(R) Kabylake GT4") -CHIPSET(0x593D, kbl_gt4, "Intel(R) Kabylake GT4") -CHIPSET(0x22B0, chv, "Intel(R) HD Graphics (Cherryview)") -CHIPSET(0x22B1, chv, "Intel(R) HD Graphics (Cherryview)") +CHIPSET(0x22B0, chv, "Intel(R) HD Graphics (Cherrytrail)") +CHIPSET(0x22B1, chv, "Intel(R) HD Graphics XXX (Braswell)") /* Overridden in brw_get_renderer_string */ CHIPSET(0x22B2, chv, "Intel(R) HD Graphics (Cherryview)") CHIPSET(0x22B3, chv, "Intel(R) HD Graphics (Cherryview)") CHIPSET(0x0A84, bxt, "Intel(R) HD Graphics (Broxton)") CHIPSET(0x1A84, bxt, "Intel(R) HD Graphics (Broxton)") +CHIPSET(0x1A85, bxt_2x6, "Intel(R) HD Graphics (Broxton 2x6)") CHIPSET(0x5A84, bxt, "Intel(R) HD Graphics (Broxton)") +CHIPSET(0x5A85, bxt_2x6, "Intel(R) HD Graphics (Broxton 2x6)") commit 4cfee398726adf89db4b632ade7d6cab8b78282e Author: Ian Ray <[email protected]> Date: Wed May 25 10:41:53 2016 +0300 xwayland-shm: block signals during fallocate posix_fallocate() does an explicit rollback if it gets EINTR, and this is a problem on slow systems because when the allocation size is sufficiently large posix_fallocate() will always be interrupted by the smart scheduler's SIGALRM. Changes since v1 - big comment in the code to explain what is going on Reviewed-by: Adam Jackson <[email protected]> Signed-off-by: Ian Ray <[email protected]> Acked-by: Pekka Paalanen <[email protected]> Acked-by: Daniel Stone <[email protected]> diff --git a/hw/xwayland/xwayland-shm.c b/hw/xwayland/xwayland-shm.c index daf6148..452d1f5 100644 --- a/hw/xwayland/xwayland-shm.c +++ b/hw/xwayland/xwayland-shm.c @@ -28,6 +28,8 @@ #include <dix-config.h> #endif +#include "os.h" + #include "xwayland.h" #include <sys/mman.h> @@ -139,9 +141,17 @@ os_create_anonymous_file(off_t size) return -1; #ifdef HAVE_POSIX_FALLOCATE + /* + * posix_fallocate does an explicit rollback if it gets EINTR. + * Temporarily block signals to allow the call to succeed on + * slow systems where the smart scheduler's SIGALRM prevents + * large allocation attempts from ever succeeding. + */ + OsBlockSignals(); do { ret = posix_fallocate(fd, 0, size); } while (ret == EINTR); + OsReleaseSignals(); if (ret != 0) { close(fd); commit 512e75a23b7f6339593c3ae6942f0c420a975fd3 Author: Keith Packard <[email protected]> Date: Fri Oct 28 09:32:42 2016 -0700 Bump to 1.18.99.902 (1.19 RC2) Signed-off-by: Keith Packard <[email protected]> diff --git a/configure.ac b/configure.ac index 25168cc..395df80 100644 --- a/configure.ac +++ b/configure.ac @@ -26,9 +26,9 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.60) -AC_INIT([xorg-server], 1.18.99.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2016-09-19" -RELEASE_NAME="Brown Turkey Fig" +AC_INIT([xorg-server], 1.18.99.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2016-10-28" +RELEASE_NAME="Shigoku" AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) commit c85f81825e196e96337347e0ce3a538fb2e38f16 Author: Keith Packard <[email protected]> Date: Fri Oct 28 09:28:32 2016 -0700 dix: Bump MAXHASHSIZE for the resource db [v2] [This was originally a workaround for a client-side resource leak: http://lists.freedesktop.org/archives/xorg-devel/2012-November/034555.html Obviously that's a broken app, but the performance problem it illustrates - that walking the linked list ends up burning all your CPU time - is real enough. - ajax] v2: Replace with a shorter code sequence which computes the same results for all but numBits == 7 Reviewed-by: Adam Jackson <[email protected]> Signed-off-by: Keith Packard <[email protected]> diff --git a/dix/resource.c b/dix/resource.c index 68efd24..b6ef99f 100644 --- a/dix/resource.c +++ b/dix/resource.c @@ -156,7 +156,7 @@ static void RebuildTable(int /*client */ #define INITBUCKETS 64 #define INITHASHSIZE 6 -#define MAXHASHSIZE 11 +#define MAXHASHSIZE 16 typedef struct _Resource { struct _Resource *next; @@ -668,29 +668,14 @@ InitClientResources(ClientPtr client) int HashResourceID(XID id, int numBits) { - id &= RESOURCE_ID_MASK; - switch (numBits) - { - case 6: - return ((int)(0x03F & (id ^ (id>>6) ^ (id>>12)))); - case 7: - return ((int)(0x07F & (id ^ (id>>7) ^ (id>>13)))); - case 8: - return ((int)(0x0FF & (id ^ (id>>8) ^ (id>>16)))); - case 9: - return ((int)(0x1FF & (id ^ (id>>9)))); - case 10: - return ((int)(0x3FF & (id ^ (id>>10)))); - case 11: - return ((int)(0x7FF & (id ^ (id>>11)))); - } - if (numBits >= 11) - return ((int)(0x7FF & (id ^ (id>>11)))); - else - { - assert(numBits >= 0); - return id & ~((~0) << numBits); - } + static XID mask; + + if (!mask) + mask = RESOURCE_ID_MASK; + id &= mask; + if (numBits < 9) + return (id ^ (id >> numBits) ^ (id >> (numBits<<1))) & ~((~0) << numBits); + return (id ^ (id >> numBits)) & ~((~0) << numBits); } static XID commit 9ed5b263542e5245317927828f0515db6c0a54c8 Author: Keith Packard <[email protected]> Date: Fri Oct 28 08:04:43 2016 -0700 os: Recompute whether any clients are ready after ProcessWorkQueue() (bug 98030) If a work proc wakes up a sleeping client and it is ready to execute, we need to re-compute the local 'are_ready' value before deciding what timeout value to use in WaitForSomething. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98030 Signed-off-by: Keith Packard <[email protected]> Reviewed-by: Hans de Goede <[email protected]> diff --git a/os/WaitFor.c b/os/WaitFor.c index 7d5aa32..ff1c85e 100644 --- a/os/WaitFor.c +++ b/os/WaitFor.c @@ -204,8 +204,10 @@ WaitForSomething(Bool are_ready) crashed connections and the screen saver timeout */ while (1) { /* deal with any blocked jobs */ - if (workQueue) + if (workQueue) { ProcessWorkQueue(); + are_ready = clients_are_ready(); + } if (are_ready) timeout = 0; commit 2c91f3235a4e1655e18cb014922529161051ffbb Author: Keith Packard <[email protected]> Date: Wed Oct 5 09:41:44 2016 -0700 ephyr: Leave window unmapped for -glamor-skip-present [v2] If we're never painting anything in the window, we probably don't need to map it. v2: Drop ephyr_glamor_gles2 from hostx.c Signed-off-by: Keith Packard <[email protected]> Reviewed-by: Eric Anholt <[email protected]> diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c index 887f654..fe69f84 100644 --- a/hw/kdrive/ephyr/hostx.c +++ b/hw/kdrive/ephyr/hostx.c @@ -95,6 +95,7 @@ char *ephyrResName = NULL; int ephyrResNameFromCmd = 0; char *ephyrTitle = NULL; Bool ephyr_glamor = FALSE; +extern Bool ephyr_glamor_skip_present; Bool hostx_has_extension(xcb_extension_t *extension) @@ -898,7 +899,10 @@ hostx_screen_init(KdScreenInfo *screen, &size_hints); } - xcb_map_window(HostX.conn, scrpriv->win); +#ifdef GLAMOR + if (!ephyr_glamor_skip_present) +#endif + xcb_map_window(HostX.conn, scrpriv->win); /* Set explicit window position if it was informed in * -screen option (WxH+X or WxH+X+Y). Otherwise, accept the commit cba5a10fd93310702cad9dbe1e6d48da99f5552f Author: Alex Goins <[email protected]> Date: Wed Oct 26 11:03:49 2016 -0700 ramdac: Check sPriv != NULL in xf86CheckHWCursor() xf86CheckHWCursor() would dereference sPriv without NULL checking it. If Option "SWCursor" is specified, sPriv == NULL. In this case we should assume that HW cursors are not supported. Signed-off-by: Alex Goins <[email protected]> Reviewed-by: Andy Ritger <[email protected]> Signed-off-by: Keith Packard <[email protected]> diff --git a/hw/xfree86/ramdac/xf86HWCurs.c b/hw/xfree86/ramdac/xf86HWCurs.c index da2b181..4481320 100644 --- a/hw/xfree86/ramdac/xf86HWCurs.c +++ b/hw/xfree86/ramdac/xf86HWCurs.c @@ -148,6 +148,10 @@ xf86CheckHWCursor(ScreenPtr pScreen, CursorPtr cursor, xf86CursorInfoPtr infoPtr continue; sPriv = dixLookupPrivate(&pSlave->devPrivates, xf86CursorScreenKey); + if (!sPriv) /* NULL if Option "SWCursor", possibly other conditions */ + return FALSE; + + /* FALSE if HWCursor not supported by slave */ if (!xf86ScreenCheckHWCursor(pSlave, cursor, sPriv->CursorInfoPtr)) return FALSE; } commit 03d99ef729178dd99268f185fb45320a29382091 Author: Jon Turney <[email protected]> Date: Thu Oct 6 22:13:07 2016 +0100 glx/dri2: Don't build DRI loader if DRI2 isn't enabled This partially reverts 501d8e2b. Signed-off-by: Jon Turney <[email protected]> Reviewed-by: Emil Velikov <[email protected]> diff --git a/glx/Makefile.am b/glx/Makefile.am index fc0b76a..699de63 100644 --- a/glx/Makefile.am +++ b/glx/Makefile.am @@ -1,4 +1,8 @@ -noinst_LTLIBRARIES = libglx.la libglxdri.la +if DRI2 +GLXDRI_LIBRARY = libglxdri.la +endif + +noinst_LTLIBRARIES = libglx.la $(GLXDRI_LIBRARY) AM_CFLAGS = \ @DIX_CFLAGS@ \ @@ -16,11 +20,10 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/hw/xfree86/os-support/bus \ -I$(top_srcdir)/hw/xfree86/common \ -I$(top_srcdir)/hw/xfree86/dri \ + -I$(top_srcdir)/hw/xfree86/dri2 \ -I$(top_srcdir)/mi \ -I$(top_srcdir)/present -AM_CPPFLAGS += -I$(top_srcdir)/hw/xfree86/dri2 - indirect_sources = \ indirect_dispatch.c \ indirect_dispatch.h \ @@ -33,7 +36,9 @@ indirect_sources = \ indirect_table.c libglxdri_la_SOURCES = +if DRI2 libglxdri_la_SOURCES += glxdri2.c +endif libglxdri_la_LIBADD = $(DLOPEN_LIBS) diff --git a/hw/xfree86/dixmods/Makefile.am b/hw/xfree86/dixmods/Makefile.am index be43e8f..d534c78 100644 --- a/hw/xfree86/dixmods/Makefile.am +++ b/hw/xfree86/dixmods/Makefile.am @@ -29,10 +29,12 @@ libwfb_la_CFLAGS = $(AM_CFLAGS) -DFB_ACCESS_WRAPPER libglx_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG) libglx_la_LIBADD = $(top_builddir)/glx/libglx.la $(GLX_SYS_LIBS) +if DRI2 libglx_la_LIBADD += $(top_builddir)/glx/libglxdri.la if NO_UNDEFINED libglx_la_LIBADD += $(LIBDRM_LIBS) $(PIXMAN_LIBS) endif +endif libglx_la_SOURCES = glxmodule.c libshadow_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG) commit 5cb328338684d8e5b03913c47475bfcd7acffec4 Author: Peter Hutterer <[email protected]> Date: Wed Oct 26 12:21:16 2016 +0200 inputthread: On Linux leave the main thread's name as-is On Linux, setting the main thread's name changes the program name (/proc/self/comm). Setting it to MainThread breaks scripts that rely on the command name, e.g. ps -C Xorg. Signed-off-by: Peter Hutterer <[email protected]> Signed-off-by: Hans de Goede <[email protected]> diff --git a/os/inputthread.c b/os/inputthread.c index ddafa7f..8e7f2ed 100644 --- a/os/inputthread.c +++ b/os/inputthread.c @@ -431,11 +431,13 @@ InputThreadPreInit(void) } hotplugPipeWrite = hotplugPipe[1]; +#ifndef __linux__ /* Linux does not deal well with renaming the main thread */ #if defined(HAVE_PTHREAD_SETNAME_NP_WITH_TID) pthread_setname_np (pthread_self(), "MainThread"); #elif defined(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID) pthread_setname_np ("MainThread"); #endif +#endif } commit 007f8ee61a35ceda36b43e772a9a1074b8e27a06 Author: Olivier Fourdan <[email protected]> Date: Fri Oct 21 10:11:45 2016 +0200 xwayland: Activate and enable touch devices On some random condition, a touch event may trigger a crash in Xwayland in GetTouchEvents(). The (simplified) backtrace goes as follow: (gdb) bt #0 GetTouchEvents() at getevents.c:1892 #1 QueueTouchEvents() at getevents.c:1866 #2 xwl_touch_send_event() at xwayland-input.c:652 #5 wl_closure_invoke() from libwayland-client.so.0 #6 dispatch_event() from libwayland-client.so.0 #7 wl_display_dispatch_queue_pending() from libwayland-client.so.0 #8 xwl_read_events() at xwayland.c:483 #9 ospoll_wait() at ospoll.c:412 #10 WaitForSomething() at WaitFor.c:222 #11 Dispatch() at dispatch.c:412 #12 dix_main() at main.c:287 #13 __libc_start_main() at libc-start.c:289 #14 _start () The crash occurs when trying to access the sprite associated with the touch device, which appears to be NULL. Reason being the device itself is more a keyboard device than a touch device. Moreover, it appears the device is neither enabled nor activated (inited=0, enabled=0) which doesn't seem right, but matches the code in init_touch() from xwayland-input.c which would enable the device if it was previously existing and otherwise would create the device but not activate it. Make sure we do activate and enable touch devices just like we do for other input devices such as keyboard and pointer. Signed-off-by: Olivier Fourdan <[email protected]> Reviewed-by: Hans de Goede <[email protected]> diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c index 1991076..7ec3b1a 100644 --- a/hw/xwayland/xwayland-input.c +++ b/hw/xwayland/xwayland-input.c @@ -1059,12 +1059,13 @@ init_touch(struct xwl_seat *xwl_seat) wl_touch_add_listener(xwl_seat->wl_touch, &touch_listener, xwl_seat); - if (xwl_seat->touch) - EnableDevice(xwl_seat->touch, TRUE); - else { + if (xwl_seat->touch == NULL) { xwl_seat->touch = add_device(xwl_seat, "xwayland-touch", xwl_touch_proc); + ActivateDevice(xwl_seat->touch, TRUE); } + EnableDevice(xwl_seat->touch, TRUE); + } static void commit f68ba7b81ffe765380664fccc92f3e689c6c48c2 Author: Rui Matos <[email protected]> Date: Tue Oct 25 19:24:49 2016 +0200 xwayland: Transform pointer enter event coordinates Pointer enter event coordinates are surface relative and we need them to be screen relative for pScreen->SetCursorPosition(). https://bugzilla.gnome.org/show_bug.cgi?id=758283 Signed-off-by: Rui Matos <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Jonas Ã…dahl <[email protected]> Signed-off-by: Hans de Goede <[email protected]> diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c index 4d447a5..1991076 100644 --- a/hw/xwayland/xwayland-input.c +++ b/hw/xwayland/xwayland-input.c @@ -298,6 +298,7 @@ pointer_handle_enter(void *data, struct wl_pointer *pointer, int i; int sx = wl_fixed_to_int(sx_w); int sy = wl_fixed_to_int(sy_w); + int dx, dy; ScreenPtr pScreen = xwl_seat->xwl_screen->screen; ValuatorMask mask; @@ -314,9 +315,11 @@ pointer_handle_enter(void *data, struct wl_pointer *pointer, xwl_seat->pointer_enter_serial = serial; xwl_seat->focus_window = wl_surface_get_user_data(surface); + dx = xwl_seat->focus_window->window->drawable.x; + dy = xwl_seat->focus_window->window->drawable.y; master = GetMaster(dev, POINTER_OR_FLOAT); - (*pScreen->SetCursorPosition) (dev, pScreen, sx, sy, TRUE); + (*pScreen->SetCursorPosition) (dev, pScreen, dx + sx, dy + sy, TRUE); miPointerInvalidateSprite(master); commit f5c6d751d08c6de77c2ca49ba2a48f8023758cef Author: Nikhil Mahale <[email protected]> Date: Sat Oct 22 17:40:51 2016 +0530

