Fix incorrect parameters for layered textures in Video RAM texture memory profiler

This commit is contained in:
BlueCube3310 2024-08-26 19:44:46 +02:00
parent f648de1a83
commit e74bc3079a
3 changed files with 39 additions and 5 deletions

View File

@ -1389,8 +1389,22 @@ void TextureStorage::texture_debug_usage(List<RS::TextureInfo> *r_info) {
tinfo.format = t->format; tinfo.format = t->format;
tinfo.width = t->alloc_width; tinfo.width = t->alloc_width;
tinfo.height = t->alloc_height; tinfo.height = t->alloc_height;
tinfo.depth = t->depth;
tinfo.bytes = t->total_data_size; 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); 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); 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); texture->stored_cube_sides |= (1 << p_layer);

View File

@ -1470,8 +1470,24 @@ void TextureStorage::texture_debug_usage(List<RS::TextureInfo> *r_info) {
tinfo.format = t->format; tinfo.format = t->format;
tinfo.width = t->width; tinfo.width = t->width;
tinfo.height = t->height; tinfo.height = t->height;
tinfo.depth = t->depth; tinfo.bytes = Image::get_image_data_size(t->width, t->height, t->format, t->mipmaps > 1);
tinfo.bytes = Image::get_image_data_size(t->width, t->height, t->format, t->mipmaps);
switch (t->type) {
case TextureType::TYPE_3D:
tinfo.depth = t->depth;
tinfo.bytes *= t->depth;
break;
case TextureType::TYPE_LAYERED:
tinfo.depth = t->layers;
tinfo.bytes *= t->layers;
break;
default:
tinfo.depth = 0;
break;
}
r_info->push_back(tinfo); r_info->push_back(tinfo);
} }
} }

View File

@ -176,7 +176,7 @@ public:
uint32_t height; uint32_t height;
uint32_t depth; uint32_t depth;
Image::Format format; Image::Format format;
int bytes; int64_t bytes;
String path; String path;
}; };