src1_z = info->srcOffsets[0].z;
}
- if (info->dstSubresource.layerCount > 1) {
+ if (vk_image_subresource_layer_count(&dst_image->vk, &info->dstSubresource) > 1) {
assert(layers <= 1);
- layers = info->dstSubresource.layerCount;
+ layers = vk_image_subresource_layer_count(&dst_image->vk,
+ &info->dstSubresource);
}
/* BC1_RGB_* formats need to have their last components overriden with 1
const VkBufferImageCopy2 *info)
{
struct tu_cs *cs = &cmd->cs;
- uint32_t layers = MAX2(info->imageExtent.depth, info->imageSubresource.layerCount);
+ uint32_t layers = MAX2(info->imageExtent.depth,
+ vk_image_subresource_layer_count(&dst_image->vk,
+ &info->imageSubresource));
enum pipe_format src_format =
copy_format(dst_image->vk.format, info->imageSubresource.aspectMask);
enum pipe_format dst_format =
const VkBufferImageCopy2 *info)
{
struct tu_cs *cs = &cmd->cs;
- uint32_t layers = MAX2(info->imageExtent.depth, info->imageSubresource.layerCount);
+ uint32_t layers = MAX2(info->imageExtent.depth,
+ vk_image_subresource_layer_count(&src_image->vk,
+ &info->imageSubresource));
enum pipe_format dst_format =
copy_format(src_image->vk.format, info->imageSubresource.aspectMask);
enum pipe_format src_format =
VkOffset3D src_offset = info->srcOffset;
VkOffset3D dst_offset = info->dstOffset;
VkExtent3D extent = info->extent;
- uint32_t layers_to_copy = MAX2(info->extent.depth, info->srcSubresource.layerCount);
+ uint32_t layers_to_copy = MAX2(info->extent.depth,
+ vk_image_subresource_layer_count(&src_image->vk,
+ &info->srcSubresource));
/* From the Vulkan 1.2.140 spec, section 19.3 "Copying Data Between
* Images":
staging_layout.tile_mode = TILE6_LINEAR;
staging_layout.ubwc = false;
+ uint32_t layer_count =
+ vk_image_subresource_layer_count(&src_image->vk,
+ &info->srcSubresource);
fdl6_layout(&staging_layout,
src_format,
src_image->layout[0].nr_samples,
extent.height,
extent.depth,
1,
- info->srcSubresource.layerCount,
+ layer_count,
extent.depth > 1,
NULL);
.base_miplevel = 0,
.level_count = 1,
.base_array_layer = 0,
- .layer_count = info->srcSubresource.layerCount,
+ .layer_count = layer_count,
.swiz = { PIPE_SWIZZLE_X, PIPE_SWIZZLE_Y, PIPE_SWIZZLE_Z, PIPE_SWIZZLE_W },
.format = tu_format_for_aspect(src_format, VK_IMAGE_ASPECT_COLOR_BIT),
.type = FDL_VIEW_TYPE_2D,
.base_miplevel = 0,
.level_count = 1,
.base_array_layer = 0,
- .layer_count = info->srcSubresource.layerCount,
+ .layer_count = layer_count,
.swiz = { PIPE_SWIZZLE_X, PIPE_SWIZZLE_Y, PIPE_SWIZZLE_Z, PIPE_SWIZZLE_W },
.format = tu_format_for_aspect(dst_format, VK_IMAGE_ASPECT_COLOR_BIT),
.type = FDL_VIEW_TYPE_2D,
for (uint32_t i = 0; i < pResolveImageInfo->regionCount; ++i) {
const VkImageResolve2 *info = &pResolveImageInfo->pRegions[i];
- uint32_t layers = MAX2(info->extent.depth, info->dstSubresource.layerCount);
+ uint32_t layers = MAX2(info->extent.depth,
+ vk_image_subresource_layer_count(&dst_image->vk,
+ &info->dstSubresource));
- assert(info->srcSubresource.layerCount == info->dstSubresource.layerCount);
/* TODO: aspect masks possible ? */
coords(ops, cs, info->dstOffset, info->srcOffset, info->extent);