diff options
Diffstat (limited to 'src/gallium/drivers/cell/ppu/cell_texture.h')
-rw-r--r-- | src/gallium/drivers/cell/ppu/cell_texture.h | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/gallium/drivers/cell/ppu/cell_texture.h b/src/gallium/drivers/cell/ppu/cell_texture.h index 7018b0c9bf..3ffc0bfdb5 100644 --- a/src/gallium/drivers/cell/ppu/cell_texture.h +++ b/src/gallium/drivers/cell/ppu/cell_texture.h @@ -43,16 +43,23 @@ struct cell_texture unsigned long level_offset[CELL_MAX_TEXTURE_LEVELS]; unsigned long stride[CELL_MAX_TEXTURE_LEVELS]; - /* The data is held here: - */ + /** The tiled texture data is held in this buffer */ struct pipe_buffer *buffer; unsigned long buffer_size; - /** Texture data in tiled layout is held here */ - struct pipe_buffer *tiled_buffer[CELL_MAX_TEXTURE_LEVELS]; - /** Mapped, tiled texture data */ - void *tiled_mapped[CELL_MAX_TEXTURE_LEVELS]; - void *untiled_data[CELL_MAX_TEXTURE_LEVELS]; + /** The buffer above, mapped. This is the memory from which the + * SPUs will fetch texels. This texture data is in the tiled layout. + */ + ubyte *mapped; +}; + + +struct cell_transfer +{ + struct pipe_transfer base; + + unsigned long offset; + void *map; }; @@ -64,6 +71,13 @@ cell_texture(struct pipe_texture *pt) } +/** cast wrapper */ +static INLINE struct cell_transfer * +cell_transfer(struct pipe_transfer *pt) +{ + return (struct cell_transfer *) pt; +} + extern void cell_init_screen_texture_funcs(struct pipe_screen *screen); |