From: Eric Anholt Date: Tue, 27 Mar 2012 16:51:24 +0000 (-0700) Subject: mesa: Handle updating texture state for buffer textures. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dcf42dbd066fe633c28afa36820da9e9430038df;p=mesa.git mesa: Handle updating texture state for buffer textures. We have to skip some work that wants to look at texture images, since buffer textures don't have any of that complexity. Reviewed-by: Dave Airlie Reviewed-by: Brian Paul Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 88dc3b195e7..d7e631efddb 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -449,6 +449,14 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, t->_BaseComplete = GL_TRUE; t->_MipmapComplete = GL_TRUE; + if (t->Target == GL_TEXTURE_BUFFER) { + /* Buffer textures are always considered complete. The obvious case where + * they would be incomplete (no BO attached) is actually specced to be + * undefined rendering results. + */ + return; + } + /* Detect cases where the application set the base level to an invalid * value. */ diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c index ee778ffd047..8ca9092ce01 100644 --- a/src/mesa/main/texstate.c +++ b/src/mesa/main/texstate.c @@ -390,6 +390,10 @@ update_tex_combine(struct gl_context *ctx, struct gl_texture_unit *texUnit) { struct gl_tex_env_combine_state *combine; + /* No combiners will apply to this. */ + if (texUnit->_Current->Target == GL_TEXTURE_BUFFER) + return; + /* Set the texUnit->_CurrentCombine field to point to the user's combiner * state, or the combiner state which is derived from traditional texenv * mode.