1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-01 01:54:26 +01:00

[dxvk] Add new helper function to compute mip level extent

We're going to need this outside the DxvkImage class as well.
This commit is contained in:
Philip Rebohle 2019-05-20 14:27:00 +02:00
parent cdc5e93dac
commit a82dbf6200
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 15 additions and 5 deletions

View File

@ -190,11 +190,7 @@ namespace dxvk {
* \returns Size of that level
*/
VkExtent3D mipLevelExtent(uint32_t level) const {
VkExtent3D size = m_info.extent;
size.width = std::max(1u, size.width >> level);
size.height = std::max(1u, size.height >> level);
size.depth = std::max(1u, size.depth >> level);
return size;
return util::computeMipLevelExtent(m_info.extent, level);
}
/**

View File

@ -87,6 +87,20 @@ namespace dxvk::util {
&& ((extent.depth % blockSize.depth == 0) || (uint32_t(offset.z + extent.depth) == imageSize.depth));
}
/**
* \brief Computes mip level extent
*
* \param [in] size Base mip level extent
* \param [in] level mip level to compute
* \returns Extent of the given mip level
*/
inline VkExtent3D computeMipLevelExtent(VkExtent3D size, uint32_t level) {
size.width = std::max(1u, size.width >> level);
size.height = std::max(1u, size.height >> level);
size.depth = std::max(1u, size.depth >> level);
return size;
}
/**
* \brief Computes block offset for compressed images
*