radv: replace radv_get_layerCount by vk_image_subresource_layer_count()
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 2 May 2023 09:17:50 +0000 (11:17 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 3 May 2023 13:45:38 +0000 (13:45 +0000)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22794>

src/amd/vulkan/meta/radv_meta_clear.c
src/amd/vulkan/meta/radv_meta_decompress.c
src/amd/vulkan/meta/radv_meta_fast_clear.c
src/amd/vulkan/meta/radv_meta_fmask_expand.c
src/amd/vulkan/radv_image.c
src/amd/vulkan/radv_private.h

index c42badd..2d0ab57 100644 (file)
@@ -1234,7 +1234,7 @@ radv_clear_cmask(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image,
       unsigned slice_size = image->planes[0].surface.cmask_slice_size;
 
       offset += slice_size * range->baseArrayLayer;
-      size = slice_size * radv_get_layerCount(image, range);
+      size = slice_size * vk_image_subresource_layer_count(&image->vk, range);
    }
 
    return radv_fill_buffer(cmd_buffer, image, image->bindings[0].bo,
@@ -1253,7 +1253,7 @@ radv_clear_fmask(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image,
    assert(range->baseMipLevel == 0 && radv_get_levelCount(image, range) == 1);
 
    offset += slice_size * range->baseArrayLayer;
-   size = slice_size * radv_get_layerCount(image, range);
+   size = slice_size * vk_image_subresource_layer_count(&image->vk, range);
 
    return radv_fill_buffer(cmd_buffer, image, image->bindings[0].bo,
          radv_buffer_get_va(image->bindings[0].bo) + offset, size, value);
@@ -1264,7 +1264,7 @@ radv_clear_dcc(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image,
                const VkImageSubresourceRange *range, uint32_t value)
 {
    uint32_t level_count = radv_get_levelCount(image, range);
-   uint32_t layer_count = radv_get_layerCount(image, range);
+   uint32_t layer_count = vk_image_subresource_layer_count(&image->vk, range);
    uint32_t flush_bits = 0;
 
    /* Mark the image as being compressed. */
@@ -1296,7 +1296,7 @@ radv_clear_dcc(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image,
           */
          offset +=
             dcc_level->dcc_offset + dcc_level->dcc_slice_fast_clear_size * range->baseArrayLayer;
-         size = dcc_level->dcc_slice_fast_clear_size * radv_get_layerCount(image, range);
+         size = dcc_level->dcc_slice_fast_clear_size * vk_image_subresource_layer_count(&image->vk, range);
       }
 
       /* Do not clear this level if it can't be compressed. */
@@ -1319,7 +1319,7 @@ radv_clear_dcc_comp_to_single(struct radv_cmd_buffer *cmd_buffer,
 {
    struct radv_device *device = cmd_buffer->device;
    unsigned bytes_per_pixel = vk_format_get_blocksize(image->vk.format);
-   unsigned layer_count = radv_get_layerCount(image, range);
+   unsigned layer_count = vk_image_subresource_layer_count(&image->vk, range);
    struct radv_meta_saved_state saved_state;
    bool is_msaa = image->info.samples > 1;
    struct radv_image_view iview;
@@ -1460,7 +1460,7 @@ radv_clear_htile(struct radv_cmd_buffer *cmd_buffer, const struct radv_image *im
          }
       }
    } else {
-      unsigned layer_count = radv_get_layerCount(image, range);
+      unsigned layer_count = vk_image_subresource_layer_count(&image->vk, range);
       uint64_t size = image->planes[0].surface.meta_slice_size * layer_count;
       uint64_t offset = image->bindings[0].offset + image->planes[0].surface.meta_offset +
                         image->planes[0].surface.meta_slice_size * range->baseArrayLayer;
@@ -2115,7 +2115,7 @@ radv_fast_clear_range(struct radv_cmd_buffer *cmd_buffer, struct radv_image *ima
                                  .baseMipLevel = range->baseMipLevel,
                                  .levelCount = radv_get_levelCount(image, range),
                                  .baseArrayLayer = range->baseArrayLayer,
-                                 .layerCount = radv_get_layerCount(image, range),
+                                 .layerCount = vk_image_subresource_layer_count(&image->vk, range),
                               },
                         },
                         0, NULL);
@@ -2131,7 +2131,7 @@ radv_fast_clear_range(struct radv_cmd_buffer *cmd_buffer, struct radv_image *ima
                },
          },
       .baseArrayLayer = range->baseArrayLayer,
-      .layerCount = radv_get_layerCount(image, range->layerCount),
+      .layerCount = vk_image_subresource_layer_count(&image->vk, range),
    };
 
    VkClearAttachment clear_att = {
@@ -2220,7 +2220,7 @@ radv_cmd_clear_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *imag
       for (uint32_t l = 0; l < radv_get_levelCount(image, range); ++l) {
          const uint32_t layer_count = image->vk.image_type == VK_IMAGE_TYPE_3D
                                          ? radv_minify(image->info.depth, range->baseMipLevel + l)
-                                         : radv_get_layerCount(image, range);
+                                         : vk_image_subresource_layer_count(&image->vk, range);
 
          if (cs) {
             for (uint32_t s = 0; s < layer_count; ++s) {
index 74374a3..7812c8b 100644 (file)
@@ -515,7 +515,7 @@ radv_process_depth_stencil(struct radv_cmd_buffer *cmd_buffer, struct radv_image
                             .extent = {width, height},
                          });
 
-      for (uint32_t s = 0; s < radv_get_layerCount(image, subresourceRange); s++) {
+      for (uint32_t s = 0; s < vk_image_subresource_layer_count(&image->vk, subresourceRange); s++) {
          radv_process_depth_image_layer(cmd_buffer, image, subresourceRange, l, s);
       }
    }
@@ -553,7 +553,7 @@ radv_expand_depth_stencil_compute(struct radv_cmd_buffer *cmd_buffer, struct rad
       width = radv_minify(image->info.width, subresourceRange->baseMipLevel + l);
       height = radv_minify(image->info.height, subresourceRange->baseMipLevel + l);
 
-      for (uint32_t s = 0; s < radv_get_layerCount(image, subresourceRange); s++) {
+      for (uint32_t s = 0; s < vk_image_subresource_layer_count(&image->vk, subresourceRange); s++) {
          radv_image_view_init(
             &load_iview, cmd_buffer->device,
             &(VkImageViewCreateInfo){
index f774742..c9b1565 100644 (file)
@@ -571,7 +571,7 @@ radv_process_color_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *
    }
 
    if (radv_dcc_enabled(image, subresourceRange->baseMipLevel) &&
-       (image->info.array_size != radv_get_layerCount(image, subresourceRange) ||
+       (image->info.array_size != vk_image_subresource_layer_count(&image->vk, subresourceRange) ||
         subresourceRange->baseArrayLayer != 0)) {
       /* Only use predication if the image has DCC with mipmaps or
        * if the range of layers covers the whole image because the
@@ -629,7 +629,7 @@ radv_process_color_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *
                             .extent = {width, height},
                          });
 
-      for (uint32_t s = 0; s < radv_get_layerCount(image, subresourceRange); s++) {
+      for (uint32_t s = 0; s < vk_image_subresource_layer_count(&image->vk, subresourceRange); s++) {
          radv_process_color_image_layer(cmd_buffer, image, subresourceRange, l, s, flush_cb);
       }
    }
@@ -746,7 +746,7 @@ radv_decompress_dcc_compute(struct radv_cmd_buffer *cmd_buffer, struct radv_imag
       width = radv_minify(image->info.width, subresourceRange->baseMipLevel + l);
       height = radv_minify(image->info.height, subresourceRange->baseMipLevel + l);
 
-      for (uint32_t s = 0; s < radv_get_layerCount(image, subresourceRange); s++) {
+      for (uint32_t s = 0; s < vk_image_subresource_layer_count(&image->vk, subresourceRange); s++) {
          radv_image_view_init(
             &load_iview, cmd_buffer->device,
             &(VkImageViewCreateInfo){
index 6c1f834..e8b61a4 100644 (file)
@@ -80,7 +80,7 @@ radv_expand_fmask_image_inplace(struct radv_cmd_buffer *cmd_buffer, struct radv_
    struct radv_meta_saved_state saved_state;
    const uint32_t samples = image->info.samples;
    const uint32_t samples_log2 = ffs(samples) - 1;
-   unsigned layer_count = radv_get_layerCount(image, subresourceRange);
+   unsigned layer_count = vk_image_subresource_layer_count(&image->vk, subresourceRange);
    struct radv_image_view iview;
 
    VkResult result = radv_device_init_meta_fmask_expand_state_internal(device, samples_log2);
index 4b11c6e..952ad6c 100644 (file)
@@ -2202,11 +2202,11 @@ radv_image_view_init(struct radv_image_view *iview, struct radv_device *device,
    switch (image->vk.image_type) {
    case VK_IMAGE_TYPE_1D:
    case VK_IMAGE_TYPE_2D:
-      assert(range->baseArrayLayer + radv_get_layerCount(image, range) - 1 <=
+      assert(range->baseArrayLayer + vk_image_subresource_layer_count(&image->vk, range) - 1 <=
              image->info.array_size);
       break;
    case VK_IMAGE_TYPE_3D:
-      assert(range->baseArrayLayer + radv_get_layerCount(image, range) - 1 <=
+      assert(range->baseArrayLayer + vk_image_subresource_layer_count(&image->vk, range) - 1 <=
              radv_minify(image->info.depth, range->baseMipLevel));
       break;
    default:
index be6d721..93c8954 100644 (file)
@@ -2799,14 +2799,6 @@ unsigned radv_image_queue_family_mask(const struct radv_image *image,
                                       enum radv_queue_family queue_family);
 
 static inline uint32_t
-radv_get_layerCount(const struct radv_image *image, const VkImageSubresourceRange *range)
-{
-   return range->layerCount == VK_REMAINING_ARRAY_LAYERS
-             ? image->info.array_size - range->baseArrayLayer
-             : range->layerCount;
-}
-
-static inline uint32_t
 radv_get_levelCount(const struct radv_image *image, const VkImageSubresourceRange *range)
 {
    return range->levelCount == VK_REMAINING_MIP_LEVELS ? image->info.levels - range->baseMipLevel