mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-17 19:20:30 +01:00
radeon: add texture helper function
This commit is contained in:
parent
8014b5f068
commit
b078a613be
2 changed files with 29 additions and 0 deletions
|
|
@ -81,6 +81,32 @@ static unsigned get_compressed_image_size(
|
|||
return rowStride * ((height + blockHeight - 1) / blockHeight);
|
||||
}
|
||||
|
||||
static unsigned is_pot(unsigned value)
|
||||
{
|
||||
unsigned m;
|
||||
|
||||
for (m = 1; m < value; m *= 2) {}
|
||||
|
||||
return value == m;
|
||||
}
|
||||
|
||||
unsigned get_texture_image_row_stride(radeonContextPtr rmesa, gl_format format, unsigned width)
|
||||
{
|
||||
if (_mesa_is_format_compressed(format)) {
|
||||
return get_aligned_compressed_row_stride(format, width, rmesa->texture_compressed_row_align);
|
||||
} else {
|
||||
unsigned row_align;
|
||||
|
||||
if (is_pot(width)) {
|
||||
row_align = rmesa->texture_row_align - 1;
|
||||
} else {
|
||||
row_align = rmesa->texture_rect_row_align - 1;
|
||||
}
|
||||
|
||||
return (_mesa_format_row_stride(format, width) + row_align) & ~row_align;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute sizes and fill in offset and blit information for the given
|
||||
* image (determined by \p face and \p level).
|
||||
|
|
|
|||
|
|
@ -89,4 +89,7 @@ void radeon_try_alloc_miptree(radeonContextPtr rmesa, radeonTexObj *t);
|
|||
GLuint radeon_miptree_image_offset(radeon_mipmap_tree *mt,
|
||||
GLuint face, GLuint level);
|
||||
uint32_t get_base_teximage_offset(radeonTexObj *texObj);
|
||||
|
||||
unsigned get_texture_image_row_stride(radeonContextPtr rmesa, gl_format format, unsigned width);
|
||||
|
||||
#endif /* __RADEON_MIPMAP_TREE_H_ */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue