Need to adjust coordinates since the shader receives the array index as depth in z, but the TEX instruction expects it to be the second coordinate for a 1D array texture. This fixes fbo-generatemipmap-array.
Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.2" <[email protected]> --- src/gallium/drivers/nouveau/nv50/nv50_surface.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gallium/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c index 8addefe..23613d8 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c @@ -698,6 +698,12 @@ nv50_blitter_make_fp(struct pipe_context *pipe, tc = ureg_DECL_fs_input( ureg, TGSI_SEMANTIC_GENERIC, 0, TGSI_INTERPOLATE_LINEAR); + if (ptarg == PIPE_TEXTURE_1D_ARRAY) { + /* Adjust coordinates. Depth is in z, but TEX expects it to be in y. */ + tc = ureg_swizzle(tc, TGSI_SWIZZLE_X, TGSI_SWIZZLE_Z, + TGSI_SWIZZLE_Z, TGSI_SWIZZLE_Z); + } + data = ureg_DECL_temporary(ureg); if (tex_s) { -- 1.8.5.5 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
