intel/isl: Add a unit suffixes to some struct fields and variables
I was about to make the claim to someone that every field in isl_surf is either an enum or has explicit units. Then I looked at isl_surf and discovered this claim was wrong. We should fix that. This commit does a few refactors: * Add _B suffixes to some struct fields * Add _B to some variables and parameters * Rename row_pitch_tiles -> row_pitch_tl Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
This commit is contained in:
@@ -135,24 +135,25 @@ get_surface(struct anv_image *image, VkImageAspectFlagBits aspect)
|
||||
static void
|
||||
add_surface(struct anv_image *image, struct anv_surface *surf, uint32_t plane)
|
||||
{
|
||||
assert(surf->isl.size > 0); /* isl surface must be initialized */
|
||||
assert(surf->isl.size_B > 0); /* isl surface must be initialized */
|
||||
|
||||
if (image->disjoint) {
|
||||
surf->offset = align_u32(image->planes[plane].size, surf->isl.alignment);
|
||||
surf->offset = align_u32(image->planes[plane].size,
|
||||
surf->isl.alignment_B);
|
||||
/* Plane offset is always 0 when it's disjoint. */
|
||||
} else {
|
||||
surf->offset = align_u32(image->size, surf->isl.alignment);
|
||||
surf->offset = align_u32(image->size, surf->isl.alignment_B);
|
||||
/* Determine plane's offset only once when the first surface is added. */
|
||||
if (image->planes[plane].size == 0)
|
||||
image->planes[plane].offset = image->size;
|
||||
}
|
||||
|
||||
image->size = surf->offset + surf->isl.size;
|
||||
image->planes[plane].size = (surf->offset + surf->isl.size) - image->planes[plane].offset;
|
||||
image->size = surf->offset + surf->isl.size_B;
|
||||
image->planes[plane].size = (surf->offset + surf->isl.size_B) - image->planes[plane].offset;
|
||||
|
||||
image->alignment = MAX2(image->alignment, surf->isl.alignment);
|
||||
image->alignment = MAX2(image->alignment, surf->isl.alignment_B);
|
||||
image->planes[plane].alignment = MAX2(image->planes[plane].alignment,
|
||||
surf->isl.alignment);
|
||||
surf->isl.alignment_B);
|
||||
}
|
||||
|
||||
|
||||
@@ -249,7 +250,7 @@ add_aux_state_tracking_buffer(struct anv_image *image,
|
||||
const struct anv_device *device)
|
||||
{
|
||||
assert(image && device);
|
||||
assert(image->planes[plane].aux_surface.isl.size > 0 &&
|
||||
assert(image->planes[plane].aux_surface.isl.size_B > 0 &&
|
||||
image->aspects & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV);
|
||||
|
||||
/* Compressed images must be tiled and therefore everything should be 4K
|
||||
@@ -348,8 +349,8 @@ make_surface(const struct anv_device *dev,
|
||||
.levels = vk_info->mipLevels,
|
||||
.array_len = vk_info->arrayLayers,
|
||||
.samples = vk_info->samples,
|
||||
.min_alignment = 0,
|
||||
.row_pitch = anv_info->stride,
|
||||
.min_alignment_B = 0,
|
||||
.row_pitch_B = anv_info->stride,
|
||||
.usage = usage,
|
||||
.tiling_flags = tiling_flags);
|
||||
|
||||
@@ -377,8 +378,8 @@ make_surface(const struct anv_device *dev,
|
||||
.levels = vk_info->mipLevels,
|
||||
.array_len = vk_info->arrayLayers,
|
||||
.samples = vk_info->samples,
|
||||
.min_alignment = 0,
|
||||
.row_pitch = anv_info->stride,
|
||||
.min_alignment_B = 0,
|
||||
.row_pitch_B = anv_info->stride,
|
||||
.usage = usage,
|
||||
.tiling_flags = ISL_TILING_ANY_MASK);
|
||||
|
||||
@@ -413,7 +414,7 @@ make_surface(const struct anv_device *dev,
|
||||
} else if (dev->info.gen == 8 && vk_info->samples > 1) {
|
||||
anv_perf_warn(dev->instance, image, "Enable gen8 multisampled HiZ");
|
||||
} else if (!unlikely(INTEL_DEBUG & DEBUG_NO_HIZ)) {
|
||||
assert(image->planes[plane].aux_surface.isl.size == 0);
|
||||
assert(image->planes[plane].aux_surface.isl.size_B == 0);
|
||||
ok = isl_surf_get_hiz_surf(&dev->isl_dev,
|
||||
&image->planes[plane].surface.isl,
|
||||
&image->planes[plane].aux_surface.isl);
|
||||
@@ -439,7 +440,7 @@ make_surface(const struct anv_device *dev,
|
||||
likely((INTEL_DEBUG & DEBUG_NO_RBC) == 0);
|
||||
|
||||
if (allow_compression) {
|
||||
assert(image->planes[plane].aux_surface.isl.size == 0);
|
||||
assert(image->planes[plane].aux_surface.isl.size_B == 0);
|
||||
ok = isl_surf_get_ccs_surf(&dev->isl_dev,
|
||||
&image->planes[plane].surface.isl,
|
||||
&image->planes[plane].aux_surface.isl, 0);
|
||||
@@ -457,7 +458,7 @@ make_surface(const struct anv_device *dev,
|
||||
anv_perf_warn(dev->instance, image,
|
||||
"This image format doesn't support rendering. "
|
||||
"Not allocating an CCS buffer.");
|
||||
image->planes[plane].aux_surface.isl.size = 0;
|
||||
image->planes[plane].aux_surface.isl.size_B = 0;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -480,7 +481,7 @@ make_surface(const struct anv_device *dev,
|
||||
}
|
||||
} else if ((aspect & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV) && vk_info->samples > 1) {
|
||||
assert(!(vk_info->usage & VK_IMAGE_USAGE_STORAGE_BIT));
|
||||
assert(image->planes[plane].aux_surface.isl.size == 0);
|
||||
assert(image->planes[plane].aux_surface.isl.size_B == 0);
|
||||
ok = isl_surf_get_mcs_surf(&dev->isl_dev,
|
||||
&image->planes[plane].surface.isl,
|
||||
&image->planes[plane].aux_surface.isl);
|
||||
@@ -498,14 +499,14 @@ make_surface(const struct anv_device *dev,
|
||||
*/
|
||||
assert((MAX2(image->planes[plane].surface.offset,
|
||||
image->planes[plane].aux_surface.offset) +
|
||||
(image->planes[plane].aux_surface.isl.size > 0 ?
|
||||
image->planes[plane].aux_surface.isl.size :
|
||||
image->planes[plane].surface.isl.size)) <=
|
||||
(image->planes[plane].aux_surface.isl.size_B > 0 ?
|
||||
image->planes[plane].aux_surface.isl.size_B :
|
||||
image->planes[plane].surface.isl.size_B)) <=
|
||||
(image->planes[plane].offset + image->planes[plane].size));
|
||||
|
||||
if (image->planes[plane].aux_surface.isl.size) {
|
||||
if (image->planes[plane].aux_surface.isl.size_B) {
|
||||
/* assert(image->planes[plane].fast_clear_state_offset == */
|
||||
/* (image->planes[plane].aux_surface.offset + image->planes[plane].aux_surface.isl.size)); */
|
||||
/* (image->planes[plane].aux_surface.offset + image->planes[plane].aux_surface.isl.size_B)); */
|
||||
assert(image->planes[plane].fast_clear_state_offset <
|
||||
(image->planes[plane].offset + image->planes[plane].size));
|
||||
}
|
||||
@@ -766,7 +767,7 @@ void anv_GetImageSubresourceLayout(
|
||||
assert(__builtin_popcount(subresource->aspectMask) == 1);
|
||||
|
||||
layout->offset = surface->offset;
|
||||
layout->rowPitch = surface->isl.row_pitch;
|
||||
layout->rowPitch = surface->isl.row_pitch_B;
|
||||
layout->depthPitch = isl_surf_get_array_pitch(&surface->isl);
|
||||
layout->arrayPitch = isl_surf_get_array_pitch(&surface->isl);
|
||||
|
||||
@@ -783,7 +784,7 @@ void anv_GetImageSubresourceLayout(
|
||||
layout->size = layout->rowPitch * anv_minify(image->extent.height,
|
||||
subresource->mipLevel);
|
||||
} else {
|
||||
layout->size = surface->isl.size;
|
||||
layout->size = surface->isl.size_B;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -824,7 +825,7 @@ anv_layout_to_aux_usage(const struct gen_device_info * const devinfo,
|
||||
/* If there is no auxiliary surface allocated, we must use the one and only
|
||||
* main buffer.
|
||||
*/
|
||||
if (image->planes[plane].aux_surface.isl.size == 0)
|
||||
if (image->planes[plane].aux_surface.isl.size_B == 0)
|
||||
return ISL_AUX_USAGE_NONE;
|
||||
|
||||
/* All images that use an auxiliary surface are required to be tiled. */
|
||||
@@ -948,7 +949,7 @@ anv_layout_to_fast_clear_type(const struct gen_device_info * const devinfo,
|
||||
uint32_t plane = anv_image_aspect_to_plane(image->aspects, aspect);
|
||||
|
||||
/* If there is no auxiliary surface allocated, there are no fast-clears */
|
||||
if (image->planes[plane].aux_surface.isl.size == 0)
|
||||
if (image->planes[plane].aux_surface.isl.size_B == 0)
|
||||
return ANV_FAST_CLEAR_NONE;
|
||||
|
||||
/* All images that use an auxiliary surface are required to be tiled. */
|
||||
@@ -1058,7 +1059,7 @@ anv_image_fill_surface_state(struct anv_device *device,
|
||||
* the primary surface. The shadow surface will be tiled, unlike the main
|
||||
* surface, so it should get significantly better performance.
|
||||
*/
|
||||
if (image->planes[plane].shadow_surface.isl.size > 0 &&
|
||||
if (image->planes[plane].shadow_surface.isl.size_B > 0 &&
|
||||
isl_format_is_compressed(view.format) &&
|
||||
(flags & ANV_IMAGE_VIEW_STATE_TEXTURE_OPTIMAL)) {
|
||||
assert(isl_format_is_compressed(surface->isl.format));
|
||||
@@ -1093,9 +1094,9 @@ anv_image_fill_surface_state(struct anv_device *device,
|
||||
assert(aux_usage == ISL_AUX_USAGE_NONE);
|
||||
isl_buffer_fill_state(&device->isl_dev, state_inout->state.map,
|
||||
.address = anv_address_physical(address),
|
||||
.size = surface->isl.size,
|
||||
.size_B = surface->isl.size_B,
|
||||
.format = ISL_FORMAT_RAW,
|
||||
.stride = 1,
|
||||
.stride_B = 1,
|
||||
.mocs = device->default_mocs);
|
||||
state_inout->address = address,
|
||||
state_inout->aux_address = ANV_NULL_ADDRESS;
|
||||
|
Reference in New Issue
Block a user