diff options
author | Eric Anholt <eric@anholt.net> | 2013-02-04 10:05:51 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2013-05-28 12:40:15 -0700 |
commit | 4e8eafd8f44d763a7d079abea89388fb738bb723 (patch) | |
tree | 12cda443e0932f71fdd03f89c0ff3311971c1545 /src | |
parent | 5c85e1cf554803e61bfb30f2a8683422a3ead0e4 (diff) |
intel: Reduce intel_renderbuffer_tile_offsets to a thin wrapper.
Reviewed-and-tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Paul Berry <stereotype441@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_fbo.c | 26 | ||||
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_fbo.h | 9 |
2 files changed, 7 insertions, 28 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index 69f862930d6..34f31fb0a88 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -535,32 +535,6 @@ intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb) } /** - * Rendering to tiled buffers requires that the base address of the - * buffer be aligned to a page boundary. We generally render to - * textures by pointing the surface at the mipmap image level, which - * may not be aligned to a tile boundary. - * - * This function returns an appropriately-aligned base offset - * according to the tiling restrictions, plus any required x/y offset - * from there. - */ -uint32_t -intel_renderbuffer_tile_offsets(struct intel_renderbuffer *irb, - uint32_t *tile_x, - uint32_t *tile_y) -{ - struct intel_region *region = irb->mt->region; - uint32_t mask_x, mask_y; - - intel_region_get_tile_masks(region, &mask_x, &mask_y, false); - - *tile_x = irb->draw_x & mask_x; - *tile_y = irb->draw_y & mask_y; - return intel_region_get_aligned_offset(region, irb->draw_x & ~mask_x, - irb->draw_y & ~mask_y, false); -} - -/** * Called by glFramebufferTexture[123]DEXT() (and other places) to * prepare for rendering into texture memory. This might be called * many times to choose different texture levels, cube faces, etc diff --git a/src/mesa/drivers/dri/intel/intel_fbo.h b/src/mesa/drivers/dri/intel/intel_fbo.h index aa52b979f88..5d6dc7ef7df 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.h +++ b/src/mesa/drivers/dri/intel/intel_fbo.h @@ -33,6 +33,7 @@ #include "main/formats.h" #include "main/macros.h" #include "intel_context.h" +#include "intel_mipmap_tree.h" #include "intel_screen.h" #ifdef __cplusplus @@ -148,10 +149,14 @@ intel_flip_renderbuffers(struct gl_framebuffer *fb); void intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb); -uint32_t +static inline uint32_t intel_renderbuffer_tile_offsets(struct intel_renderbuffer *irb, uint32_t *tile_x, - uint32_t *tile_y); + uint32_t *tile_y) +{ + return intel_miptree_get_tile_offsets(irb->mt, irb->mt_level, irb->mt_layer, + tile_x, tile_y); +} struct intel_region* intel_get_rb_region(struct gl_framebuffer *fb, GLuint attIndex); |