vk: studio: add submodel render acquire/release diagnostics

For #562 investigation
This commit is contained in:
Ivan Avdeev 2023-09-14 13:02:01 -04:00
parent 9ceb129576
commit 3333d03a7b
1 changed files with 18 additions and 10 deletions

View File

@ -259,6 +259,8 @@ void VK_StudioModelInit(void) {
}
r_studio_submodel_render_t *studioSubmodelRenderModelAcquire(r_studio_submodel_info_t *subinfo) {
const char *mode = "";
r_studio_submodel_render_t *render = NULL;
if (subinfo->cached_head) {
render = subinfo->cached_head;
@ -266,21 +268,24 @@ r_studio_submodel_render_t *studioSubmodelRenderModelAcquire(r_studio_submodel_i
subinfo->cached_head = render->_.next;
render->_.next = NULL;
}
subinfo->render_refcount++;
return render;
}
render = Mem_Calloc(vk_core.pool, sizeof(*render));
render->_.info = subinfo;
if (!subinfo->is_dynamic) {
subinfo->cached_head = render;
++g_studio_cache.submodels_cached_static;
mode = "new";
} else {
++g_studio_cache.submodels_cached_dynamic;
render = Mem_Calloc(vk_core.pool, sizeof(*render));
render->_.info = subinfo;
if (!subinfo->is_dynamic) {
subinfo->cached_head = render;
++g_studio_cache.submodels_cached_static;
} else {
++g_studio_cache.submodels_cached_dynamic;
}
mode = "cached";
}
subinfo->render_refcount++;
DEBUG("%s: submodel=%p(%s) %s rendermodel=%p refcount=%d", __FUNCTION__, subinfo->submodel_key, mode, subinfo->submodel_key->name, render, subinfo->render_refcount);
return render;
}
@ -291,6 +296,9 @@ void studioSubmodelRenderModelRelease(r_studio_submodel_render_t *render_submode
ASSERT(render_submodel->_.info->render_refcount > 0);
render_submodel->_.info->render_refcount--;
const r_studio_submodel_info_t* const subinfo = render_submodel->_.info;
DEBUG("%s: submodel=%p(%s) rendermodel=%p refcount=%d", __FUNCTION__, subinfo->submodel_key, subinfo->submodel_key->name, render_submodel, subinfo->render_refcount);
if (!render_submodel->_.info->is_dynamic)
return;