In vulkan when we call vkCmdBlitImage with
baseArrayLayer = 0 and layerCount = 6 (for both srcSubresource and dstSubresource)
only the first layer gets blitted.
if I replace the call
if (1) {
region.srcSubresource.baseArrayLayer = 0;
region.srcSubresource.layerCount = 6;
region.dstSubresource.baseArrayLayer = 0;
region.dstSubresource.layerCount = 6;
vkCmdBlitImage(cb.BE_Get(),
dstimage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
dstimage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
1, ®ion,
VK_FILTER_LINEAR
);
}
else {//TODO @Timon seems like blitting multiple layers (using layerCount) doesn't work on amd?
VkImageBlit wtf[6];
for (int i = 0; i < 6; ++i) {
wtf = region;
wtf.srcSubresource.baseArrayLayer = i;
wtf.srcSubresource.layerCount = 1;
wtf.dstSubresource.baseArrayLayer = i;
wtf.dstSubresource.layerCount = 1;
}
vkCmdBlitImage(cb.BE_Get(),
dstimage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
dstimage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
6, wtf,
VK_FILTER_LINEAR
);
}