X server 1.16 ABI freeze

Aaron Plattner aplattner at nvidia.com
Thu May 1 21:41:00 PDT 2014

As per [1] (and [2]), it's time to officially freeze the ABI for
the upcoming xserver 1.16 release.  That means that you can
extend the ABI in ways that are backwards-compatible (e.g., add
fields to the end of a server-allocated structure that is not
exposed in an array), and change the API (e.g., rename things),
but please avoid changing the ABI in a backwards-incompatible
way.  I.e., a driver built against the ABI 18 snapshot should
still work when loaded by the official xserver 1.16.0 release.

Note that there are many API changes that are not reflected as
changes in the ABI (e.g., "pointer" was replaced with "void *").
Those changes are not covered here.


ABI 18 is frozen as of git commit

The previous ABI freeze was ABI 15, at git tag xorg-server-1.15.0

Backwards-incompatible changes since ABI 15:

1. LoadExtension was removed.  Use the new LoadExtensionList

2. Pointers to the GCOps and GCFuncs structures are now const.
    Optimizations applied to the server may break drivers that
    expect to be able to change individual fields within these

3. The smart_check_tick field was removed from ClientRec,
    shifting the clientPtr, clientIds, and req_fds fields.  It
    also changed the pitch of the global 'clients' array.

4. The "unowned" field was removed from struct OdevAttributes.

5. The NameWindowPixmap field was added to ScreenRec between
    SetScreenPixmap and pScratchPixmap, shifting pScratchPixmap
    and all later elements by the size of a pointer.

6. load_cursor_image_check and load_cursor_argb_check were added
    to xf86CrtcFuncsRec, shifting some of the other fields.
    Similar changes were made to xf86CursorInfoRec.

[1] http://lists.x.org/archives/xorg-devel/2014-April/042239.html
[2] http://lists.x.org/archives/xorg-devel/2013-December/039739.html

More information about the xorg-devel mailing list