Literally no point to it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21869>
!compressed &&
((config->info.array_size == 1 && config->info.depth == 1) || config->info.levels == 1);
- AddrSurfInfoIn.flags.noStencil = (surf->flags & RADEON_SURF_SBUFFER) == 0;
+ AddrSurfInfoIn.flags.noStencil =
+ !(surf->flags & RADEON_SURF_SBUFFER) || (surf->flags & RADEON_SURF_NO_RENDER_TARGET);
+
AddrSurfInfoIn.flags.compressZ = !!(surf->flags & RADEON_SURF_Z_OR_SBUFFER);
/* On GFX7-GFX8, the DB uses the same pitch and tile mode (except tilesplit)
if (is_depth) {
flags |= RADEON_SURF_ZBUFFER;
+ if (is_depth && is_stencil &&
+ !(pCreateInfo->usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) &&
+ device->physical_device->rad_info.gfx_level <= GFX8)
+ flags |= RADEON_SURF_NO_RENDER_TARGET;
+
if (radv_use_htile_for_image(device, image) &&
- !(device->instance->debug_flags & RADV_DEBUG_NO_HIZ)) {
+ !(device->instance->debug_flags & RADV_DEBUG_NO_HIZ) &&
+ !(flags & RADEON_SURF_NO_RENDER_TARGET)) {
if (radv_use_tc_compat_htile_for_image(device, pCreateInfo, image_format))
flags |= RADEON_SURF_TC_COMPATIBLE_HTILE;
} else {
vk_format_get_blocksizebits(image->vk.format) == 128 &&
vk_format_is_compressed(image->vk.format))
return false;
+
+ if (image->planes[0].surface.flags & RADEON_SURF_NO_RENDER_TARGET)
+ return false;
+
return true;
}
else if (src_image->info.array_size > 1 || dest_image->info.array_size > 1)
*method = RESOLVE_COMPUTE;
} else {
- if (src_image->info.array_size > 1 || dest_image->info.array_size > 1)
+ if (src_image->info.array_size > 1 || dest_image->info.array_size > 1 ||
+ (dest_image->planes[0].surface.flags & RADEON_SURF_NO_RENDER_TARGET))
*method = RESOLVE_COMPUTE;
else
*method = RESOLVE_FRAGMENT;