mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-01 10:54:14 +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:
parent
cdc5e93dac
commit
a82dbf6200
@ -190,11 +190,7 @@ namespace dxvk {
|
|||||||
* \returns Size of that level
|
* \returns Size of that level
|
||||||
*/
|
*/
|
||||||
VkExtent3D mipLevelExtent(uint32_t level) const {
|
VkExtent3D mipLevelExtent(uint32_t level) const {
|
||||||
VkExtent3D size = m_info.extent;
|
return util::computeMipLevelExtent(m_info.extent, 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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -87,6 +87,20 @@ namespace dxvk::util {
|
|||||||
&& ((extent.depth % blockSize.depth == 0) || (uint32_t(offset.z + extent.depth) == imageSize.depth));
|
&& ((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
|
* \brief Computes block offset for compressed images
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user