On 07/31/2012 03:24 PM, Eric Anholt wrote: > --- > src/mesa/main/bufferobj.c | 3 ++- > src/mesa/main/get.c | 16 +++++++++++----- > src/mesa/main/teximage.c | 6 ++++-- > 3 files changed, 17 insertions(+), 8 deletions(-) > > diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c > index 5fdf52e..7216307 100644 > --- a/src/mesa/main/bufferobj.c > +++ b/src/mesa/main/bufferobj.c > @@ -89,7 +89,8 @@ get_buffer_target(struct gl_context *ctx, GLenum target) > break; > #endif > case GL_TEXTURE_BUFFER: > - if (ctx->Extensions.ARB_texture_buffer_object) { > + if (ctx->Extensions.ARB_texture_buffer_object || > + (ctx->API == API_OPENGL && ctx->Version >= 31)) {
I think you want API_OPENGL_CORE here. API_OPENGL is legacy/compatibility GL. > return &ctx->Texture.BufferObject; > } > break; > diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c > index 7ffa3c1..a1e6879 100644 > --- a/src/mesa/main/get.c > +++ b/src/mesa/main/get.c > @@ -284,6 +284,12 @@ static const int extra_GLSL_130[] = { > EXTRA_END > }; > > +static const int extra_texture_buffer_object[] = { > + EXTRA_VERSION_31, > + EXT(ARB_texture_buffer_object), > + EXTRA_END > +}; > + > static const int extra_ARB_sampler_objects[] = { > EXT(ARB_sampler_objects), > EXTRA_END > @@ -1292,15 +1298,15 @@ static const struct value_desc values[] = { > > /* GL_ARB_texture_buffer_object */ > { GL_MAX_TEXTURE_BUFFER_SIZE_ARB, CONTEXT_INT(Const.MaxTextureBufferSize), > - extra_ARB_texture_buffer_object }, > + extra_texture_buffer_object }, > { GL_TEXTURE_BINDING_BUFFER_ARB, LOC_CUSTOM, TYPE_INT, 0, > - extra_ARB_texture_buffer_object }, > + extra_texture_buffer_object }, > { GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB, LOC_CUSTOM, TYPE_INT, > - TEXTURE_BUFFER_INDEX, extra_ARB_texture_buffer_object }, > + TEXTURE_BUFFER_INDEX, extra_texture_buffer_object }, > { GL_TEXTURE_BUFFER_FORMAT_ARB, LOC_CUSTOM, TYPE_INT, 0, > - extra_ARB_texture_buffer_object }, > + extra_texture_buffer_object }, > { GL_TEXTURE_BUFFER_ARB, LOC_CUSTOM, TYPE_INT, 0, > - extra_ARB_texture_buffer_object }, > + extra_texture_buffer_object }, > > /* GL_ARB_sampler_objects / GL 3.3 */ > { GL_SAMPLER_BINDING, > diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c > index ef64a79..e70470d 100644 > --- a/src/mesa/main/teximage.c > +++ b/src/mesa/main/teximage.c > @@ -774,7 +774,8 @@ _mesa_select_tex_object(struct gl_context *ctx, > case GL_PROXY_TEXTURE_2D_ARRAY_EXT: > return arrayTex ? ctx->Texture.ProxyTex[TEXTURE_2D_ARRAY_INDEX] : > NULL; > case GL_TEXTURE_BUFFER: > - return ctx->Extensions.ARB_texture_buffer_object > + return (ctx->Extensions.ARB_texture_buffer_object || > + (ctx->API == API_OPENGL && ctx->Version >= 31)) Ditto. You want API_OPENGL_CORE > ? texUnit->CurrentTex[TEXTURE_BUFFER_INDEX] : NULL; > case GL_TEXTURE_EXTERNAL_OES: > return ctx->Extensions.OES_EGL_image_external > @@ -3881,7 +3882,8 @@ _mesa_TexBuffer(GLenum target, GLenum internalFormat, > GLuint buffer) > GET_CURRENT_CONTEXT(ctx); > ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); > > - if (!ctx->Extensions.ARB_texture_buffer_object) { > + if (!(ctx->Extensions.ARB_texture_buffer_object || > + (ctx->API == API_OPENGL && ctx->Version >= 31))) { And again. > _mesa_error(ctx, GL_INVALID_OPERATION, "glTexBuffer"); > return; > } > With those changes, you can add a: Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev