GLSL textures with Intel X3100 on Ubuntu 8.10

Hello, I am trying to use GLSL textures in blender 2.49 running on Ubuntu 8.10 with an Intel X3100 graphics card.
GLSL works fine in the game engine (and viewport) as long as I uncheck ‘Enable Shaders’ in the GLSL settings. But as soon as I add an image texture to an object, blender crashes when I try to play the game or when I switch to textured draw type in the 3D viewport.

The terminal output I get when Blender crashes is:

blender: shader/slang/slang_codegen.c:2442: _slang_gen_var_decl: Assertion `!is_sampler_type(&var->type)' failed.
Aborted

I’ve tried with various different images and always get the same result. I would just assume that my graphics card isn’t supported, however when I run Blender on the same computer, but using Mac OSX 10.5, GLSL textures work fine.
Is there some way I can get GLSL to work on Ubuntu?

If you turn off “use shaders”… that means you are not using GLSL shaders anymore… which would defeat the entire purpose of using GLSL. As a rule of thumb… any intel graphics card is rubbish with bad drivers and they don’t generally work well at doing anything much.

So the game engine crashes because it’s probably still using some GLSL for other things… like realtime filters and shadows perhaps… you card probally doesn’t support GLSL. So rather use the non-GLSL mode to make games or buy a better graphics card. Avoid intel cards at all costs.

Then why does GLSL work fine when I’m running Mac on the exact same computer?

Graphics support in a given operating system is a two-part process. First, there is the actual hardware support. In this case, your Intel X3100. Second there must be a software driver which allows the operating system to communicate with the actual hardware, telling it what to send to the monitor.

In order to use GLSL shaders you must have both a graphics card or chipset which can support shaders (anything made within the last 5 to 8 years, really) and a driver for your operating system which can interpret GLSL shaders and send the appropriate instructions to the graphics device. On top of all this, if the driver only partially supports GLSL, then the program you are using (Blender GE in this case) must implement shaders using only the commands which the driver understands (even though the GLSL specifications my allow for other commands to be used).

Intel is way behind the times on the development of their Linux drivers. They are buggy and lacking in features which should be standard. From your error output, I would guess that Blender is trying to use a standard GLSL command, but the Intel driver doesn’t understand it.

Buy an nVidia card if you intend to use GLSL on Linux. As best as I can tell, nVidia is the only company that offers proper OpenGL support on Linux. (ATI has a history of buggy OpenGL drivers on both Windows and Linux.)

Thanks for the helpful reply blendenzo. :slight_smile: I can’t really replace the graphics card (I’m using a MacBook so it’s integrated), but thanks anyway!