mesa/vesa and how to switch driver

I want to see how my system runs with a basic graphics driver but am not sure of the difference, in non-technical terms, between Mesa, Vesa and open source drivers such as radeon. I’ve had a look at the Graphic Card Practical Theory Guide and Wikipedia but I’m still confused by differences between software rendering/rasterizing, talk of llvmpipe and other stuff, and I’d like to know the most simple, openSUSE-specific way to switch over to an alternative driver.

I’ve had long-running issues with the open source radeon driver over the last 5 or 6 openSUSE releases, which I won’t go into yet or we’ll be here forever, and the ATI proprietary driver is not an option (deprecated years ago for this 9600 [R300] card). I’ve noticed when running non-openSUSE Live CDs I get surprisingly good performance and they’re not using the radeon driver.

It seems to be the 3D component of the radeon driver which causes issues for me. In YaST I see I have Mesa-libGL1 installed and there is a Mesa-libIndirectGL1 available. Is that useful or relevant for trying out? Is using Mesa effectively the same thing as using the radeon driver, or is it independent? How do I switch to that or to Vesa? Having done that, which settings work best with that in KDE’s Desktop Effects, OpenGL or XRender, Native or Raster?

Hm, I also have a Radeon 9600 and am quite satisfied with the radeon driver on openSUSE.
What exactly are your problems?

You can turn off the radeon driver by specifying “nomodeset” as kernel option (or select the failsafe entry in the boot menu). Your system will then fall back to the vesa driver. See also the Release Notes, chapter 5.1.

Regarding your other questions:

In YaST I see I have Mesa-libGL1 installed and there is a Mesa-libIndirectGL1 available. Is that useful or relevant for trying out?

I have both installed, but I don’t think Mesa-libIndirectGL1 would solve your problems. From the package’s description:

This library provides a pure software rasterizer; it does not provide
a direct rendering capable library, or one which uses GLX. For that,
please see Mesa-libGL1.
so it would be quite slow I think…

Is using Mesa effectively the same thing as using the radeon driver, or is it independent?

The 3D component is part of Mesa, the 2D component is in xf86-video-ati

which settings work best with that in KDE’s Desktop Effects, OpenGL or XRender, Native or Raster?

When using the radeon driver you should select OpenGL and Raster

I’ll come to that later, if we really have to go there. In fact, my laptop’s card is a Mobility Radeon 9700 but it’s based off the 9600, and I had another desktop machine with a 9600 which experienced exactly the same symptoms.

I can’t boot using nomodeset. It gets as far as “OK Reached Target Graphical Interface” and hangs. The same happens if trying to boot in failsafe mode.

How would I try it though? I note that selecting it for install doesn’t auto-deselect the libGL1 package so I don’t know where I would configure it to use that library.

Any other way to boot with Vesa and try it out before I paste a wall of text about my Radeon issues that nobody will want to respond to?

Hm…
Do you have a file /etc/X11/xorg.conf ? If yes, try to rename it so it isn’t found and see if it works then.

When it hangs, can you get to a text login screen by pressing Ctrl+Alt+F1?
It would be interesting what’s in your /var/log/Xorg.0.log when X fails to start…

Well, after a reboot, the old log should be in /var/log/Xorg.0.log.old
Could you post that?

How would I try it though? I note that selecting it for install doesn’t auto-deselect the libGL1 package so I don’t know where I would configure it to use that library.

I really don’t know, never tried that. And I’m not at my linux system now, so I can’t play around with it…

Any other way to boot with Vesa and try it out before I paste a wall of text about my Radeon issues that nobody will want to respond to?

Yes. Edit the file /etc/X11/xorg.conf.d/50-device.conf as root and add these lines: (every line already in there should start with a #, which means it is ignored)

Section "Device"
  Identifier "Default Device"
  Driver "vesa"
EndSection

But I can’t guarantee you that this works, as I can’t test it now.
It’s been a while since I last played around with the X settings…
Better keep a backup of the original file! :wink:

No there’s no xorg.conf file.

I can get a text login with Ctrl+Alt+F1.

Here’s two xorg log files, the first from a boot with ‘nomodeset’
SUSE Paste
and the second using the failsafe option
SUSE Paste

That’s what I want to try next; will post back here with the results. I’ve played around with the 50-device.conf file previously using various options for radeon but always had to disable hardware acceleration in that file in the end to get a stable system. For the above log files though I made sure everything was back at defaults (from a fresh 12.3 install a couple of days ago).

Oh well, this seems to be this bug:
https://bugzilla.novell.com/show_bug.cgi?id=809361

To make failsafe option work, you apparently need to change /etc/X11/xorg.conf.install:

Workaround is to remove the sections for “modesetting” driver and the reference to them in screen section.

It worked on my system without changing anything. Maybe because my /etc/X11/xorg.conf.install is years old… :stuck_out_tongue:

    23.370] Kernel command line: BOOT_IMAGE=/vmlinuz-3.7.10-1.1-default  root=UUID=95e1b20a-2d50-47a7-a33c-b98d2dcb0692 showopts apm=off  noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off  processor.max_cstate=1 nomodeset x11failsafe 

Remove the nomodeset boot parm and failsafe should then work – you should end up with an environment driven by fbdev

I tried editing 50-device.conf to use “vesa” but on a reboot, prior to the login screen appearing I just get a flashing cursor (I can still Ctrl-Alt-F1 to a console). Here’s the Xorg log from that attempt:
SUSE Paste

Not being an expert on these things, it looks to me like it’s saying the radeon driver is somehow hardwired to the kernel and so vesa isn’t supported ???

Yep that works. Judging by the general state of the desktop it seems the same as when I was running before with hardware acceleration disabled via the 50-device.conf file. I assume that when doing that, it falls back automatically to fbdev, hence what I’m seeing now would be the same?

Not quite. It says that vesa can’t use the gfxcard because the radeon kernel module is already loaded and uses it.
So you would need to set “nomodeset” again.
(Or maybe even “NO_KMS_IN_INITRD = yes” in /etc/sysconfig/kernel and run “mkinitrd” afterwards)

I booted using Vesa and nomodeset, but the resulting experience wasn’t very agreeable. Aside from displaying at a sub-optimal 1024x768 there were quirks such as the cursor disappearing, the display sometimes flickering in an unstable way and the overall performance seeming worse than with the fbdev driver. So I think I can now at least rule Vesa out. But fbdev really only provides minimal functionality too so I need to find some other solution.

I’d really like to test that mesa-libIndirectGL1 alternative but Googling for a how-to only produces package repositories (seemingly as though it’s an openSUSE-specific thing) and this forum post, suggesting I’m the only person who’s ever asked. No idea how to actually select to use it. I’ve asked the support mailing list in the meantime.

I found this in the meantime:
Environment Variables

I suppose, setting the envvar LIBGL_ALWAYS_INDIRECT would result in libIndirectGL1 to be used…
(or maybe LIBGL_ALWAYS_SOFTWARE?)