IT lexicon › Infra & Ops › BIG-REQUESTS

BIG-REQUESTS

Infra & Ops På svenska → Updated: 2026-10-08

The X11 extension that raised the ceiling on a single request from 256 kilobytes to 16 megabytes, through a trick with the length field that old servers never had to understand.

In the X core protocol every request begins with a header whose length is given in a 16-bit field counted in four-byte words. That allows at most 65,535 words, or 262,140 bytes, and in 1987 that was plenty. Then came images. A PutImage of a screen-sized picture in 24-bit colour is several megabytes, and Xlib had to quietly chop it into strips sent one at a time, with a server drawing them one after another. BIG-REQUESTS, which arrived with X11R6 in 1994, solves this with a single new request, BigReqEnable. From then on the client may set the length field to zero and let a 32-bit word with the real length follow. The server replies with what it can take; on X.Org that is about 16 megabytes.

The elegance is that a server without the extension never sees the format, because the client has to ask first, and that the old header keeps its shape. Xlib turns it on automatically when the connection opens, and XExtendedMaxRequestSize reports what the limit became, next to the old XMaxRequestSize; XCB does the same and splits whatever is still too large by itself. For really big images on the same machine, MIT-SHM is still faster, since it does not copy at all. BIG-REQUESTS came in the same release as XC-MISC, which gave clients fresh resource IDs; both are the kind of extension nobody sees but every modern X client uses within its first millisecond.

← Back to the lexicon