[Vulkan] Make image views cover all mips

Align texture dimensions to 1 block minimum (for uploading mips)
This commit is contained in:
Dr. Chat
2018-05-03 14:15:36 -05:00
parent c9d4cfe6d0
commit f885b89a03
3 changed files with 25 additions and 4 deletions

View File

@@ -365,6 +365,16 @@ uint32_t TextureInfo::GetMipLocation(const TextureInfo& src, uint32_t mip,
return address_base + address_offset;
}
uint32_t TextureInfo::GetMipLinearSize(const TextureInfo& src, uint32_t mip) {
uint32_t bytes_per_block = src.format_info()->block_width *
src.format_info()->block_height *
src.format_info()->bits_per_pixel / 8;
uint32_t size = src.input_length >> (mip * 2);
// The size is at least one block large.
return std::max(size, bytes_per_block);
}
bool TextureInfo::GetPackedTileOffset(uint32_t width, uint32_t height,
const FormatInfo* format_info,
uint32_t* out_offset_x,