Module: Mesa Branch: master Commit: ecc31d032e5fd2af208bb7764958ab4a16e51147 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ecc31d032e5fd2af208bb7764958ab4a16e51147
Author: Paul Gofman <[email protected]> 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 <[email protected]> Signed-off-by: Marek Olšák <[email protected]> --- 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; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
