Forums » Linux

Mesa GL Cookbook - Open source 3D and Vendetta

May 15, 2013 abortretryfail link
Mesa GL Cookbook - Open source 3D and Vendetta Online
I'm looking to make this a one-stop-shop thread for how to get the best Vendetta Online experience for Linux users who have to (or want to) use the open source Mesa-based 3D drivers. Don't crud up this thread with complaints about how "blahblah AMD/nVidia/Linux sucks" or "Just use the binary blobs!"

- Which driver am I using?
Check with the glxinfo command. In there is an OpenGL Renderer string. Also, the game's openglinfo.log file will contain this info (~/.vendetta/openglinfo.log)

You can find more info about the drivers themselves here:
Here's a big feature grid for all 3 major manufacturers - http://mesamatrix.net/
Intel (i915,GMA950/3xxx, HD3000/4000/5000) - https://01.org/linuxgraphics/
ATI/AMD Radeon (Rxxx/RVxxx/tree names/islands/etc.) - http://www.x.org/wiki/RadeonFeature
nVidia Nouveau (NVxx) - http://nouveau.freedesktop.org/wiki/

- Run the latest available driver packages for your distro!
Nobody uses the proprietary drivers that came with the CD in the box with their video card. Likewise you shouldn't use old open source drivers. This means making sure 3 pieces of your Linux system are as up to date as possible:

1. The Linux kernel - Direct Rendering Infrastructure (DRI) and Kernel Modesetting (KMS) - This is the part that talks to the actual video hardware and everything else relies on it to work. Lots of performance enhancements and features in Mesa and Xorg won't work unless the kernel is new enough to support them!
2. Mesa libGL - All of the Gallium3D and OpenGL stuff is usually packaged with Mesa. Running a really old version of Mesa usually means missing features (shaders, anti-aliasing, etc) and poor performance.
3. Xorg DDX - This is the X11 piece of the display driver. It has to match whatever version of Xorg you have installed, so try to keep Xorg up to date. If you're running an old Xorg and DDX, Bad Thingsā„¢ can happen like X crashing or multiple heads not working as you'd expect.

Things will probably be easiest if you use packages for your distro. I'm not going to get into how to compile any of this stuff from scratch or why you'd want to do it.

- I have the latest drivers already. Why won't it let me enable Shaders/Anti-Aliasing/Texture Compression?
Something about the way Vendetta does its shaders makes it require S3TC texture compression or it disables all of these features. I don't know why, since they work even if texture compression is disabled when it does detect them. Because of patent reasons, S3TC/DXT support is distrubuted separately from Mesa. You need to have libtxc_dxtn.so installed. Also, sometimes you have to move or delete Vendetta's config.ini file to get it to detect it.
Vendetta also has a fail-safe check for Intel GPUs to avoid a driver crash in an old version of Mesa when running on i945 hardware. Unfortunately, it'll sometimes disable shaders even on newer GPUs and driver versions. To work around this, add the following to your ~/.vendetta/config.ini file:

[refgl]
old_mesa_intel_drivers=0

... but don't complain to the VO devs if your PC crashes/explodes. :)

- Performance sucks and the game runs awful! What gives?
First off, find out what the state of the open source drivers are for your type of card. This can be a big problem for brand-spanking-new video chips that the kernel/Mesa devs might not have had a chance to do much development for, or the support for them is so new that it hasn't made it into your distro's release channels. Make sure you're running the latest version available!

If you have a compositing window manager (Unity3D, KDE's Kwin, Gnome3's Mutter, Compiz, etc.), try turning off compositing. This uses the GPU's 3D hardware to make windows fly around, wobble, go transparent, whatever, at the cost of tying up resources GPU-intensive applications like games need to run smoothly.

By default (at least on my Intel and AMD cards) VSync is turned on for visual quality. This can sometimes hurt performance in games so try starting VO with it disabled like this: vblank_mode=0 vendetta. If this makes things better, you can use the driconf tool to apply this setting only to VO without having to set an environment variable.

Also, use the "Performance" governor for CPU speed.
May 24, 2013 Alloh link
Great topic, deserves beins STICK'd
Jul 16, 2013 abortretryfail link
Edited OP: Black/Psychedelic Ice Crystals are fixed as of Vendetta 1.8.256.1
Jan 06, 2014 abortretryfail link
I just ran across this, which looks like it might be useful to Ubuntu users wanting more up-to-date video drivers.

https://launchpad.net/~oibaf/+archive/graphics-drivers/
Jan 09, 2014 abortretryfail link
Edited OP: Added config.ini option to disable the Intel GMA bugcheck.
Aug 21, 2014 abortretryfail link
Thread necromancy to allow replies.
Dec 13, 2014 abortretryfail link
Big bump here about using the "Performance" governor. This can have a big impact on the game's framerate, especially with the new OpenGL 4 driver. (Yes, it runs on Mesa!)

cpupower frequency-set -g Performance
Jul 23, 2015 abortretryfail link
Bump for a link to http://mesamatrix.net/ in OP
Nov 23, 2016 abortretryfail link
If you try and use GL4 and the game just crashes every time, double check that the [gl4] section of config.ini isn't trying to do something stupid like use 24-bit color. Mesa wants 32-bit...

Ran into that on an AMD Kaveri using the radeonsi driver.