+ if (info->tiling == VK_IMAGE_TILING_LINEAR &&
+ (info->format == VK_FORMAT_R32G32B32_SFLOAT ||
+ info->format == VK_FORMAT_R32G32B32_SINT ||
+ info->format == VK_FORMAT_R32G32B32_UINT)) {
+ /* R32G32B32 is a weird format and the driver currently only
+ * supports the barely minimum.
+ * TODO: Implement more if we really need to.
+ */
+ if (info->type == VK_IMAGE_TYPE_3D)
+ goto unsupported;
+ maxArraySize = 1;
+ maxMipLevels = 1;
+ }
+
+
+ /* We can't create 3d compressed 128bpp images that can be rendered to on GFX9 */
+ if (physical_device->rad_info.chip_class >= GFX9 &&
+ info->type == VK_IMAGE_TYPE_3D &&
+ vk_format_get_blocksizebits(info->format) == 128 &&
+ vk_format_is_compressed(info->format) &&
+ (info->flags & VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT) &&
+ ((info->flags & VK_IMAGE_CREATE_EXTENDED_USAGE_BIT) ||
+ (info->usage & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))) {
+ goto unsupported;
+ }
+