[RFC] porting Xephyr to xcb

Julien Cristau jcristau at debian.org
Fri Jul 16 11:00:32 PDT 2010


Hi,

I've been trying to port Xephyr to xcb instead of Xlib, with an eye to
getting that upstream for 1.10, so would appreciate some eyes on it :)

I've split up the change in several commits (using libX11-xcb in the
intermediate ones) so I could test changes independently, but I'm happy
to squash it all together if people think it'd be better.

I've tested Xv, but not DRI1/GLX since I don't have such a setup
anymore.

The removal of the unused proxy stuff is independent so could be merged
separately.

The transformation is mostly straightforward.  One note though: Xephyr
used XCheckTypedWindowEvent to bundle expose event processing; I don't
know how to do that with xcb, so it's removed.

The following changes since commit a2c13f0d6548310e3cd115cf486d3e43edf23dcc:

  Bump to version 1.8.99.905 (1.9 RC5) (2010-07-14 12:57:29 -0700)

are available in the git repository at:
  git://people.freedesktop.org/~jcristau/xserver xephyr-xcb

Julien Cristau (17):
      Xephyr: start converting hostx.c over to xcb
      Xephyr: use xcb-shape instead of XShape*
      Xephyr: no need for XDisplayKeycodes
      Xephyr: xcb-ify pointer/keyboard grab
      Xephyr: xcb-ify visual list construction
      Xephyr: delete unused proxy code
      Xephyr: delete unused hostx_get_extension_info function
      Xephyr: replace XKeycodeToKeysym with xcb-keysyms
      Xephyr: move HostX.visual to xcb
      Xephyr: some more hostx.c xcb-ification
      Xephyr: use xcb for event handling
      Xephyr: use xcb-xv instead of libXv
      Xephyr: move ephyrdri over to xcb
      Xephyr: remove unused DRI1 code
      Xephyr: move glx code to xcb
      Xephyr: drop remaining Xlib dependency
      Xephyr: stop loading the host's keymap

 configure.ac                     |    6 +-
 hw/kdrive/ephyr/Makefile.am      |    2 -
 hw/kdrive/ephyr/XF86dri.c        |  628 -------------------------
 hw/kdrive/ephyr/ephyr.c          |    2 +-
 hw/kdrive/ephyr/ephyrdri.c       |  205 ++++++---
 hw/kdrive/ephyr/ephyrglxext.c    |   14 +-
 hw/kdrive/ephyr/ephyrhostglx.c   |  575 +++++++-----------------
 hw/kdrive/ephyr/ephyrhostglx.h   |   10 +-
 hw/kdrive/ephyr/ephyrhostproxy.c |   94 ----
 hw/kdrive/ephyr/ephyrhostproxy.h |   51 --
 hw/kdrive/ephyr/ephyrhostvideo.c |  914 ++++++++++++++-----------------------
 hw/kdrive/ephyr/ephyrhostvideo.h |   44 +-
 hw/kdrive/ephyr/ephyrproxyext.c  |  119 -----
 hw/kdrive/ephyr/ephyrproxyext.h  |   34 --
 hw/kdrive/ephyr/ephyrvideo.c     |   47 +-
 hw/kdrive/ephyr/hostx.c          |  953 ++++++++++++++++++++------------------
 hw/kdrive/ephyr/hostx.h          |   11 +-
 hw/kdrive/ephyr/xf86dri.h        |  120 -----
 18 files changed, 1212 insertions(+), 2617 deletions(-)
 delete mode 100644 hw/kdrive/ephyr/XF86dri.c
 delete mode 100644 hw/kdrive/ephyr/ephyrhostproxy.c
 delete mode 100644 hw/kdrive/ephyr/ephyrhostproxy.h
 delete mode 100644 hw/kdrive/ephyr/ephyrproxyext.c
 delete mode 100644 hw/kdrive/ephyr/ephyrproxyext.h
 delete mode 100644 hw/kdrive/ephyr/xf86dri.h

Cheers,
Julien


More information about the xorg-devel mailing list