On Sat, Dec 15, 2012 at 4:38 AM, Dave Airlie <[email protected]> wrote: > This adds the extensions + the tex buffer support for checking > the formats. > > There is a piglit test enhancement sent to that list. > > Signed-off-by: Dave Airlie <[email protected]> > --- > src/mesa/main/extensions.c | 1 + > src/mesa/main/mtypes.h | 1 + > src/mesa/main/teximage.c | 13 +++++++++++++ > 3 files changed, 15 insertions(+) > > diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c > index e86e436..98711b3 100644 > --- a/src/mesa/main/extensions.c > +++ b/src/mesa/main/extensions.c > @@ -127,6 +127,7 @@ static const struct extension extension_table[] = { > { "GL_ARB_sync", o(ARB_sync), > GL, 2003 }, > { "GL_ARB_texture_border_clamp", > o(ARB_texture_border_clamp), GLL, 2000 }, > { "GL_ARB_texture_buffer_object", > o(ARB_texture_buffer_object), GLC, 2008 }, > + { "GL_ARB_texture_buffer_object_rgb32", > o(ARB_texture_buffer_object_rgb32), GLC, 2009 }, > { "GL_ARB_texture_compression", o(dummy_true), > GLL, 2000 }, > { "GL_ARB_texture_compression_rgtc", > o(ARB_texture_compression_rgtc), GL, 2004 }, > { "GL_ARB_texture_cube_map", o(ARB_texture_cube_map), > GLL, 1999 }, > diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h > index b59498f..67eaadd 100644 > --- a/src/mesa/main/mtypes.h > +++ b/src/mesa/main/mtypes.h > @@ -2989,6 +2989,7 @@ struct gl_extensions > GLboolean ARB_sync; > GLboolean ARB_texture_border_clamp; > GLboolean ARB_texture_buffer_object; > + GLboolean ARB_texture_buffer_object_rgb32; > GLboolean ARB_texture_compression_rgtc; > GLboolean ARB_texture_cube_map; > GLboolean ARB_texture_cube_map_array; > diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c > index 47c4ed2..7a0d944 100644 > --- a/src/mesa/main/teximage.c > +++ b/src/mesa/main/teximage.c > @@ -3848,6 +3848,13 @@ get_texbuffer_format(const struct gl_context *ctx, > GLenum internalFormat) > case GL_R32UI: > return MESA_FORMAT_R_UINT32; > > + case GL_RGB32F: > + return MESA_FORMAT_RGB_FLOAT32; > + case GL_RGB32UI: > + return MESA_FORMAT_RGB_UINT32; > + case GL_RGB32I: > + return MESA_FORMAT_RGB_INT32; > + > default: > return MESA_FORMAT_NONE; > } > @@ -3879,6 +3886,12 @@ validate_texbuffer_format(const struct gl_context > *ctx, GLenum internalFormat) > if (base_format == GL_R || base_format == GL_RG) > return MESA_FORMAT_NONE; > } > + > + if (!ctx->Extensions.ARB_texture_buffer_object_rgb32) {
This should also check whether ctx->API is API_OPENGL_CORE. Marek > + GLenum base_format = _mesa_get_format_base_format(format); > + if (base_format == GL_RGB) > + return MESA_FORMAT_NONE; > + } > return format; > } > > -- > 1.8.0.1 > > _______________________________________________ > mesa-dev mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
