[braid] Missing required OpenGL extension

Ryan C. Gordon icculus at icculus.org
Wed Dec 15 02:21:42 EST 2010


> someone else would do it anyway :p. Though, I suppose this isn't a bug
> as much as it is a request to know the dependencies. :p

The game will refuse to run if GL_VERSION is less than 1.2.

These are the GL extensions we need to have or we refuse to run:

GL_ARB_multitexture
GL_ARB_texture_compression
GL_ARB_vertex_program
GL_ARB_fragment_program
GL_EXT_bgra
GL_EXT_texture_compression_s3tc
GL_EXT_secondary_color
GL_EXT_texture_edge_clamp

These are the GL extensions we _want_ but can live without:

GL_ARB_draw_buffers
GL_ARB_texture_non_power_of_two
GL_EXT_framebuffer_object
GL_EXT_packed_depth_stencil

(we use those for render-to-texture, but the game has a fallback if any 
of those aren't available...it's an optimization.)

It's worth noting that we look for GL_ARB_vertex_program and 
GL_ARB_fragment_program as a baseline, but give libCg discretion to 
choose the GL extension it wants to use for shaders (so it could use the 
more-advanced Nvidia vertex/fragment program extensions, or GLSL or 
whatever). Strictly speaking, you shouldn't need GL_ARB_*_program at 
all. I'm not sure which makes more sense in current Linux drivers at the 
moment between ARB programs and GLSL, though.

As someone figured out, there appear to be drivers shipping with 
GL_EXT_texture_compression_s3tc disabled. This is basically 
unacceptable, as pretty much every game that's shipped in the last 10 
years needs it.

The bug report has several workarounds for this, depending on what the 
root cause might be (if your drivers just have s3tc support disabled, 
there's a package called "driconf" that can enable it, apparently).

    http://bugzilla.icculus.org/show_bug.cgi?id=4825

...but it looks like, today at least, Intel GPUs are failing in the 
shaders. I'm happy to talk to the driver developers and see if there's 
some way to help, but possibly the Humble Bundle's existence will simply 
result in easy driver fixes, now that they have Braid as a test case.

(Fwiw: Braid is a 2D platformer that needs Shader Model 3 hardware. 
Don't be fooled by the sprite-looking graphics, there's a lot going on 
there.)

--ryan.



More information about the braid mailing list