[this, level, discard](){
unsigned n_levels = static_cast<const Texture3D *>(this)->levels;
change_layout(n_levels, level, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, discard);
[this, level, discard](){
unsigned n_levels = static_cast<const Texture3D *>(this)->levels;
change_layout(n_levels, level, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, discard);