Mesa (master): state_tracker: Handle texture view min level in st_generate_mipmap()

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Nov 4 18:25:10 UTC 2019


Module: Mesa
Branch: master
Commit: ecc31d032e5fd2af208bb7764958ab4a16e51147
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ecc31d032e5fd2af208bb7764958ab4a16e51147

Author: Paul Gofman <gofmanp at gmail.com>
Date:   Mon Nov  4 15:31:10 2019 +0300

state_tracker: Handle texture view min level in st_generate_mipmap()

Signed-off-by: Paul Gofman <gofmanp at gmail.com>
Signed-off-by: Marek Olšák <marek.olsak at amd.com>

---

 src/mesa/state_tracker/st_gen_mipmap.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_gen_mipmap.c b/src/mesa/state_tracker/st_gen_mipmap.c
index b71a8ee57bb..9c7d955a45b 100644
--- a/src/mesa/state_tracker/st_gen_mipmap.c
+++ b/src/mesa/state_tracker/st_gen_mipmap.c
@@ -56,13 +56,16 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target,
    struct st_context *st = st_context(ctx);
    struct st_texture_object *stObj = st_texture_object(texObj);
    struct pipe_resource *pt = st_get_texobj_resource(texObj);
-   const uint baseLevel = texObj->BaseLevel;
+   uint baseLevel = texObj->BaseLevel;
    enum pipe_format format;
    uint lastLevel, first_layer, last_layer;
 
    if (!pt)
       return;
 
+   if (texObj->Immutable)
+      baseLevel += texObj->MinLevel;
+
    /* not sure if this ultimately actually should work,
       but we're not supporting multisampled textures yet. */
    assert(pt->nr_samples < 2);
@@ -70,6 +73,9 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target,
    /* find expected last mipmap level to generate*/
    lastLevel = _mesa_compute_num_levels(ctx, texObj, target) - 1;
 
+   if (texObj->Immutable)
+      lastLevel += texObj->MinLevel;
+
    if (lastLevel == 0)
       return;
 




More information about the mesa-commit mailing list