llvmpipe: Start hiding llvmpipe_cached_tile.
authorJosé Fonseca <jfonseca@vmware.com>
Fri, 21 Aug 2009 07:19:00 +0000 (08:19 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sat, 29 Aug 2009 08:21:38 +0000 (09:21 +0100)
src/gallium/drivers/llvmpipe/lp_quad_blend.c
src/gallium/drivers/llvmpipe/lp_tile_cache.c
src/gallium/drivers/llvmpipe/lp_tile_cache.h

index 47b3cd9..ba12322 100644 (file)
@@ -66,16 +66,15 @@ blend_run(struct quad_stage *qs,
       unsigned y0 = quads[0]->input.y0;
       uint8_t ALIGN16_ATTRIB src[NUM_CHANNELS][TILE_VECTOR_HEIGHT*TILE_VECTOR_WIDTH];
       uint8_t ALIGN16_ATTRIB mask[16];
+      uint8_t *tile = lp_get_cached_tile(llvmpipe->cbuf_cache[cbuf], x0, y0);
       uint8_t *dst;
-      struct llvmpipe_cached_tile *tile
-         = lp_get_cached_tile(llvmpipe->cbuf_cache[cbuf], x0, y0);
 
       assert(nr * QUAD_SIZE == TILE_VECTOR_HEIGHT * TILE_VECTOR_WIDTH);
 
       assert(x0 % TILE_VECTOR_WIDTH == 0);
       assert(y0 % TILE_VECTOR_HEIGHT == 0);
 
-      dst = &TILE_PIXEL(tile->data.color, x0 & (TILE_SIZE-1), y0 & (TILE_SIZE-1), 0);
+      dst = &TILE_PIXEL(tile, x0 & (TILE_SIZE-1), y0 & (TILE_SIZE-1), 0);
 
       for (q = 0; q < nr; ++q) {
          struct quad_header *quad = quads[q];
index c280cfe..2aa3d09 100644 (file)
@@ -330,7 +330,7 @@ lp_flush_tile_cache(struct llvmpipe_tile_cache *tc)
  * Get a tile from the cache.
  * \param x, y  position of tile, in pixels
  */
-struct llvmpipe_cached_tile *
+void *
 lp_find_cached_tile(struct llvmpipe_tile_cache *tc, 
                     union tile_address addr )
 {
@@ -368,7 +368,8 @@ lp_find_cached_tile(struct llvmpipe_tile_cache *tc,
    }
 
    tc->last_tile = tile;
-   return tile;
+
+   return tile->data.color;
 }
 
 
index 147a60b..f0c3fee 100644 (file)
@@ -127,7 +127,7 @@ extern void
 lp_tile_cache_clear(struct llvmpipe_tile_cache *tc, const float *rgba,
                     uint clearValue);
 
-extern struct llvmpipe_cached_tile *
+extern void *
 lp_find_cached_tile(struct llvmpipe_tile_cache *tc, 
                     union tile_address addr );
 
@@ -152,14 +152,14 @@ tile_address( unsigned x,
 
 /* Quickly retrieve tile if it matches last lookup.
  */
-static INLINE struct llvmpipe_cached_tile *
+static INLINE void *
 lp_get_cached_tile(struct llvmpipe_tile_cache *tc, 
                    int x, int y )
 {
    union tile_address addr = tile_address( x, y, 0, 0, 0 );
 
    if (tc->last_tile->addr.value == addr.value)
-      return tc->last_tile;
+      return &tc->last_tile->data.color;
 
    return lp_find_cached_tile( tc, addr );
 }