diff options
| author | DrChat <arkolbed@gmail.com> | 2018-04-30 11:01:46 -0500 |
|---|---|---|
| committer | DrChat <arkolbed@gmail.com> | 2018-04-30 11:01:46 -0500 |
| commit | f7c7cc54ed3c8e8d9e0d649421a919066b899dd9 (patch) | |
| tree | a2242e6f1c8b4396b1c23157f820aa0fd60f290b | |
| parent | 62bee78edd105df21b3dac31fdbadce84be6608e (diff) | |
[GPU] TextureInfo::GetMaxMipLevels
| -rw-r--r-- | src/xenia/gpu/texture_info.cc | 5 | ||||
| -rw-r--r-- | src/xenia/gpu/texture_info.h | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/xenia/gpu/texture_info.cc b/src/xenia/gpu/texture_info.cc index 13cf23c81..655249304 100644 --- a/src/xenia/gpu/texture_info.cc +++ b/src/xenia/gpu/texture_info.cc @@ -204,6 +204,11 @@ void TextureInfo::CalculateTextureSizesCube(uint32_t width, uint32_t height, input_length = size_cube.input_face_length * 6; } +uint32_t TextureInfo::GetMaxMipLevels(uint32_t width, uint32_t height, + uint32_t depth) { + return 1 + xe::log2_floor(std::max({width, height, depth})); +} + bool TextureInfo::GetPackedTileOffset(const TextureInfo& texture_info, uint32_t* out_offset_x, uint32_t* out_offset_y) { diff --git a/src/xenia/gpu/texture_info.h b/src/xenia/gpu/texture_info.h index 3228a4768..821d5134b 100644 --- a/src/xenia/gpu/texture_info.h +++ b/src/xenia/gpu/texture_info.h @@ -304,6 +304,8 @@ struct TextureInfo { uint32_t width, uint32_t height, TextureInfo* out_info); + static uint32_t GetMaxMipLevels(uint32_t width, uint32_t height, + uint32_t depth); static bool GetPackedTileOffset(const TextureInfo& texture_info, uint32_t* out_offset_x, uint32_t* out_offset_y); |
