From 26097c4855b97ee6e362c19df11d51fb7fd42192 Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Mon, 12 Nov 2012 20:35:04 +0100 Subject: gallivm,draw,llvmpipe: use base ptr + mip offsets instead of mip pointers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This might have a slight overhead but handling mip offsets more like the width (and image) strides should make some things easier (mip level being just part of the offset calculation) later. Reviewed-by: Brian Paul Reviewed-by: José Fonseca --- src/gallium/auxiliary/draw/draw_llvm.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/gallium/auxiliary/draw/draw_llvm.h') diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h index 9a291a4..d7a630e 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.h +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -47,9 +47,10 @@ struct draw_jit_texture uint32_t depth; uint32_t first_level; uint32_t last_level; + const void *base; uint32_t row_stride[PIPE_MAX_TEXTURE_LEVELS]; uint32_t img_stride[PIPE_MAX_TEXTURE_LEVELS]; - const void *data[PIPE_MAX_TEXTURE_LEVELS]; + uint32_t mip_offsets[PIPE_MAX_TEXTURE_LEVELS]; float min_lod; float max_lod; float lod_bias; @@ -62,9 +63,10 @@ enum { DRAW_JIT_TEXTURE_DEPTH, DRAW_JIT_TEXTURE_FIRST_LEVEL, DRAW_JIT_TEXTURE_LAST_LEVEL, + DRAW_JIT_TEXTURE_BASE, DRAW_JIT_TEXTURE_ROW_STRIDE, DRAW_JIT_TEXTURE_IMG_STRIDE, - DRAW_JIT_TEXTURE_DATA, + DRAW_JIT_TEXTURE_MIP_OFFSETS, DRAW_JIT_TEXTURE_MIN_LOD, DRAW_JIT_TEXTURE_MAX_LOD, DRAW_JIT_TEXTURE_LOD_BIAS, @@ -293,8 +295,9 @@ draw_llvm_set_mapped_texture(struct draw_context *draw, unsigned sampler_idx, uint32_t width, uint32_t height, uint32_t depth, uint32_t first_level, uint32_t last_level, + const void *base_ptr, uint32_t row_stride[PIPE_MAX_TEXTURE_LEVELS], uint32_t img_stride[PIPE_MAX_TEXTURE_LEVELS], - const void *data[PIPE_MAX_TEXTURE_LEVELS]); + uint32_t mip_offsets[PIPE_MAX_TEXTURE_LEVELS]); #endif -- cgit v1.1