Forums » Linux

Devs: What is broken about the Mesa GL drivers?

Aug 08, 2012 abortretryfail link
Linux users of VO who aren't using the proprietary blob drivers (fglrx/nvidia) and those with Intel video cards who don't have a choice are stuck with various issues that are attributed to bad or crappy video drivers.

Can we get a technical explanation about what VO is trying to do that these drivers can't handle? Nobody can even try to fix it if we don't know what is wrong.
Aug 12, 2012 yodaofborg link
I'm pretty sure it has something to do with the shader model used for VO's "reflective roids" update, because before that, if you hacked around a little with any Mesa driver, it worked ok. Might not have got the best framerate, but it did work.
Aug 16, 2012 abortretryfail link
Yeah, it has to do with VO disabling texture compression (and shaders) because it thinks the drivers dont support S3TC (at least on my radeon card, last time I tried.)

What I want to know is why doesn't the non-shader mechanism for making ice look white/blue/whatever work and instead result in missing textures and black or bright colored asteroid models?
Sep 17, 2012 yodaofborg link
Well, looks like the guys at Mesa are now have OpenGL ES 2.0 conformance, at least on Intel hardware. http://developers.slashdot.org/story/12/09/12/1516217/mesa-finally-an-opengl-implementation-on-intel-hardware
Oct 10, 2012 abortretryfail link
Cool. I'll have to update the laptop and see if it makes the roids visible.
Oct 18, 2012 incarnate link
We only scan for two different strings in the Linux OpenGL driver:

"Mesa DRI Intel(R)"

..results in disabling shaders. Historically, this was specifically referenced only in Intel's own (horribly broken) OpenGL drivers.

"Intel GMA 950 OpenGL Engine"

..results in disabling texture compression. This was a driver bug work-around.

In addition, in both cases it prints the detected string and the disabled feature to the openglinfo.log, which you can check. If you are not seeing features being disabled in there, the features should be just as enabled as with any other hardware or GLX driver. Most likely, any remaining issues are related to the driver involved, be that MesaGL, proprietary blob, or whatever.

Note: There is no internal Vendetta Online OpenGL ES support with Linux at this time. We only compile and expose it for Android. This could be possible down the road, but for the moment an ES 2.0 capable driver does not buy you anything with regards to VO on Linux.
Oct 19, 2012 vskye link
Inc, this happens on even the official nvidia drivers, and I'd gather the amd ones also.

Ice roid colors are whacked. They are green, red, yellow, blue. No reflections, etc. This USED to be ok on the nvidia drivers in linux a year or so ago. I have no clue what is broken, but it's not specific to any dist of Linux since Bodhi, Ubuntu, Mint and Debian seem to have the same issues. (Arch also)

It would be nice to track this issue down. Under Windows 7 everything is fine, dunno about the Mac client.
Oct 19, 2012 incarnate link
We have an employee who runs the game every day on an NVIDIA card in Linux64, and he has not reported this issue. From what I read on here, I "gather" it only happens on the AMD ones when using open-source (Mesa-based) drivers. Philosophically we would love open source drivers, but in our historical experience Mesa has been synonymous with "broken".

If you want to follow this up, you're going to need to give us some actual bug reports over on the Bugs forum, with specific hardware versions, driver revisions, and everything, and we're going to need a lot more than just one person posting their information.

I still think there is a fair probability that this is NOT a bug in Vendetta Online. If it is, and we can specifically nail it down to where we can reproduce it.. fine, we'll try to fix it. But we've been on a lot of wild goose chases with Linux GPU drivers, and just because it seemed that some particular VO release "broke" it.. that only means we happened to push some shader state to expose a hidden problem in a driver somewhere. It happens all the time, even on Windows, there just isn't nearly as much effort to maintain Linux drivers.
Oct 22, 2012 abortretryfail link
It depends on the card and driver versions too. What happens on vskye's GPU might not ever show up on the one momerath42 is using. I saw the colored ice roids on Windows a couple of times with the Catalyst drivers, but that was on my old video card (Radeon X800)

If it's not a bug in VO, at least a technical description of what's *wrong* with the Mesa drivers would be great so we can pester the driver devs to fix it. As of right now it's just "Hey, this proprietary game doesn't work and says the drivers are buggy and have no shader support" which gets dismissed pretty quickly. :(
Oct 22, 2012 raybondo link
It was a problem from a little over 3 years ago where shaders would cause a crash.
For all I know, it's no longer a problem, but it was a problem for Intel 915/945 chips. They had different GL_RENDERER strings with a common "Mesa DRI Intel(R)" at the beginning of the string. If that substring is present in GL_RENDERER (which is the case for newer drivers as well as older ones) then shaders are disabled to prevent crashes.

If you have the ability to, you can attempt to change the GL_RENDERER string that your Mesa driver returns to not have the "Mesa DRI Intel(R)" substring to see if everything works fine.
Oct 22, 2012 abortretryfail link
But even with shaders (or texture compression) disbled, the ice roids shouldn't be BLACK, right?
Oct 22, 2012 Pizzasgood link
Just a thought: when adding workarounds like that which people might eventually want to disable to test newer drivers, it might be a good idea to add support for options in config.ini which disable them.
Oct 22, 2012 abortretryfail link
it might be a good idea to add support for options in config.ini which disable them.
Yeah that'd be cool.

So, just to be clear, the only Mesa-specific things in VO are the above mentioned GL_RENDERER check for "Mesa DRI Intel(R)" that disables shaders.

That pretty much rules out shaders being the source of the "black ice roids" problem, since they've been disabled this whole time.

So... what is it? Is the fallback VO uses when shaders are disabled using floating point textures or DXTC textures without an uncompressed version?
I've got libtxc-dxtn installed and running the game with force_s3tc_enable=true, I see GL_EXT_texture_compression_s3tc in openglinfo.log, but it still shows Texture Compression as "Unsupported"

This is on my laptop, Mesa 9.0/Intel 945GM.
Oct 22, 2012 abortretryfail link
This isn't a Linux or Mesa problem. It's a Vendetta Online Problem.
Oct 22, 2012 momerath42 link
I just tested on a fresh ubuntu 12.10 install with an intel hd4000, which reports a "Mesa DRI Intel(R) Ivybridge Desktop" - I see simply-textured ice-roids. I'll try on some other gpu/driver combos as time allows.
Oct 22, 2012 abortretryfail link
Do you have both shaders and texture compression turned off?
I guess it'd have to be since Ubuntu doesn't ship with the s3tc libs and that matches "Mesa DRI Intel(R)"
Oct 26, 2012 abortretryfail link
Wonky roids aside, could we get a configuration file option to disable driver-specific bugchecks? Even my laptop's crappy i945 was running Minecraft the other day at a surprisingly good framerate with no artifacts or crashes on Mesa 9.0.

[refgl]
look_ma_no_training_wheels = 1
Nov 09, 2012 Lisa50469 link
Interesting Thread. I too have the ice-roid color issues... I joked about it when they showed up about a year ago, and even took some snapshots of the bright colors.

Now with the Linux 64-bit multithreading on, the roids are back to normal and look great. BUT, VO crashes with the error:

"XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
after 67284 requests (67284 known processed) with 0 events remaining."

I've verified these crashes happen when there are no plugins in use.

So I turn off multithreading and the roids are back to crazy colors...

[Fri Nov 9 15:00:23 2012]
Vendor: Tungsten Graphics, Inc
Renderer: Mesa DRI Mobile IntelĀ® GM45 Express Chipset
Version: 2.1 Mesa 8.0.4
Nov 12, 2012 abortretryfail link
I'll have to try it on my desktop with the r600g driver once I get my monitor fixed. My laptop isn't running at 64-bit OS.