X is full of cryptic acronyms and confusing terminology. This page aims explains the terms, which can help tell the difference between a real error and just innocuous technobabble.
What is the "Ring Buffer"? What does it mean when it's printed in an I830WaitLpRing bug?
The ring buffer is the chunk of memory that contains commands we send down to the GPU. A WaitLpRing bug is generally a GPU hang, which can be caused by sending the GPU a bad instruction or address.
What is "DRM fence"?
A "fence" in the graphics world is a barrier or synchronization point for execution. Generally you wait for a fence to pass before continuing with some rendering or performing certain operations.
What does "pipe-A underrun" mean?
Pipe underruns occur when a display pipe (the hardware that actually sends data out to your monitor) can't get the data it needs from memory in time to send it out.
What is "Framebuffer Compression"? "Tiling"?
Framebuffer compression is a feature of Intel GPUs intended to save power. It works by run length encoding (a compression technique) the scanout buffer (i.e. the one you see on your screen) to a compressed buffer. Subsequently, pipes can use the compressed buffer to send data out to the monitor, which saves memory bandwidth and thus power.
Tiling is a way of addressing graphics data. Rather than simply accessing memory in a linear fashion (i.e. next pixel is always at the next address in memory), tiling allows the GPU to access pixels "nearby" (usually in a small "tile" around the pixel). This reduces TLB pressure by making GTT lookups less frequent for a given operation. It's especially important for performance on Intel chips.
What is "MTRR"?
MTRR stands for Memory Type Range Register. MTRRs are part of the CPU and control how the CPU will access given ranges of memory (i.e. cached, uncached or write combined).
What does "EQ" mean in the common "[mi] EQ overflowing" stuck-in-a-loop bugs?
I think EQ stands for Event Queue. When you see this it means the GPU hung but the server rather than driver noticed.
What are "BO backbuffers" and "frontbuffers"?
BOs are Buffer Objects, or the fundamental memory units of GEM and other memory managers. The front buffer is the buffer you see on your screen (also called the scanout buffer or display buffer). The back buffer is generally private to a given application. In OpenGL, the back buffer is where drawing happens. It doesn't show up in the front buffer until a buffer swap occurs. In single buffered rendering drawing occurs directly to the front buffer (usually leading to ugly tearing and partly drawn artifacts).
What are "GTT entries"?
The GPU has an IOMMU of its own. The GTT (or Graphics Translation Table) is the set of page table entries for the GPU IOMMU (GTT is often used to refer to both the page tables and the IOMMU). In order for the GPU to perform an operation on memory (e.g. use it as a scanout buffer, render to it) the memory must be pointed to by GTT entries. That means it must be pinned into physical memory (i.e. not swappable to disk) and GTT pointers must be updated to point at it.
What are "SAREA"s?
The SAREA is part of the DRI1 design. It's used for communicating important information like the location of the front, back and depth buffers and other info between the 2D, 3D and kernel drivers. It no longer exists with DRI2, since clients now talk to the display server through the DRI2 protocol when they need to get buffer addresses.
What is a "RAMDAC"?
A RAMDAC is a RAM Digital to Analog Converter. DACs are used to take pixel data from a pipe and turn it into signals appropriate for the various output types, e.g. VGA, DVI or LVDS.
"Error activating XKB configuration." after upgrade
- After upgrading from 6.10 to 7.04, the following error message can appear on reboot or when trying to change keyboard preferences: Error activating XKB configuration. It can happen under various circumstances:
- a bug in libxklavier library
- a bug in X server (xkbcomp, xmodmap utilities)
- X server with incompatible libxkbfile implementation
There are a few causes for this behavior, and several possible solutions to try:
- Disable the following option in /etc/X11/xorg.conf:
# Option "XkbVariant" "qwerty"
Especially if you have a non-us keyboard, doublecheck the XkbLayout option. Change the value to one that matches your language (for example, "pl" for Polish, "gb" for British, etc.)
Option "XkbLayout" "ie"
Using gconf-editor, clear both the "layouts" and "options" parameters located at /desktop/gnome/peripherals/keyboard/kbd. See http://lists.freebsd.org/pipermail/freebsd-gnome/2005-December/013059.html
intel(0): I830 Vblank Pipe Setup Failed 0
Harmless message that can be safely ignored. (Removed in newer versions of -intel)