There can be a divide by zero on this line when numBlocksX is zero, which occurs for small / mip textures.
VkResult Device::CompressedImageSubData(Image* pImage, const VezImageSubDataInfo* pSubDataInfo, const void* pData)
auto maxTransferBlocksY = std::min(numBlocksY, static_cast<uint32_t>(pinnedMemoryBufferSize / (blockSize * numBlocksX)));
This can be trivially fixed by checking for zero before divide. The code otherwise appears correct as it rounds up zero block counts to one for those tiny sizes.
There can be a divide by zero on this line when
numBlocksXis zero, which occurs for small / mip textures.This can be trivially fixed by checking for zero before divide. The code otherwise appears correct as it rounds up zero block counts to one for those tiny sizes.