gallium: support for array textures and related changes
[mesa.git] / src / gallium / drivers / softpipe / sp_tex_tile_cache.h
index 12ae7ba12d62a91928266913ff6a94a14bc81214..c2f2a2a2de5570d30c4d91d0fc580e3bc352da32 100644 (file)
@@ -44,6 +44,7 @@ struct softpipe_tex_tile_cache;
 
 /* If we need to support > 4096, just expand this to be a 64 bit
  * union, or consider tiling in Z as well.
+ * XXX or unify z/face?
  */
 union tex_tile_address {
    struct {
@@ -74,7 +75,7 @@ struct softpipe_tex_tile_cache
    struct pipe_transfer *transfer;
    void *transfer_map;
 
-   struct pipe_texture *texture;  /**< if caching a texture */
+   struct pipe_resource *texture;  /**< if caching a texture */
    unsigned timestamp;
 
    struct softpipe_tex_cached_tile entries[NUM_ENTRIES];
@@ -90,6 +91,8 @@ struct softpipe_tex_tile_cache
    unsigned format;
 
    struct softpipe_tex_cached_tile *last_tile;  /**< most recently retrieved tile */
+
+   float swz_border_color[4]; /**< swizzled border color */
 };
 
 
@@ -124,10 +127,10 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
 
 static INLINE union tex_tile_address
 tex_tile_address( unsigned x,
-                 unsigned y,
-                 unsigned z,
-                 unsigned face,
-                 unsigned level )
+                  unsigned y,
+                  unsigned z,
+                  unsigned face,
+                  unsigned level )
 {
    union tex_tile_address addr;
 
@@ -137,7 +140,7 @@ tex_tile_address( unsigned x,
    addr.bits.z = z;
    addr.bits.face = face;
    addr.bits.level = level;
-      
+
    return addr;
 }
 
@@ -154,7 +157,9 @@ sp_get_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
 }
 
 
-
+const float *
+sp_tex_tile_cache_border_color(struct softpipe_tex_tile_cache *tc,
+                               const float border_color[4]);
 
 
 #endif /* SP_TEX_TILE_CACHE_H */