[Mesa-dev] [PATCH] st/mesa: don't invoke st_finalize_texture & st_convert_sampler for TBOs

Marek Olšák maraeo at gmail.com
Tue Jun 20 20:04:37 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

This is a v2 of the previous patch (v1 didn't skip st_finalize_texture).
---
 src/mesa/state_tracker/st_cb_texture.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index 677e5c4..317bb53 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -2909,26 +2909,28 @@ st_TexParameter(struct gl_context *ctx,
 
 
 static GLuint64
 st_NewTextureHandle(struct gl_context *ctx, struct gl_texture_object *texObj,
                     struct gl_sampler_object *sampObj)
 {
    struct st_context *st = st_context(ctx);
    struct st_texture_object *stObj = st_texture_object(texObj);
    struct pipe_context *pipe = st->pipe;
    struct pipe_sampler_view *view;
-   struct pipe_sampler_state sampler;
+   struct pipe_sampler_state sampler = {0};
 
-   if (!st_finalize_texture(ctx, pipe, texObj, 0))
-      return 0;
+   if (texObj->Target != GL_TEXTURE_BUFFER) {
+      if (!st_finalize_texture(ctx, pipe, texObj, 0))
+         return 0;
 
-   st_convert_sampler(st, texObj, sampObj, &sampler);
+      st_convert_sampler(st, texObj, sampObj, &sampler);
+   }
 
    view = st_get_texture_sampler_view_from_stobj(st, stObj, sampObj, 0);
 
    return pipe->create_texture_handle(pipe, view, &sampler);
 }
 
 
 static void
 st_DeleteTextureHandle(struct gl_context *ctx, GLuint64 handle)
 {
-- 
2.7.4



More information about the mesa-dev mailing list