diff options
author | BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com> | 2024-08-26 19:44:46 +0200 |
---|---|---|
committer | BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com> | 2024-09-01 11:49:30 +0200 |
commit | e74bc3079a65710f06997ef64b459559fac51cde (patch) | |
tree | 576c078a6c1dd219010f9ea2339670498ea8bdc3 /drivers | |
parent | f648de1a83cf006dbfdaa075219ad4348628e58f (diff) | |
download | redot-engine-e74bc3079a65710f06997ef64b459559fac51cde.tar.gz |
Fix incorrect parameters for layered textures in Video RAM texture memory profiler
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gles3/storage/texture_storage.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/drivers/gles3/storage/texture_storage.cpp b/drivers/gles3/storage/texture_storage.cpp index 57fe96fb6f..36393dde86 100644 --- a/drivers/gles3/storage/texture_storage.cpp +++ b/drivers/gles3/storage/texture_storage.cpp @@ -1389,8 +1389,22 @@ void TextureStorage::texture_debug_usage(List<RS::TextureInfo> *r_info) { tinfo.format = t->format; tinfo.width = t->alloc_width; tinfo.height = t->alloc_height; - tinfo.depth = t->depth; tinfo.bytes = t->total_data_size; + + switch (t->type) { + case Texture::TYPE_3D: + tinfo.depth = t->depth; + break; + + case Texture::TYPE_LAYERED: + tinfo.depth = t->layers; + break; + + default: + tinfo.depth = 0; + break; + } + r_info->push_back(tinfo); } } @@ -1521,7 +1535,11 @@ void TextureStorage::_texture_set_data(RID p_texture, const Ref<Image> &p_image, h = MAX(1, h >> 1); } - texture->total_data_size = tsize; + if (texture->target == GL_TEXTURE_CUBE_MAP || texture->target == GL_TEXTURE_2D_ARRAY) { + texture->total_data_size = tsize * texture->layers; + } else { + texture->total_data_size = tsize; + } texture->stored_cube_sides |= (1 << p_layer); |