From 32c79cdaccec9aaa97528c6a51312bcc9078eb35 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 13 Jul 2017 20:43:57 -0700 Subject: [PATCH] meta: Actually initialize ImmutableLevels to 1. Otherwise, ImmutableLevels is 0, which is an illegal value. Later, _mesa_meta_setup_sampler will use _mesa_texture_parameteriv to set texObj->MaxLevel = CLAMP(params[0], texObj->BaseLevel, texObj->ImmutableLevels - 1); which turns into a completely bogus CLAMP(value, 0, -1)...where the upper bound is smaller than the lower bound. This ends up being -1 today due to the way CLAMP is implemented, which is a bogus MaxLevel. Reviewed-by: Ian Romanick --- src/mesa/drivers/common/meta_tex_subimage.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mesa/drivers/common/meta_tex_subimage.c b/src/mesa/drivers/common/meta_tex_subimage.c index b8c422bfb72..e0284a3f07d 100644 --- a/src/mesa/drivers/common/meta_tex_subimage.c +++ b/src/mesa/drivers/common/meta_tex_subimage.c @@ -136,6 +136,7 @@ create_texture_for_pbo(struct gl_context *ctx, _mesa_initialize_texture_object(ctx, tex_obj, *tmp_tex, GL_TEXTURE_2D); /* This must be set after _mesa_initialize_texture_object, not before. */ tex_obj->Immutable = GL_TRUE; + tex_obj->ImmutableLevels = 1; /* This is required for interactions with ARB_texture_view. */ tex_obj->NumLayers = 1; -- 2.30.2