tree inheritance:

init-cleanup

driver todo for megamerge:
nuke ddc1 paths
nuke weak functions
i810 kms
mach64 LinearVidMem removal
openbsd pciaccess fd inversion
fix linux int10 ReadBIOS and/or merge int10 and generic
geode/sis/xgi *apVidMem removal
i128/mga BiosBase removal
sis virtualFrom removal
mach64/rendition max[HV]Value removal
cirrus should prefer 16bpp
external RAMDAC code motion for glint/s3/tga
freedreno oslib.h detangle

unify xinerama protocol ~-1kloc
- add screen id token
- add removal api
- add primary flag dealie?

fold up pre-1.2 randr
s/xf86DefaultModes/DMTModes/ -100
GLX for Xnest (works-ish on other branch)
rootless-merge merge
rootless-using xwayland
glxproxy something something, -15kloc if you can delete it...
maybe merge int10/vbe
fix shadow for multiple pixmaps
top-level loader (almost, ported api, needs motion)
loadable glx for all ddxes
un-special-case colormap privates
redo fbbits a la sna
merge the one snafb bugfix
render: FindGlyph -> FindGlyphs
miValidateTree: 'forward' might be a pessimization
RegionOp's overlapFunc is constant
detach dmx from fb
destroywindow should return void
redo de-sdking of opaque.h

PRIVATE_COLORMAP - branch xf86cmap, old comments follow:
only reason this is special is xf86HandleColormaps, which the ddx drivers
call _after_ creating default colormap, but which registers a devprivate.
should find some symbol always called before xf86HC but never called in
randr 1.2 drivers?  xf86ValidateModes perhaps?

XRT Must Die
Class: Drawable
Types: Colormap, Damage, GC, Picture, Pixmap, Window

colormaps:
CreateColormap has a special case for the default cmap
uninstall is skipped for server cmaps? because default?
WindowOptRec->colormap is an id not a pointer
ScreenRec->defColormap is an id not a pointer, but, okay?
CopyColormapAndFree is... odd.
AllocColor's CMAPENTRY special case should be moved
ListInstalledColormaps is godawful
not clear why vfb/nest duplicate micmap so much

pixmap/window:
aaaaaaaaaa

---

FakeClientID(0):
weird lifetimes:
    screensaver window
    applewm/winwm event resource
visuals should use separate allocator (fbconfigs too?)
GetNewFontClientID?
hmm: xwin GenerateAuthorization, auth .Add

FakeClientID(client->index):
    dri2 add_frame_event hurrr
    DRI2CreateDrawable2

---

dmx wraps render, fuck.

Create/Free GlyphSet: Annoying because GlyphSets are display-wide, so there's
no obvious place to add a wrap chain. Likewise Add/FreeGlyphs, although there
the problem is that glyphs embed their own per-screen list! Fuck sake.

RenderCompositeGlyphs is correspondingly weird.

Not entirely sure why SetPictureTransform/Filter are wrapped.
 
---

Number of C files per directory (anything less than ~4 is suspect):

      1 damageext
      1 hw/xfree86/exa
      1 hw/xfree86/glamor_egl
      1 hw/xfree86/i2c
      1 hw/xfree86/os-support/linux/int10
      1 hw/xfree86/os-support/linux/int10/vm86
      1 hw/xfree86/os-support/misc
      1 hw/xfree86/utils/cvt
      1 hw/xfree86/utils/gtf
      1 hw/xquartz/pbproxy
      1 hw/xwin/dri
      1 miext/damage
      1 pseudoramiX
      1 test/xi1
      2 dbe
      2 hw/kdrive/fbdev
      2 hw/vfb
      2 hw/xfree86/dri
      2 hw/xfree86/dri2
      2 hw/xfree86/fbdevhw
      2 hw/xfree86/shadowfb
      2 hw/xfree86/vgahw
      2 record
      3 dri3
      3 hw/xfree86/loader
      3 hw/xfree86/os-support/hurd
      3 hw/xfree86/os-support/stub
      3 hw/xfree86/vbe
      3 hw/xquartz/mach-startup
      3 miext/sync
      4 hw/xfree86
      4 hw/xfree86/ddc
      4 hw/xfree86/os-support/bus
      4 hw/xquartz/GL
      5 composite
      5 config
      5 hw/kdrive/fake
      5 miext/rootless
      5 xfixes
      6 hw/xfree86/dixmods
      6 hw/xfree86/os-support/solaris
      6 hw/xwin/glx
      6 hw/xwin/winclipboard
      7 hw/kdrive/linux
      7 hw/kdrive/src
      7 hw/xfree86/drivers/modesetting
      7 hw/xfree86/ramdac
      7 present
      8 hw/xfree86/int10
      8 hw/xfree86/x86emu
      9 hw/kdrive/ephyr
      9 hw/xfree86/modes
     10 hw/dmx/config
     10 hw/xfree86/os-support/linux
     10 hw/xquartz
     11 exa
     11 hw/xfree86/os-support/shared
     11 hw/xquartz/xpr
     11 render
     12 hw/xfree86/os-support/bsd
     12 hw/xwayland
     12 test/xi2
     14 test
     15 hw/dmx/examples
     15 hw/dmx/glxProxy
     15 randr
     16 hw/xnest
     18 hw/xfree86/parser
     19 hw/dmx/input
     21 hw/dmx
     24 miext/shadow
     25 xkb
     26 Xext
     28 fb
     28 os
     29 mi
     31 glx
     31 hw/xfree86/common
     34 dix
     37 glamor
     50 hw/xwin
     53 Xi

:r! ls */**/*.c | rev | cut -f2- -d/ | rev | sort | uniq -c | sort -nk1
