state_tracker: Handle texture view min level in st_generate_mipmap()
Signed-off-by: Paul Gofman <gofmanp@gmail.com> Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user