mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-24 12:30:19 +01:00
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>
This commit is contained in:
parent
5c85e1cf55
commit
4e8eafd8f4
2 changed files with 7 additions and 28 deletions
|
|
@ -534,32 +534,6 @@ intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb)
|
|||
irb->draw_y = dst_y;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue