image->usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
}
+static inline bool
+radv_use_htile_for_image(const struct radv_image *image)
+{
+ return image->info.levels == 1 &&
+ image->info.width * image->info.height >= 8 * 8;
+}
+
static bool
radv_use_tc_compat_cmask_for_image(struct radv_device *device,
struct radv_image *image)
if (is_depth) {
surface->flags |= RADEON_SURF_ZBUFFER;
+ if (!radv_use_htile_for_image(image) ||
+ (device->instance->debug_flags & RADV_DEBUG_NO_HIZ))
+ surface->flags |= RADEON_SURF_NO_HTILE;
if (radv_use_tc_compat_htile_for_image(device, pCreateInfo, image_format))
surface->flags |= RADEON_SURF_TC_COMPATIBLE_HTILE;
}
image->info.depth == 1;
}
-static inline bool
-radv_image_can_enable_htile(struct radv_image *image)
-{
- return radv_image_has_htile(image) &&
- image->info.levels == 1 &&
- image->info.width * image->info.height >= 8 * 8;
-}
-
static void radv_image_disable_dcc(struct radv_image *image)
{
for (unsigned i = 0; i < image->plane_count; ++i)
image->tc_compatible_cmask = true;
} else {
/* Otherwise, try to enable HTILE for depth surfaces. */
- if (radv_image_can_enable_htile(image) &&
- !(device->instance->debug_flags & RADV_DEBUG_NO_HIZ)) {
+ if (radv_image_has_htile(image)) {
image->tc_compatible_htile = image->planes[0].surface.flags & RADEON_SURF_TC_COMPATIBLE_HTILE;
radv_image_alloc_htile(device, image);
} else {