|
|
@ -169,40 +169,6 @@ template <u32 GOB_EXTENT>
|
|
|
|
return Common::DivCeil(AdjustMipSize(size, level), block_size);
|
|
|
|
return Common::DivCeil(AdjustMipSize(size, level), block_size);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[[nodiscard]] constexpr u32 LayerSize(const TICEntry& config, PixelFormat format) {
|
|
|
|
|
|
|
|
return config.Width() * config.Height() * BytesPerBlock(format);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[nodiscard]] constexpr bool HasTwoDimsPerLayer(TextureType type) {
|
|
|
|
|
|
|
|
switch (type) {
|
|
|
|
|
|
|
|
case TextureType::Texture2D:
|
|
|
|
|
|
|
|
case TextureType::Texture2DArray:
|
|
|
|
|
|
|
|
case TextureType::Texture2DNoMipmap:
|
|
|
|
|
|
|
|
case TextureType::Texture3D:
|
|
|
|
|
|
|
|
case TextureType::TextureCubeArray:
|
|
|
|
|
|
|
|
case TextureType::TextureCubemap:
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
case TextureType::Texture1D:
|
|
|
|
|
|
|
|
case TextureType::Texture1DArray:
|
|
|
|
|
|
|
|
case TextureType::Texture1DBuffer:
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[nodiscard]] constexpr bool HasTwoDimsPerLayer(ImageType type) {
|
|
|
|
|
|
|
|
switch (type) {
|
|
|
|
|
|
|
|
case ImageType::e2D:
|
|
|
|
|
|
|
|
case ImageType::e3D:
|
|
|
|
|
|
|
|
case ImageType::Linear:
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
case ImageType::e1D:
|
|
|
|
|
|
|
|
case ImageType::Buffer:
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
UNREACHABLE_MSG("Invalid image type={}", static_cast<int>(type));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[nodiscard]] constexpr std::pair<int, int> Samples(int num_samples) {
|
|
|
|
[[nodiscard]] constexpr std::pair<int, int> Samples(int num_samples) {
|
|
|
|
switch (num_samples) {
|
|
|
|
switch (num_samples) {
|
|
|
|
case 1:
|
|
|
|
case 1:
|
|
|
|