nil: Add a nil_image_level_extent_px() helper

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
Faith Ekstrand
2023-08-01 18:25:55 -05:00
committed by Marge Bot
parent 113d3447bb
commit 866fc8b3f4
2 changed files with 13 additions and 3 deletions

View File

@@ -222,11 +222,19 @@ nil_extent4d_B_to_tl(struct nil_extent4d extent_B,
return nil_extent4d_div_round_up(extent_B, nil_tiling_extent_B(tiling));
}
struct nil_extent4d
nil_image_level_extent_px(const struct nil_image *image, uint32_t level)
{
assert(level == 0 || image->sample_layout == NIL_SAMPLE_LAYOUT_1X1);
return nil_minify_extent4d(image->extent_px, level);
}
struct nil_extent4d
nil_image_level_extent_sa(const struct nil_image *image, uint32_t level)
{
const struct nil_extent4d level_extent_px =
nil_minify_extent4d(image->extent_px, level);
nil_image_level_extent_px(image, level);
return nil_extent4d_px_to_sa(level_extent_px, image->sample_layout);
}
@@ -235,7 +243,7 @@ static struct nil_extent4d
image_level_extent_B(const struct nil_image *image, uint32_t level)
{
const struct nil_extent4d level_extent_px =
nil_minify_extent4d(image->extent_px, level);
nil_image_level_extent_px(image, level);
const struct nil_extent4d level_extent_el =
nil_extent4d_px_to_el(level_extent_px, image->format,
image->sample_layout);
@@ -488,7 +496,7 @@ nil_image_for_level(const struct nil_image *image_in,
assert(level < image_in->num_levels);
const struct nil_extent4d lvl_extent_px =
nil_minify_extent4d(image_in->extent_px, level);
nil_image_level_extent_px(image_in, level);
const struct nil_image_level lvl = image_in->levels[level];
const uint32_t align_B = nil_tiling_size_B(lvl.tiling);

View File

@@ -196,6 +196,8 @@ nil_image_level_layer_offset_B(const struct nil_image *image,
return image->levels[level].offset_B + (layer * image->array_stride_B);
}
struct nil_extent4d nil_image_level_extent_px(const struct nil_image *image,
uint32_t level);
struct nil_extent4d nil_image_level_extent_sa(const struct nil_image *image,
uint32_t level);
uint64_t nil_image_level_size_B(const struct nil_image *image,