Forums » Linux
Devs: What is broken about the Mesa GL drivers?
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.
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.
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.
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?
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?
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
Cool. I'll have to update the laptop and see if it makes the roids visible.
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.
"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.
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.
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.
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.
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.
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. :(
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. :(
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.
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.
But even with shaders (or texture compression) disbled, the ice roids shouldn't be BLACK, right?
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.
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.
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.
This isn't a Linux or Mesa problem. It's a Vendetta Online Problem.
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.
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)"
I guess it'd have to be since Ubuntu doesn't ship with the s3tc libs and that matches "Mesa DRI Intel(R)"
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
[refgl]
look_ma_no_training_wheels = 1
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
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
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.