Currently minlevel set with glTextureView() is ignored for
mipmap generation and original texture's first layer is used as
the source layer in glGenerateMipmap().

Signed-off-by: Paul Gofman <gofm...@gmail.com>
---
    Spotted while debugging Wine d3d11 unit test failures with Nouveau and 
Intel drivers.

 src/mesa/drivers/dri/i965/brw_generate_mipmap.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_generate_mipmap.c 
b/src/mesa/drivers/dri/i965/brw_generate_mipmap.c
index 4125ae6e11c..6313b070a11 100644
--- a/src/mesa/drivers/dri/i965/brw_generate_mipmap.c
+++ b/src/mesa/drivers/dri/i965/brw_generate_mipmap.c
@@ -41,9 +41,12 @@ brw_generate_mipmap(struct gl_context *ctx, GLenum target,
    struct brw_context *brw = brw_context(ctx);
    struct gen_device_info *devinfo = &brw->screen->devinfo;
    struct intel_texture_object *intel_obj = intel_texture_object(tex_obj);
-   const unsigned base_level = tex_obj->BaseLevel;
+   unsigned base_level = tex_obj->BaseLevel;
    unsigned last_level, first_layer, last_layer;
 
+   if (tex_obj->Immutable)
+      base_level += tex_obj->MinLevel;
+
    /* Blorp doesn't handle combined depth/stencil surfaces on Gen4-5 yet. */
    if (devinfo->gen <= 5 &&
        (tex_obj->Image[0][base_level]->_BaseFormat == GL_DEPTH_COMPONENT ||
-- 
2.23.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to