On Mon, Sep 18, 2017 at 4:57 PM, Nicolai Hähnle <nhaeh...@gmail.com> wrote: > From: Nicolai Hähnle <nicolai.haeh...@amd.com> > > Like for cube map (array) gather, we need to round to nearest on <= VI. > > Fixes tests in dEQP-GLES3.functional.shaders.texture_functions.texture.* > > Cc: mesa-sta...@lists.freedesktop.org > --- > src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c > b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c > index d0969a7dd02..54832fc0ee4 100644 > --- a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c > +++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c > @@ -1471,27 +1471,37 @@ static void tex_fetch_args( > for (chan = num_src_deriv_channels; > chan < num_dst_deriv_channels; chan++) > derivs[param * num_dst_deriv_channels + chan] > = > bld_base->base.zero; > } > } > > if (target == TGSI_TEXTURE_CUBE || > target == TGSI_TEXTURE_CUBE_ARRAY || > target == TGSI_TEXTURE_SHADOWCUBE || > - target == TGSI_TEXTURE_SHADOWCUBE_ARRAY) > + target == TGSI_TEXTURE_SHADOWCUBE_ARRAY) { > ac_prepare_cube_coords(&ctx->ac, > opcode == TGSI_OPCODE_TXD, > target == TGSI_TEXTURE_CUBE_ARRAY || > target == > TGSI_TEXTURE_SHADOWCUBE_ARRAY, > opcode == TGSI_OPCODE_LODQ, > coords, derivs); > + } else if (tgsi_is_array_sampler(target) && > + opcode != TGSI_OPCODE_TXF && > + opcode != TGSI_OPCODE_TXF_LZ && > + ctx->screen->b.chip_class <= VI) { > + unsigned array_coord = target == TGSI_TEXTURE_1D ||
TGSI_TEXTURE_1D is not an array target. Marek > + target == TGSI_TEXTURE_1D_ARRAY ? 1 : > 2; > + coords[array_coord] = > + ac_build_intrinsic(&ctx->ac, "llvm.rint.f32", > ctx->f32, > + &coords[array_coord], 1, 0); > + } > > if (opcode == TGSI_OPCODE_TXD) > for (int i = 0; i < num_deriv_channels * 2; i++) > address[count++] = derivs[i]; > > /* Pack texture coordinates */ > address[count++] = coords[0]; > if (num_coords > 1) > address[count++] = coords[1]; > if (num_coords > 2) > -- > 2.11.0 > > _______________________________________________ > mesa-stable mailing list > mesa-sta...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-stable _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev