tgsi: add buffer texture to tgsi_util_get_texture_coord_dim()
authorChia-I Wu <olvaffe@gmail.com>
Thu, 23 May 2013 05:24:55 +0000 (13:24 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Mon, 27 May 2013 03:02:06 +0000 (11:02 +0800)
TGSI_TEXTURE_BUFFER is one-dimensional.  Assert that exec_tex() is never
called with TGSI_TEXTURE_BUFFER.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/auxiliary/tgsi/tgsi_util.c

index cb66a40f3796c140c3124017f7279a8447cbf2a3..4482c6bd12a6490eb193ce24b21f65a4b4ff3530 100644 (file)
@@ -1791,6 +1791,7 @@ exec_tex(struct tgsi_exec_machine *mach,
    fetch_texel_offsets(mach, inst, offsets);
 
    assert(modifier != TEX_MODIFIER_LEVEL_ZERO);
+   assert(inst->Texture.Texture != TGSI_TEXTURE_BUFFER);
 
    dim = tgsi_util_get_texture_coord_dim(inst->Texture.Texture, &shadow_ref);
 
index 862b79f173e9520de08cfb63c8b0c534d0e2a093..98c1e6e6e51683d567e0974b7c5217c5b0b4622d 100644 (file)
@@ -353,6 +353,7 @@ tgsi_util_get_texture_coord_dim(int tgsi_tex, int *shadow_or_sample)
     * Depending on the texture target, (src0.xyzw, src1.x) is interpreted
     * differently:
     *
+    *   (s, X, X, X, X),               for BUFFER
     *   (s, X, X, X, X),               for 1D
     *   (s, t, X, X, X),               for 2D, RECT
     *   (s, t, r, X, X),               for 3D, CUBE
@@ -373,6 +374,7 @@ tgsi_util_get_texture_coord_dim(int tgsi_tex, int *shadow_or_sample)
     *   (s, t, layer, sample, X),      for 2D_ARRAY_MSAA
     */
    switch (tgsi_tex) {
+   case TGSI_TEXTURE_BUFFER:
    case TGSI_TEXTURE_1D:
    case TGSI_TEXTURE_SHADOW1D:
       dim = 1;