When I installed Gnome2.0 as a desktop on my Solaris box I discovered that the window system was using 8-bit graphics. The background and icons were obviously dithered, they had a "grainy" appearance. This was very strange because applications (such as gimp) were displaying images with full 24-bit graphics properly.

Since the solution to this took me a while to figure out I thought I'd post it here in the hope it helps someone else out.

It might be worth noting that I have an Ultra60 with a Creator 3D graphics card.

The issue is that the X server is using 8-bit graphics on the root window, even though the graphics card is able to display 24-bit visuals. Since the windows and icons are drawn on the root window they end up being dithered.

To solve this, first copy the Xservers configuration file from /usr/dt/config/ (where it is installed) to /etc/dt/config/ (where it can be modified without being over-written by subsequent patch installation and such like).

Modify the file to indicate which framebuffer device to use and set its defdepth parameter to 24. The line, towards the end of the file starting with ":0" should look something like:

:0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner -dev /dev/fb0 defdepth 24

This sets the default visual depth to 24-bits. To get the new file noticed it is necessary to do the following:

/usr/dt/bin/dtconfig -reset kill -HUP login_server_process_ID

Where login_server_process_ID is the PID of the login server, /usr/dt/bin/dtlogin. (Actually since it spawns a daemon you want the lowest of the two PIDs that ps will list.)

All being well, once you log back in the grainy icons should be gone.