meta: Only bind the sampler in one place
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 10 Nov 2015 23:16:33 +0000 (15:16 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 11 Jan 2016 23:38:04 +0000 (15:38 -0800)
All of the calls after the first _mesa_bind_sampler call are DSA style
calls that don't depend on the current binding.

I kept this change separate and last because it is one of the few in the
series that is not a candidate for the stable branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/drivers/common/meta.c
src/mesa/drivers/common/meta_generate_mipmap.c

index 8f93b25..b026e47 100644 (file)
@@ -3129,7 +3129,6 @@ decompress_texture_image(struct gl_context *ctx,
          return true;
       }
 
-      _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, decompress->samp_obj);
       /* nearest filtering */
       _mesa_set_sampler_filters(ctx, decompress->samp_obj, GL_NEAREST, GL_NEAREST);
 
@@ -3137,11 +3136,10 @@ decompress_texture_image(struct gl_context *ctx,
       if (ctx->Extensions.EXT_texture_sRGB_decode) {
          _mesa_set_sampler_srgb_decode(ctx, decompress->samp_obj, GL_SKIP_DECODE_EXT);
       }
-
-   } else {
-      _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, decompress->samp_obj);
    }
 
+   _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, decompress->samp_obj);
+
    /* Silence valgrind warnings about reading uninitialized stack. */
    memset(verts, 0, sizeof(verts));
 
index aa81258..7beae5f 100644 (file)
@@ -234,8 +234,6 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target,
          return;
       }
 
-      _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, mipmap->samp_obj);
-
       _mesa_set_sampler_filters(ctx, mipmap->samp_obj, GL_LINEAR_MIPMAP_LINEAR,
                                 GL_LINEAR);
       _mesa_set_sampler_wrap(ctx, mipmap->samp_obj, GL_CLAMP_TO_EDGE,
@@ -248,10 +246,10 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target,
       if (ctx->Extensions.EXT_texture_sRGB_decode) {
          _mesa_set_sampler_srgb_decode(ctx, mipmap->samp_obj, GL_SKIP_DECODE_EXT);
       }
-   } else {
-      _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, mipmap->samp_obj);
    }
 
+   _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, mipmap->samp_obj);
+
    assert(mipmap->FBO != 0);
    _mesa_BindFramebuffer(GL_FRAMEBUFFER_EXT, mipmap->FBO);