For GLSL programs, enabledTargets can have more than one bit set. For example, a shader that uses sampler2D and samplerCube uniforms will have both TEXTURE_2D_BIT and TEXTURE_CUBE_BIT set.
The code that sets _ReallyEnabled already handles this, selecting the "highest priority" texture target. We should simply use that. Fixes new Piglit test incomplete-textures-of-multiple-types. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62698 Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> Cc: Brian Paul <bri...@vmware.com> --- src/mesa/main/texstate.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) Brian, Does this seem right to you? Thanks! --Ken diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c index 741985c..afff013 100644 --- a/src/mesa/main/texstate.c +++ b/src/mesa/main/texstate.c @@ -594,8 +594,8 @@ update_texture_state( struct gl_context *ctx ) /* Look for the highest priority texture target that's enabled (or used * by the vert/frag shaders) and "complete". That's the one we'll use - * for texturing. If we're using vert/frag program we're guaranteed - * that bitcount(enabledBits) <= 1. + * for texturing. + * * Note that the TEXTURE_x_INDEX values are in high to low priority. */ for (texIndex = 0; texIndex < NUM_TEXTURE_TARGETS; texIndex++) { @@ -624,8 +624,6 @@ update_texture_state( struct gl_context *ctx ) struct gl_texture_object *texObj; gl_texture_index texTarget; - assert(_mesa_bitcount(enabledTargets) == 1); - texTarget = (gl_texture_index) (ffs(enabledTargets) - 1); texObj = _mesa_get_fallback_texture(ctx, texTarget); -- 1.8.3.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev