softpipe: Offset is not to be applied to the layer parameter of array texture fetches.
authorOlivier Galibert <galibert@pobox.com>
Tue, 19 Jun 2012 18:51:18 +0000 (20:51 +0200)
committerBrian Paul <brianp@vmware.com>
Tue, 19 Jun 2012 20:40:44 +0000 (14:40 -0600)
Signed-off-by: Olivier Galibert <galibert@pobox.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/drivers/softpipe/sp_tex_sample.c

index d4c01759dbe3425c211f85c1e3c62877738fe74a..f29a6c75fe77cba9ead43b5411defea005c040a2 100644 (file)
@@ -2693,7 +2693,7 @@ sample_get_texels(struct tgsi_sampler *tgsi_sampler,
    case PIPE_TEXTURE_1D_ARRAY:
       for (j = 0; j < TGSI_QUAD_SIZE; j++) {
          int x = CLAMP(v_i[j] + offset[0], 0, width - 1);
-         int y = CLAMP(v_j[j] + offset[1], 0, layers - 1);
+         int y = CLAMP(v_j[j], 0, layers - 1);
         tx = get_texel_1d_array(samp, addr, x, y);
         for (c = 0; c < 4; c++) {
            rgba[c][j] = tx[c];
@@ -2715,7 +2715,7 @@ sample_get_texels(struct tgsi_sampler *tgsi_sampler,
       for (j = 0; j < TGSI_QUAD_SIZE; j++) {
          int x = CLAMP(v_i[j] + offset[0], 0, width - 1);
          int y = CLAMP(v_j[j] + offset[1], 0, height - 1);
-         int layer = CLAMP(v_k[j] + offset[2], 0, layers - 1);
+         int layer = CLAMP(v_k[j], 0, layers - 1);
         tx = get_texel_2d_array(samp, addr, x, y, layer);
         for (c = 0; c < 4; c++) {
            rgba[c][j] = tx[c];