Tag Archives: missing letter

gnome-shell missing characters and display corruption with Xorg and radeon

After connecting an external monitor to the HDMI port of my laptop (featuring an AMD/ATI Mobility Radeon HD 5470 graphics card with 512 MB video memory, interfaced by Xorg’s open-source radeon driver), the title bar of gnome-shell version 3.6.2 was missing letters

gnome-shell corrupted title bar radeon xorg

The gnome-shell’s title bar is missing letters on the external monitor.

Sometimes, even the entire display was heavilly corrupted. Interestingly, restarting the gnome-shell

ALT-F2 + 'r'

resolved the problems in all cases. Researching the problem turned out to be quite cumbersome, given that the zoo of graphic related bugs is quite tremendous. Finally, this post here brought me onto the right track.

Video Memory vs. GART/GTT Memory

Typically, a graphics card is equipped with memory, the so called video memory. In my case, this amounted to 512 MegaBytes. Apart from its internal memory, the graphics card is given direct access to system memory (RAM). The RAM assigned to the graphics card is called GART or GTT memory. Its size is set by the kernel module and can be obtained from dmesg,

dmesg | grep GTT

and is usually set to the video memory size by default:

[    2.3462] [drm] radeon: 512M of GTT memory ready.

The Xorg server inherits the kernel module’s settings (plus/minus epsilon), as the output of

cat /var/log/Xorg.0.log | grep gart

verifies,

[    24.201] (II) RADEON(0): mem size init: gart size :1fdff000 vram size: s:20000000 visible:fba0000

Please note that 0x1fdff000 / (1024*1024) = 510 MegaBytes.

A Solution to the Problem

Providing more GART/GTT memory to the graphics card solves the problem. This can be achieved by either adding

radeon.gartsize=1024

to the kernel boot command-line or by configuring a permanent parameter for the kernel’s radeon module. This is done by creating a file called radeon.conf or similar in

/etc/modprobe.d/

and adding a single line

options radeon gartsize=1024

to this file. Finally note that on Debian-based systems you must run

sudo update-initramfs -u

after adding a file to /etc/modprobe.d.

Advertisements