From 1c06ef3639dc8ea1272b2a47a8728da2d28ecb4c Mon Sep 17 00:00:00 2001 From: Peter Lohrmann Date: Wed, 25 Mar 2015 10:35:03 -0700 Subject: GlaveSnapshot layer: Snapshot information is now passed to the message callback. * This way it can be passed to the UI. * Comment out other XGL_DBG_MSG_UNKNOWN messages so there isn't as much info spew. --- layers/glave_snapshot.c | 32 +++++++++++++++++++------------- layers/glave_snapshot.h | 1 + 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/layers/glave_snapshot.c b/layers/glave_snapshot.c index 7212fd39..8017dbe7 100644 --- a/layers/glave_snapshot.c +++ b/layers/glave_snapshot.c @@ -59,18 +59,24 @@ static uint32_t maxMemRefsPerSubmission = 0; // Debug function to print global list and each individual object list static void ll_print_lists() { + char str[1024]; objNode* pTrav = pGlobalHead; - printf("=====GLOBAL OBJECT LIST (%lu total objs):\n", numTotalObjs); + sprintf(str, "=====GLOBAL OBJECT LIST (%lu total objs):", numTotalObjs); + layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pTrav->obj.pObj, 0, GLVSNAPSHOT_SNAPSHOT_DATA, LAYER_ABBREV_STR, str); + while (pTrav) { - printf(" ObjNode (%p) w/ %s obj %p has pNextGlobal %p\n", (void*)pTrav, string_XGL_OBJECT_TYPE(pTrav->obj.objType), pTrav->obj.pObj, (void*)pTrav->pNextGlobal); + sprintf(str, " ObjNode (%p) w/ %s obj %p has pNextGlobal %p", (void*)pTrav, string_XGL_OBJECT_TYPE(pTrav->obj.objType), pTrav->obj.pObj, (void*)pTrav->pNextGlobal); + layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pTrav->obj.pObj, 0, GLVSNAPSHOT_SNAPSHOT_DATA, LAYER_ABBREV_STR, str); pTrav = pTrav->pNextGlobal; } for (uint32_t i = 0; i < XGL_NUM_OBJECT_TYPE; i++) { pTrav = pObjectHead[i]; if (pTrav) { - printf("=====%s OBJECT LIST (%lu objs):\n", string_XGL_OBJECT_TYPE(pTrav->obj.objType), numObjs[i]); + sprintf(str, "=====%s OBJECT LIST (%lu objs):", string_XGL_OBJECT_TYPE(pTrav->obj.objType), numObjs[i]); + layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pTrav->obj.pObj, 0, GLVSNAPSHOT_SNAPSHOT_DATA, LAYER_ABBREV_STR, str); while (pTrav) { - printf(" ObjNode (%p) w/ %s obj %p has pNextObj %p\n", (void*)pTrav, string_XGL_OBJECT_TYPE(pTrav->obj.objType), pTrav->obj.pObj, (void*)pTrav->pNextObj); + sprintf(str, " ObjNode (%p) w/ %s obj %p has pNextObj %p", (void*)pTrav, string_XGL_OBJECT_TYPE(pTrav->obj.objType), pTrav->obj.pObj, (void*)pTrav->pNextObj); + layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pTrav->obj.pObj, 0, GLVSNAPSHOT_SNAPSHOT_DATA, LAYER_ABBREV_STR, str); pTrav = pTrav->pNextObj; } } @@ -131,9 +137,9 @@ static void ll_increment_use_count(void* pObj, XGL_OBJECT_TYPE objType) { while (pTrav) { if (pTrav->obj.pObj == pObj) { pTrav->obj.numUses++; - char str[1024]; - sprintf(str, "OBJ[%llu] : USING %s object %p (%lu total uses)", object_track_index++, string_XGL_OBJECT_TYPE(objType), (void*)pObj, pTrav->obj.numUses); - layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pObj, 0, GLVSNAPSHOT_NONE, LAYER_ABBREV_STR, str); +// char str[1024]; +// sprintf(str, "OBJ[%llu] : USING %s object %p (%lu total uses)", object_track_index++, string_XGL_OBJECT_TYPE(objType), (void*)pObj, pTrav->obj.numUses); +// layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pObj, 0, GLVSNAPSHOT_NONE, LAYER_ABBREV_STR, str); return; } pTrav = pTrav->pNextObj; @@ -161,9 +167,9 @@ static void ll_remove_obj_type(void* pObj, XGL_OBJECT_TYPE objType) { pObjectHead[objType] = pTrav->pNextObj; assert(numObjs[objType] > 0); numObjs[objType]--; - char str[1024]; - sprintf(str, "OBJ[%llu] : DESTROY %s object %p", object_track_index++, string_XGL_OBJECT_TYPE(objType), (void*)pObj); - layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pObj, 0, GLVSNAPSHOT_NONE, LAYER_ABBREV_STR, str); +// char str[1024]; +// sprintf(str, "OBJ[%llu] : DESTROY %s object %p", object_track_index++, string_XGL_OBJECT_TYPE(objType), (void*)pObj); +// layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pObj, 0, GLVSNAPSHOT_NONE, LAYER_ABBREV_STR, str); return; } pPrev = pTrav; @@ -188,9 +194,9 @@ static void ll_destroy_obj(void* pObj) { pGlobalHead = pTrav->pNextGlobal; assert(numTotalObjs > 0); numTotalObjs--; - char str[1024]; - sprintf(str, "OBJ_STAT Removed %s obj %p that was used %lu times (%lu total objs & %lu %s objs).", string_XGL_OBJECT_TYPE(pTrav->obj.objType), pTrav->obj.pObj, pTrav->obj.numUses, numTotalObjs, numObjs[pTrav->obj.objType], string_XGL_OBJECT_TYPE(pTrav->obj.objType)); - layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pObj, 0, GLVSNAPSHOT_NONE, LAYER_ABBREV_STR, str); +// char str[1024]; +// sprintf(str, "OBJ_STAT Removed %s obj %p that was used %lu times (%lu total objs & %lu %s objs).", string_XGL_OBJECT_TYPE(pTrav->obj.objType), pTrav->obj.pObj, pTrav->obj.numUses, numTotalObjs, numObjs[pTrav->obj.objType], string_XGL_OBJECT_TYPE(pTrav->obj.objType)); +// layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, pObj, 0, GLVSNAPSHOT_NONE, LAYER_ABBREV_STR, str); free(pTrav); return; } diff --git a/layers/glave_snapshot.h b/layers/glave_snapshot.h index 71447ed3..9492b36f 100644 --- a/layers/glave_snapshot.h +++ b/layers/glave_snapshot.h @@ -42,6 +42,7 @@ typedef enum _GLAVE_SNAPSHOT_ERROR GLVSNAPSHOT_GPU_MEM_MAPPED, // Mem object ref'd in cmd buff is still mapped GLVSNAPSHOT_GETGPUINFO_NOT_CALLED, // Gpu Information has not been requested before drawing GLVSNAPSHOT_MEMREFCOUNT_MAX_EXCEEDED, // Number of QueueSubmit memory references exceeds GPU maximum + GLVSNAPSHOT_SNAPSHOT_DATA, // Message being printed is actually snapshot data } GLAVE_SNAPSHOT_ERROR; // Object Status -- used to track state of individual objects -- cgit v1.2.3