vulkan.h: Memory binding model changes

Non-sparse memory bindings are immutable. Remove unbinding checks,
unbinding before free in demos/tests, and add validation check for
rebinding objects, appropriately renamed memtracker support routines.
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 8bcd30a..0a2d61d 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -63,21 +63,21 @@
 static VkDevice   globalDevice      = NULL;
 
 // Add new queue for this device to map container
-static void addQueueInfo(const VkQueue queue)
+static void add_queue_info(const VkQueue queue)
 {
     MT_QUEUE_INFO* pInfo   = &queueMap[queue];
     pInfo->lastRetiredId   = 0;
     pInfo->lastSubmittedId = 0;
 }
 
-static void deleteQueueInfoList(
+static void delete_queue_info_list(
     void)
 {
     // Process queue list, cleaning up each entry before deleting
     queueMap.clear();
 }
 
-static void addSwapChainInfo(
+static void add_swap_chain_info(
     const VkSwapChainWSI swapChain)
 {
     MT_SWAP_CHAIN_INFO* pInfo = new MT_SWAP_CHAIN_INFO;
@@ -85,14 +85,14 @@
 }
 
 // Add new CBInfo for this cb to map container
-static void addCBInfo(
+static void add_cmd_buf_info(
     const VkCmdBuffer cb)
 {
     cbMap[cb].cmdBuffer = cb;
 }
 
 // Return ptr to Info in CB map, or NULL if not found
-static MT_CB_INFO* getCBInfo(
+static MT_CB_INFO* get_cmd_buf_info(
     const VkCmdBuffer cb)
 {
     unordered_map<VkCmdBuffer, MT_CB_INFO>::iterator item = cbMap.find(cb);
@@ -104,7 +104,7 @@
 }
 
 // Return object info for 'object' or return NULL if no info exists
-static MT_OBJ_INFO* getObjectInfo(
+static MT_OBJ_INFO* get_object_info(
     const VkObject object)
 {
     unordered_map<VkObject, MT_OBJ_INFO>::iterator item = objectMap.find(object);
@@ -115,7 +115,7 @@
     }
 }
 
-static MT_OBJ_INFO* addObjectInfo(
+static MT_OBJ_INFO* add_object_info(
     VkObject         object,
     VkStructureType  sType,
     const void      *pCreateInfo,
@@ -135,7 +135,7 @@
 }
 
 // Add a fence, creating one if necessary to our list of fences/fenceIds
-static uint64_t addFenceInfo(
+static uint64_t add_fence_info(
     VkFence fence,
     VkQueue queue)
 {
@@ -145,7 +145,7 @@
         fenceMap[fence].fenceId = fenceId;
         fenceMap[fence].queue = queue;
         // Validate that fence is in UNSIGNALED state
-        MT_OBJ_INFO* pObjectInfo = getObjectInfo(fence);
+        MT_OBJ_INFO* pObjectInfo = get_object_info(fence);
         if (pObjectInfo != NULL) {
             if (pObjectInfo->create_info.fence_create_info.flags & VK_FENCE_CREATE_SIGNALED_BIT) {
                 char str[1024];
@@ -160,14 +160,14 @@
 }
 
 // Remove a fenceInfo from our list of fences/fenceIds
-static void deleteFenceInfo(
+static void delete_fence_info(
     VkFence fence)
 {
     fenceMap.erase(fence);
 }
 
 // Record information when a fence is known to be signalled
-static void updateFenceTracking(
+static void update_fence_tracking(
     VkFence fence)
 {
     unordered_map<VkFence, MT_FENCE_INFO>::iterator fence_item = fenceMap.find(fence);
@@ -184,7 +184,7 @@
     }
 
     // Update fence state in fenceCreateInfo structure
-    MT_OBJ_INFO* pObjectInfo = getObjectInfo(fence);
+    MT_OBJ_INFO* pObjectInfo = get_object_info(fence);
     if (pObjectInfo != NULL) {
         pObjectInfo->create_info.fence_create_info.flags =
             static_cast<VkFenceCreateFlags>(
@@ -193,7 +193,7 @@
 }
 
 // Helper routine that updates the fence list for a specific queue to all-retired
-static void retireQueueFences(
+static void retire_queue_fences(
     VkQueue queue)
 {
     MT_QUEUE_INFO *pQueueInfo = &queueMap[queue];
@@ -202,7 +202,7 @@
 }
 
 // Helper routine that updates all queues to all-retired
-static void retireDeviceFences(
+static void retire_device_fences(
     VkDevice device)
 {
     // Process each queue for device
@@ -216,7 +216,7 @@
 
 // Return ptr to info in map container containing mem, or NULL if not found
 //  Calls to this function should be wrapped in mutex
-static MT_MEM_OBJ_INFO* getMemObjInfo(
+static MT_MEM_OBJ_INFO* get_mem_obj_info(
     const VkDeviceMemory mem)
 {
     unordered_map<VkDeviceMemory, MT_MEM_OBJ_INFO>::iterator item = memObjMap.find(mem);
@@ -227,7 +227,7 @@
     }
 }
 
-static void addMemObjInfo(
+static void add_mem_obj_info(
     const VkDeviceMemory     mem,
     const VkMemoryAllocInfo *pAllocInfo)
 {
@@ -242,15 +242,15 @@
     memObjMap[mem].mem = mem;
 }
 
-// Find CB Info and add mem binding to list container
-// Find Mem Obj Info and add CB binding to list container
-static bool32_t updateCBBinding(
+// Find CB Info and add mem reference to list container
+// Find Mem Obj Info and add CB reference to list container
+static bool32_t update_cmd_buf_and_mem_references(
     const VkCmdBuffer    cb,
     const VkDeviceMemory mem)
 {
     bool32_t result = VK_TRUE;
     // First update CB binding in MemObj mini CB list
-    MT_MEM_OBJ_INFO* pMemInfo = getMemObjInfo(mem);
+    MT_MEM_OBJ_INFO* pMemInfo = get_mem_obj_info(mem);
     if (!pMemInfo) {
         char str[1024];
         sprintf(str, "Trying to bind mem obj %p to CB %p but no info for that mem obj.\n    "
@@ -274,15 +274,16 @@
             pMemInfo->refCount++;
         }
 
-        // Now update CBInfo's Mem binding list
-        MT_CB_INFO* pCBInfo = getCBInfo(cb);
+        // Now update CBInfo's Mem reference list
+        MT_CB_INFO* pCBInfo = get_cmd_buf_info(cb);
+        // TODO: keep track of all destroyed CBs so we know if this is a stale or simply invalid object
         if (!pCBInfo) {
             char str[1024];
-            sprintf(str, "Trying to bind mem obj %p to CB %p but no info for that CB.    Was it CB incorrectly destroyed?", mem, cb);
+            sprintf(str, "Trying to bind mem obj %p to CB %p but no info for that CB. Was CB incorrectly destroyed?", mem, cb);
             layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cb, 0, MEMTRACK_INVALID_MEM_OBJ, "MEM", str);
             result = VK_FALSE;
         } else {
-            // Search for memory object in cmd buffer's binding list
+            // Search for memory object in cmd buffer's reference list
             bool32_t found  = VK_FALSE;
             if (pCBInfo->pMemObjList.size() > 0) {
                 for (list<VkDeviceMemory>::iterator it = pCBInfo->pMemObjList.begin(); it != pCBInfo->pMemObjList.end(); ++it) {
@@ -302,14 +303,14 @@
 }
 
 // Clear the CB Binding for mem
-//  Calls to this function should be wrapped in mutex
-static void clearCBBinding(
+// Calls to this function should be wrapped in mutex
+static void remove_cmd_buf_and_mem_reference(
     const VkCmdBuffer    cb,
     const VkDeviceMemory mem)
 {
-    MT_MEM_OBJ_INFO* pInfo = getMemObjInfo(mem);
+    MT_MEM_OBJ_INFO* pInfo = get_mem_obj_info(mem);
     // TODO : Having this check is not ideal, really if memInfo was deleted,
-    //   its CB bindings should be cleared and then freeCBBindings wouldn't call
+    //   its CB bindings should be cleared and then clear_cmd_buf_and_mem_references wouldn't call
     //   us here with stale mem objs
     if (pInfo) {
         pInfo->pCmdBufferBindings.remove(cb);
@@ -318,11 +319,11 @@
 }
 
 // Free bindings related to CB
-static bool32_t freeCBBindings(
+static bool32_t clear_cmd_buf_and_mem_references(
     const VkCmdBuffer cb)
 {
     bool32_t result = VK_TRUE;
-    MT_CB_INFO* pCBInfo = getCBInfo(cb);
+    MT_CB_INFO* pCBInfo = get_cmd_buf_info(cb);
     if (!pCBInfo) {
         char str[1024];
         sprintf(str, "Unable to find global CB info %p for deletion", cb);
@@ -332,7 +333,7 @@
         if (pCBInfo->pMemObjList.size() > 0) {
             list<VkDeviceMemory> mem_obj_list = pCBInfo->pMemObjList;
             for (list<VkDeviceMemory>::iterator it=mem_obj_list.begin(); it!=mem_obj_list.end(); ++it) {
-                clearCBBinding(cb, (*it));
+                remove_cmd_buf_and_mem_reference(cb, (*it));
             }
         }
         pCBInfo->pMemObjList.clear();
@@ -342,11 +343,11 @@
 
 // Delete CBInfo from list along with all of it's mini MemObjInfo
 //   and also clear mem references to CB
-static bool32_t deleteCBInfo(
+static bool32_t delete_cmd_buf_info(
     const VkCmdBuffer cb)
 {
     bool32_t result = VK_TRUE;
-    result = freeCBBindings(cb);
+    result = clear_cmd_buf_and_mem_references(cb);
     // Delete the CBInfo info
     if (result == VK_TRUE) {
         cbMap.erase(cb);
@@ -355,11 +356,11 @@
 }
 
 // Delete the entire CB list
-static bool32_t deleteCBInfoList(
+static bool32_t delete_cmd_buf_info_list(
     void)
 {
     for (unordered_map<VkCmdBuffer, MT_CB_INFO>::iterator ii=cbMap.begin(); ii!=cbMap.end(); ++ii) {
-        freeCBBindings((*ii).first);
+        clear_cmd_buf_and_mem_references((*ii).first);
     }
     cbMap.clear();
     return VK_TRUE;
@@ -420,7 +421,7 @@
     const VkCmdBuffer cb)
 {
     bool32_t result = VK_TRUE;
-    MT_CB_INFO* pCBInfo = getCBInfo(cb);
+    MT_CB_INFO* pCBInfo = get_cmd_buf_info(cb);
     if (!pCBInfo) {
         char str[1024];
         sprintf(str, "Unable to find global CB info %p to check for completion", cb);
@@ -446,7 +447,7 @@
 {
     bool32_t result = VK_TRUE;
     // Parse global list to find info w/ mem
-    MT_MEM_OBJ_INFO* pInfo = getMemObjInfo(mem);
+    MT_MEM_OBJ_INFO* pInfo = get_mem_obj_info(mem);
     if (!pInfo) {
         char str[1024];
         sprintf(str, "Couldn't find mem info object for %p\n    Was %p never allocated or previously freed?",
@@ -470,7 +471,7 @@
                 if (VK_TRUE == checkCBCompleted(*it)) {
                     temp = it;
                     ++temp;
-                    freeCBBindings(*it);
+                    clear_cmd_buf_and_mem_references(*it);
                     it = temp;
                 } else {
                     ++it;
@@ -493,18 +494,12 @@
 // 1. Remove ObjectInfo from MemObjInfo list container of obj bindings & free it
 // 2. Decrement refCount for MemObjInfo
 // 3. Clear MemObjInfo ptr from ObjectInfo
-static bool32_t clearObjectBinding(
+static bool32_t clear_object_binding(
     VkObject object)
 {
     bool32_t result = VK_FALSE;
-    MT_OBJ_INFO* pObjInfo = getObjectInfo(object);
-    if (!pObjInfo) {
-        char str[1024];
-        sprintf(str, "Attempting to clear mem binding for object %p: devices, queues, command buffers, "
-                     "shaders and memory objects do not have external memory requirements and it is "
-                     "unneccessary to call bind/unbindObjectMemory on them.", object);
-        layerCbMsg(VK_DBG_MSG_UNKNOWN, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_INVALID_OBJECT, "MEM", str);
-    } else {
+    MT_OBJ_INFO* pObjInfo = get_object_info(object);
+    if (pObjInfo) {
         if (!pObjInfo->pMemObjInfo || pObjInfo->pMemObjInfo->pObjBindings.size() <= 0) {
             char str[1024];
             sprintf(str, "Attempting to clear mem binding on obj %p but it has no binding.", (void*)object);
@@ -532,31 +527,88 @@
     return result;
 }
 
-// For NULL mem case, clear any previous binding Else...
+// For NULL mem case, output warning
 // Make sure given object is in global object map
-//  IF a previous binding existed, clear it
-//  Add reference from objectInfo to memoryInfo
+//  IF a previous binding existed, output validation error
+//  Otherwise, add reference from objectInfo to memoryInfo
 //  Add reference off of objInfo
 // Return VK_TRUE if addition is successful, VK_FALSE otherwise
-static bool32_t updateObjectBinding(
+static bool32_t set_object_binding(
     VkObject       object,
     VkDeviceMemory mem)
 {
     bool32_t result = VK_FALSE;
     // Handle NULL case separately, just clear previous binding & decrement reference
     if (mem == VK_NULL_HANDLE) {
-        clearObjectBinding(object);
-        result = VK_TRUE;
+        char str[1024];
+        sprintf(str, "Attempting to Bind Obj(%p) to NULL", (void*)object);
+        layerCbMsg(VK_DBG_MSG_WARNING, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_INTERNAL_ERROR, "MEM", str);
+        return VK_TRUE;
     } else {
         char str[1024];
-        MT_OBJ_INFO* pObjInfo = getObjectInfo(object);
+        MT_OBJ_INFO* pObjInfo = get_object_info(object);
         if (!pObjInfo) {
             sprintf(str, "Attempting to update Binding of Obj(%p) that's not in global list()", (void*)object);
             layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_INTERNAL_ERROR, "MEM", str);
             return VK_FALSE;
         }
         // non-null case so should have real mem obj
-        MT_MEM_OBJ_INFO* pInfo = getMemObjInfo(mem);
+        MT_MEM_OBJ_INFO* pInfo = get_mem_obj_info(mem);
+        if (!pInfo) {
+            sprintf(str, "While trying to bind mem for obj %p, couldn't find info for mem obj %p", (void*)object, (void*)mem);
+            layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, mem, 0, MEMTRACK_INVALID_MEM_OBJ, "MEM", str);
+            return VK_FALSE;
+        } else {
+            if (pObjInfo->pMemObjInfo != NULL) {
+                sprintf(str, "Attempting to bind memory (%p) to object (%p) which has already been bound to mem object %p",
+                    (void*)mem, (void*)object, (void*)pObjInfo->pMemObjInfo->mem);
+                layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, mem, 0, MEMTRACK_REBIND_OBJECT, "MEM", str);
+                return VK_FALSE;
+            }
+            else {
+                pInfo->pObjBindings.push_front(object);
+                pInfo->refCount++;
+
+                // For image objects, make sure default memory state is correctly set
+                // TODO : What's the best/correct way to handle this?
+                if (VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO == pObjInfo->sType) {
+                    if (pObjInfo->create_info.image_create_info.usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
+                                                                         VK_IMAGE_USAGE_DEPTH_STENCIL_BIT)) {
+                        // TODO::  More memory state transition stuff.
+                    }
+                }
+                pObjInfo->pMemObjInfo = pInfo;
+            }
+        }
+    }
+    return VK_TRUE;
+}
+
+// For NULL mem case, clear any previous binding Else...
+// Make sure given object is in global object map
+//  IF a previous binding existed, update binding
+//  Add reference from objectInfo to memoryInfo
+//  Add reference off of objInfo
+// Return VK_TRUE if addition is successful, VK_FALSE otherwise
+static bool32_t set_sparse_buffer_binding(
+    VkObject       object,
+    VkDeviceMemory mem)
+{
+    bool32_t result = VK_FALSE;
+    // Handle NULL case separately, just clear previous binding & decrement reference
+    if (mem == VK_NULL_HANDLE) {
+        clear_object_binding(object);
+        return VK_TRUE;
+    } else {
+        char str[1024];
+        MT_OBJ_INFO* pObjInfo = get_object_info(object);
+        if (!pObjInfo) {
+            sprintf(str, "Attempting to update Binding of Obj(%p) that's not in global list()", (void*)object);
+            layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_INTERNAL_ERROR, "MEM", str);
+            return VK_FALSE;
+        }
+        // non-null case so should have real mem obj
+        MT_MEM_OBJ_INFO* pInfo = get_mem_obj_info(mem);
         if (!pInfo) {
             sprintf(str, "While trying to bind mem for obj %p, couldn't find info for mem obj %p", (void*)object, (void*)mem);
             layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, mem, 0, MEMTRACK_INVALID_MEM_OBJ, "MEM", str);
@@ -579,18 +631,10 @@
             }
 
             if (pObjInfo->pMemObjInfo) {
-                clearObjectBinding(object); // Need to clear the previous object binding before setting new binding
+                clear_object_binding(object); // Need to clear the previous object binding before setting new binding
                 sprintf(str, "Updating memory binding for object %p from mem obj %p to %p", object, pObjInfo->pMemObjInfo->mem, mem);
                 layerCbMsg(VK_DBG_MSG_UNKNOWN, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_NONE, "MEM", str);
             }
-            // For image objects, make sure default memory state is correctly set
-            // TODO : What's the best/correct way to handle this?
-            if (VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO == pObjInfo->sType) {
-                if (pObjInfo->create_info.image_create_info.usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
-                                                                     VK_IMAGE_USAGE_DEPTH_STENCIL_BIT)) {
-                    // TODO::  More memory state transition stuff.
-                }
-            }
             pObjInfo->pMemObjInfo = pInfo;
         }
     }
@@ -598,7 +642,7 @@
 }
 
 // Print details of global Obj tracking list
-static void printObjList(
+static void print_object_list(
     void)
 {
     MT_OBJ_INFO* pInfo = NULL;
@@ -618,11 +662,11 @@
 }
 
 // For given Object, get 'mem' obj that it's bound to or NULL if no binding
-static VkDeviceMemory getMemBindingFromObject(
+static VkDeviceMemory get_mem_binding_from_object(
     const VkObject object)
 {
     VkDeviceMemory mem = NULL;
-    MT_OBJ_INFO* pObjInfo = getObjectInfo(object);
+    MT_OBJ_INFO* pObjInfo = get_object_info(object);
     if (pObjInfo) {
         if (pObjInfo->pMemObjInfo) {
             mem = pObjInfo->pMemObjInfo->mem;
@@ -630,19 +674,19 @@
             char str[1024];
             sprintf(str, "Trying to get mem binding for object %p but object has no mem binding", (void*)object);
             layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_MISSING_MEM_BINDINGS, "MEM", str);
-            printObjList();
+            print_object_list();
         }
     } else {
         char str[1024];
         sprintf(str, "Trying to get mem binding for object %p but no such object in global list", (void*)object);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_INVALID_OBJECT, "MEM", str);
-        printObjList();
+        print_object_list();
     }
     return mem;
 }
 
 // Print details of MemObjInfo list
-static void printMemList(
+static void print_mem_list(
     void)
 {
     MT_MEM_OBJ_INFO* pInfo = NULL;
@@ -786,10 +830,10 @@
     sprintf(str, "Printing List details prior to vkDestroyDevice()");
     loader_platform_thread_lock_mutex(&globalLock);
     layerCbMsg(VK_DBG_MSG_UNKNOWN, VK_VALIDATION_LEVEL_0, device, 0, MEMTRACK_NONE, "MEM", str);
-    printMemList();
+    print_mem_list();
     printCBList();
-    printObjList();
-    if (VK_FALSE == deleteCBInfoList()) {
+    print_object_list();
+    if (VK_FALSE == delete_cmd_buf_info_list()) {
         sprintf(str, "Issue deleting global CB list in vkDestroyDevice()");
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, device, 0, MEMTRACK_INTERNAL_ERROR, "MEM", str);
     }
@@ -808,7 +852,7 @@
     }
 
     // Queues persist until device is destroyed
-    deleteQueueInfoList();
+    delete_queue_info_list();
 
     loader_platform_thread_unlock_mutex(&globalLock);
     VkResult result = nextTable.DestroyDevice(device);
@@ -905,7 +949,7 @@
     VkResult result = nextTable.GetDeviceQueue(device, queueNodeIndex, queueIndex, pQueue);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addQueueInfo(*pQueue);
+        add_queue_info(*pQueue);
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -920,12 +964,12 @@
     loader_platform_thread_lock_mutex(&globalLock);
     // TODO : Need to track fence and clear mem references when fence clears
     MT_CB_INFO* pCBInfo = NULL;
-    uint64_t    fenceId = addFenceInfo(fence, queue);
+    uint64_t    fenceId = add_fence_info(fence, queue);
 
-    printMemList();
+    print_mem_list();
     printCBList();
     for (uint32_t i = 0; i < cmdBufferCount; i++) {
-        pCBInfo = getCBInfo(pCmdBuffers[i]);
+        pCBInfo = get_cmd_buf_info(pCmdBuffers[i]);
         pCBInfo->fenceId = fenceId;
         pCBInfo->lastSubmittedFence = fence;
         pCBInfo->lastSubmittedQueue = queue;
@@ -944,8 +988,8 @@
     VkResult result = nextTable.AllocMemory(device, pAllocInfo, pMem);
     // TODO : Track allocations and overall size here
     loader_platform_thread_lock_mutex(&globalLock);
-    addMemObjInfo(*pMem, pAllocInfo);
-    printMemList();
+    add_mem_obj_info(*pMem, pAllocInfo);
+    print_mem_list();
     loader_platform_thread_unlock_mutex(&globalLock);
     return result;
 }
@@ -960,8 +1004,8 @@
      */
     loader_platform_thread_lock_mutex(&globalLock);
     bool32_t noerror = freeMemObjInfo(mem, false);
-    printMemList();
-    printObjList();
+    print_mem_list();
+    print_object_list();
     printCBList();
     // Output an warning message for proper error/warning handling
     if (noerror == VK_FALSE) {
@@ -995,7 +1039,7 @@
 {
     // TODO : Track when memory is mapped
     loader_platform_thread_lock_mutex(&globalLock);
-    MT_MEM_OBJ_INFO *pMemObj = getMemObjInfo(mem);
+    MT_MEM_OBJ_INFO *pMemObj = get_mem_obj_info(mem);
     if ((pMemObj->allocInfo.memProps & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) {
         char str[1024];
         sprintf(str, "Mapping Memory without VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set: mem obj %p", (void*)mem);
@@ -1070,10 +1114,10 @@
     // First check if this is a CmdBuffer or fence
     switch (objType) {
     case VK_OBJECT_TYPE_COMMAND_BUFFER:
-        deleteCBInfo((VkCmdBuffer)object);
+        delete_cmd_buf_info((VkCmdBuffer)object);
         break;
     case VK_OBJECT_TYPE_FENCE:
-        deleteFenceInfo((VkFence)object);
+        delete_fence_info((VkFence)object);
         break;
     default:
         break;
@@ -1085,20 +1129,12 @@
             // Wsi allocated Memory is tied to image object so clear the binding and free that memory automatically
             if (0 == pDelInfo->pMemObjInfo->allocInfo.allocationSize) { // Wsi allocated memory has NULL allocInfo w/ 0 size
                 VkDeviceMemory memToFree = pDelInfo->pMemObjInfo->mem;
-                clearObjectBinding(object);
+                clear_object_binding(object);
                 freeMemObjInfo(memToFree, true);
             }
             else {
-                #if 0
-                char str[1024];
-                sprintf(str, "Destroying obj %p that is still bound to memory object %p\nYou should first clear binding "
-                             "by calling vkBindObjectMemory(queue, %p, 0, VK_NULL_HANDLE, 0)",
-                             object, (void*)pDelInfo->pMemObjInfo->mem, object);
-                layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_DESTROY_OBJECT_ERROR, "MEM", str);
-                #endif
-                // From the spec : If an object has previous memory binding, it is required to unbind memory
-                // from an API object before it is destroyed.
-                clearObjectBinding(object);
+                // Remove this object from memory object's reference list and decrement its ref counter
+                clear_object_binding(object);
             }
         }
         objectMap.erase(item);
@@ -1135,13 +1171,9 @@
     VkResult result = nextTable.BindObjectMemory(device, objType, object, mem, offset);
     loader_platform_thread_lock_mutex(&globalLock);
     // Track objects tied to memory
-    if (VK_FALSE == updateObjectBinding(object, mem)) {
-        char str[1024];
-        sprintf(str, "Unable to set object %p binding to mem obj %p", (void*)object, (void*)mem);
-        layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, object, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
-    }
-    printObjList();
-    printMemList();
+    set_object_binding(object, mem);
+    print_object_list();
+    print_mem_list();
     loader_platform_thread_unlock_mutex(&globalLock);
     return result;
 }
@@ -1157,13 +1189,13 @@
     VkResult result = nextTable.QueueBindSparseBufferMemory(queue, buffer, rangeOffset, rangeSize, mem, memOffset);
     loader_platform_thread_lock_mutex(&globalLock);
     // Track objects tied to memory
-    if (VK_FALSE == updateObjectBinding(buffer, mem)) {
+    if (VK_FALSE == set_sparse_buffer_binding(buffer, mem)) {
         char str[1024];
         sprintf(str, "Unable to set object %p binding to mem obj %p", (void*)buffer, (void*)mem);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, buffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
     }
-    printObjList();
-    printMemList();
+    print_object_list();
+    print_mem_list();
     loader_platform_thread_unlock_mutex(&globalLock);
     return result;
 }
@@ -1176,7 +1208,7 @@
     VkResult result = nextTable.CreateFence(device, pCreateInfo, pFence);
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pFence, pCreateInfo->sType, pCreateInfo, sizeof(VkFenceCreateInfo), "fence");
+        add_object_info(*pFence, pCreateInfo->sType, pCreateInfo, sizeof(VkFenceCreateInfo), "fence");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1192,7 +1224,7 @@
         loader_platform_thread_lock_mutex(&globalLock);
         // Reset fence state in fenceCreateInfo structure
         for (uint32_t i = 0; i < fenceCount; i++) {
-            MT_OBJ_INFO* pObjectInfo = getObjectInfo(pFences[i]);
+            MT_OBJ_INFO* pObjectInfo = get_object_info(pFences[i]);
             if (pObjectInfo != NULL) {
                 // Validate fences in SIGNALED state
                 if (!(pObjectInfo->create_info.fence_create_info.flags & VK_FENCE_CREATE_SIGNALED_BIT)) {
@@ -1219,7 +1251,7 @@
     VkResult result = nextTable.GetFenceStatus(device, fence);
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        updateFenceTracking(fence);
+        update_fence_tracking(fence);
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1234,7 +1266,7 @@
 {
     // Verify fence status of submitted fences
     for(uint32_t i = 0; i < fenceCount; i++) {
-        MT_OBJ_INFO* pObjectInfo = getObjectInfo(pFences[i]);
+        MT_OBJ_INFO* pObjectInfo = get_object_info(pFences[i]);
         if (pObjectInfo != NULL) {
             if (pObjectInfo->create_info.fence_create_info.flags & VK_FENCE_CREATE_SIGNALED_BIT) {
                 char str[1024];
@@ -1250,7 +1282,7 @@
     if (VK_SUCCESS == result) {
         if (waitAll || fenceCount == 1) { // Clear all the fences
             for(uint32_t i = 0; i < fenceCount; i++) {
-                updateFenceTracking(pFences[i]);
+                update_fence_tracking(pFences[i]);
             }
         }
     }
@@ -1264,7 +1296,7 @@
     VkResult result = nextTable.QueueWaitIdle(queue);
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        retireQueueFences(queue);
+        retire_queue_fences(queue);
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1276,7 +1308,7 @@
     VkResult result = nextTable.DeviceWaitIdle(device);
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        retireDeviceFences(device);
+        retire_device_fences(device);
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1290,7 +1322,7 @@
     VkResult result = nextTable.CreateEvent(device, pCreateInfo, pEvent);
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pEvent, pCreateInfo->sType, pCreateInfo, sizeof(VkEventCreateInfo), "event");
+        add_object_info(*pEvent, pCreateInfo->sType, pCreateInfo, sizeof(VkEventCreateInfo), "event");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1304,7 +1336,7 @@
     VkResult result = nextTable.CreateQueryPool(device, pCreateInfo, pQueryPool);
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pQueryPool, pCreateInfo->sType, pCreateInfo, sizeof(VkQueryPoolCreateInfo), "query_pool");
+        add_object_info(*pQueryPool, pCreateInfo->sType, pCreateInfo, sizeof(VkQueryPoolCreateInfo), "query_pool");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1318,7 +1350,7 @@
     VkResult result = nextTable.CreateBuffer(device, pCreateInfo, pBuffer);
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pBuffer, pCreateInfo->sType, pCreateInfo, sizeof(VkBufferCreateInfo), "buffer");
+        add_object_info(*pBuffer, pCreateInfo->sType, pCreateInfo, sizeof(VkBufferCreateInfo), "buffer");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1332,7 +1364,7 @@
     VkResult result = nextTable.CreateBufferView(device, pCreateInfo, pView);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pView, pCreateInfo->sType, pCreateInfo, sizeof(VkBufferViewCreateInfo), "buffer_view");
+        add_object_info(*pView, pCreateInfo->sType, pCreateInfo, sizeof(VkBufferViewCreateInfo), "buffer_view");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1346,7 +1378,7 @@
     VkResult result = nextTable.CreateImage(device, pCreateInfo, pImage);
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pImage, pCreateInfo->sType, pCreateInfo, sizeof(VkImageCreateInfo), "image");
+        add_object_info(*pImage, pCreateInfo->sType, pCreateInfo, sizeof(VkImageCreateInfo), "image");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1360,7 +1392,7 @@
     VkResult result = nextTable.CreateImageView(device, pCreateInfo, pView);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pView, pCreateInfo->sType, pCreateInfo, sizeof(VkImageViewCreateInfo), "image_view");
+        add_object_info(*pView, pCreateInfo->sType, pCreateInfo, sizeof(VkImageViewCreateInfo), "image_view");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1374,7 +1406,7 @@
     VkResult result = nextTable.CreateColorAttachmentView(device, pCreateInfo, pView);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pView, pCreateInfo->sType, pCreateInfo, sizeof(VkColorAttachmentViewCreateInfo), "color_attachment_view");
+        add_object_info(*pView, pCreateInfo->sType, pCreateInfo, sizeof(VkColorAttachmentViewCreateInfo), "color_attachment_view");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1388,7 +1420,7 @@
     VkResult result = nextTable.CreateDepthStencilView(device, pCreateInfo, pView);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pView, pCreateInfo->sType, pCreateInfo, sizeof(VkDepthStencilViewCreateInfo), "ds_view");
+        add_object_info(*pView, pCreateInfo->sType, pCreateInfo, sizeof(VkDepthStencilViewCreateInfo), "ds_view");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1411,7 +1443,7 @@
     VkResult result = nextTable.CreateGraphicsPipeline(device, pCreateInfo, pPipeline);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pPipeline, pCreateInfo->sType, pCreateInfo, sizeof(VkGraphicsPipelineCreateInfo), "graphics_pipeline");
+        add_object_info(*pPipeline, pCreateInfo->sType, pCreateInfo, sizeof(VkGraphicsPipelineCreateInfo), "graphics_pipeline");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1426,7 +1458,7 @@
     VkResult result = nextTable.CreateGraphicsPipelineDerivative(device, pCreateInfo, basePipeline, pPipeline);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pPipeline, pCreateInfo->sType, pCreateInfo, sizeof(VkGraphicsPipelineCreateInfo), "graphics_pipeline");
+        add_object_info(*pPipeline, pCreateInfo->sType, pCreateInfo, sizeof(VkGraphicsPipelineCreateInfo), "graphics_pipeline");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1440,7 +1472,7 @@
     VkResult result = nextTable.CreateComputePipeline(device, pCreateInfo, pPipeline);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pPipeline, pCreateInfo->sType, pCreateInfo, sizeof(VkComputePipelineCreateInfo), "compute_pipeline");
+        add_object_info(*pPipeline, pCreateInfo->sType, pCreateInfo, sizeof(VkComputePipelineCreateInfo), "compute_pipeline");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1454,7 +1486,7 @@
     VkResult result = nextTable.CreateSampler(device, pCreateInfo, pSampler);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pSampler, pCreateInfo->sType, pCreateInfo, sizeof(VkSamplerCreateInfo), "sampler");
+        add_object_info(*pSampler, pCreateInfo->sType, pCreateInfo, sizeof(VkSamplerCreateInfo), "sampler");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1468,7 +1500,7 @@
     VkResult result = nextTable.CreateDynamicViewportState(device, pCreateInfo, pState);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pState, pCreateInfo->sType, pCreateInfo, sizeof(VkDynamicVpStateCreateInfo), "viewport_state");
+        add_object_info(*pState, pCreateInfo->sType, pCreateInfo, sizeof(VkDynamicVpStateCreateInfo), "viewport_state");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1482,7 +1514,7 @@
     VkResult result = nextTable.CreateDynamicRasterState(device, pCreateInfo, pState);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pState, pCreateInfo->sType, pCreateInfo, sizeof(VkDynamicRsStateCreateInfo), "raster_state");
+        add_object_info(*pState, pCreateInfo->sType, pCreateInfo, sizeof(VkDynamicRsStateCreateInfo), "raster_state");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1496,7 +1528,7 @@
     VkResult result = nextTable.CreateDynamicColorBlendState(device, pCreateInfo, pState);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pState, pCreateInfo->sType, pCreateInfo, sizeof(VkDynamicCbStateCreateInfo), "cb_state");
+        add_object_info(*pState, pCreateInfo->sType, pCreateInfo, sizeof(VkDynamicCbStateCreateInfo), "cb_state");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1510,7 +1542,7 @@
     VkResult result = nextTable.CreateDynamicDepthStencilState(device, pCreateInfo, pState);
     if (result == VK_SUCCESS) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addObjectInfo(*pState, pCreateInfo->sType, pCreateInfo, sizeof(VkDynamicDsStateCreateInfo), "ds_state");
+        add_object_info(*pState, pCreateInfo->sType, pCreateInfo, sizeof(VkDynamicDsStateCreateInfo), "ds_state");
         loader_platform_thread_unlock_mutex(&globalLock);
     }
     return result;
@@ -1525,7 +1557,7 @@
     // At time of cmd buffer creation, create global cmd buffer info for the returned cmd buffer
     loader_platform_thread_lock_mutex(&globalLock);
     if (*pCmdBuffer)
-        addCBInfo(*pCmdBuffer);
+        add_cmd_buf_info(*pCmdBuffer);
     printCBList();
     loader_platform_thread_unlock_mutex(&globalLock);
     return result;
@@ -1546,7 +1578,7 @@
     loader_platform_thread_unlock_mutex(&globalLock);
     VkResult result = nextTable.BeginCommandBuffer(cmdBuffer, pBeginInfo);
     loader_platform_thread_lock_mutex(&globalLock);
-    freeCBBindings(cmdBuffer);
+    clear_cmd_buf_and_mem_references(cmdBuffer);
     loader_platform_thread_unlock_mutex(&globalLock);
     return result;
 }
@@ -1571,7 +1603,7 @@
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_RESET_CB_WHILE_IN_FLIGHT, "MEM", str);
     }
     // Clear memory references as this point.
-    freeCBBindings(cmdBuffer);
+    clear_cmd_buf_and_mem_references(cmdBuffer);
     loader_platform_thread_unlock_mutex(&globalLock);
     VkResult result = nextTable.ResetCommandBuffer(cmdBuffer);
     return result;
@@ -1586,7 +1618,7 @@
 #if 0
     // TODO : If memory bound to pipeline, then need to tie that mem to cmdBuffer
     if (getPipeline(pipeline)) {
-        MT_CB_INFO *pCBInfo = getCBInfo(cmdBuffer);
+        MT_CB_INFO *pCBInfo = get_cmd_buf_info(cmdBuffer);
         if (pCBInfo) {
             pCBInfo->pipelines[pipelineBindPoint] = pipeline;
         } else {
@@ -1611,13 +1643,13 @@
 {
     MT_OBJ_INFO *pObjInfo;
     loader_platform_thread_lock_mutex(&globalLock);
-    MT_CB_INFO *pCmdBuf = getCBInfo(cmdBuffer);
+    MT_CB_INFO *pCmdBuf = get_cmd_buf_info(cmdBuffer);
     if (!pCmdBuf) {
         char str[1024];
         sprintf(str, "Unable to find command buffer object %p, was it ever created?", (void*)cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_INVALID_CB, "DD", str);
     }
-    pObjInfo = getObjectInfo(state);
+    pObjInfo = get_object_info(state);
     if (!pObjInfo) {
         char str[1024];
         sprintf(str, "Unable to find dynamic state object %p, was it ever created?", (void*)state);
@@ -1668,8 +1700,8 @@
      uint32_t     stride)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(buffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(buffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdDrawIndirect() call unable to update binding of buffer %p to cmdBuffer %p", buffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1686,8 +1718,8 @@
     uint32_t     stride)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(buffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(buffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdDrawIndexedIndirect() call unable to update binding of buffer %p to cmdBuffer %p", buffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1702,8 +1734,8 @@
     VkDeviceSize offset)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(buffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(buffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdDispatchIndirect() call unable to update binding of buffer %p to cmdBuffer %p", buffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1720,14 +1752,14 @@
     const VkBufferCopy *pRegions)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(srcBuffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(srcBuffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdCopyBuffer() call unable to update binding of srcBuffer %p to cmdBuffer %p", srcBuffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
     }
-    mem = getMemBindingFromObject(destBuffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    mem = get_mem_binding_from_object(destBuffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdCopyBuffer() call unable to update binding of destBuffer %p to cmdBuffer %p", destBuffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1773,15 +1805,15 @@
 {
     // TODO : Track this
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(destImage);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(destImage);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdCopyMemoryToImage() call unable to update binding of destImage buffer %p to cmdBuffer %p", destImage, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
     }
 
-    mem = getMemBindingFromObject(srcBuffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    mem = get_mem_binding_from_object(srcBuffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdCopyMemoryToImage() call unable to update binding of srcBuffer %p to cmdBuffer %p", srcBuffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1800,14 +1832,14 @@
 {
     // TODO : Track this
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(srcImage);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(srcImage);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdCopyImageToMemory() call unable to update binding of srcImage buffer %p to cmdBuffer %p", srcImage, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
     }
-    mem = getMemBindingFromObject(destBuffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    mem = get_mem_binding_from_object(destBuffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdCopyImageToMemory() call unable to update binding of destBuffer %p to cmdBuffer %p", destBuffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1824,8 +1856,8 @@
     const uint32_t *pData)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(destBuffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(destBuffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdUpdateMemory() call unable to update binding of destBuffer %p to cmdBuffer %p", destBuffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1842,8 +1874,8 @@
     uint32_t     data)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(destBuffer);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(destBuffer);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdFillMemory() call unable to update binding of destBuffer %p to cmdBuffer %p", destBuffer, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1862,8 +1894,8 @@
 {
     // TODO : Verify memory is in VK_IMAGE_STATE_CLEAR state
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(image);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(image);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdClearColorImage() call unable to update binding of image buffer %p to cmdBuffer %p", image, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1883,8 +1915,8 @@
 {
     // TODO : Verify memory is in VK_IMAGE_STATE_CLEAR state
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(image);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(image);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdClearDepthStencil() call unable to update binding of image buffer %p to cmdBuffer %p", image, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1903,14 +1935,14 @@
     const VkImageResolve *pRegions)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(srcImage);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(srcImage);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdResolveImage() call unable to update binding of srcImage buffer %p to cmdBuffer %p", srcImage, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
     }
-    mem = getMemBindingFromObject(destImage);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    mem = get_mem_binding_from_object(destImage);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdResolveImage() call unable to update binding of destImage buffer %p to cmdBuffer %p", destImage, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1926,8 +1958,8 @@
     VkFlags     flags)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(queryPool);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(queryPool);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdBeginQuery() call unable to update binding of queryPool buffer %p to cmdBuffer %p", queryPool, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1942,8 +1974,8 @@
     uint32_t    slot)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(queryPool);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(queryPool);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdEndQuery() call unable to update binding of queryPool buffer %p to cmdBuffer %p", queryPool, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -1959,8 +1991,8 @@
     uint32_t    queryCount)
 {
     loader_platform_thread_lock_mutex(&globalLock);
-    VkDeviceMemory mem = getMemBindingFromObject(queryPool);
-    if (VK_FALSE == updateCBBinding(cmdBuffer, mem)) {
+    VkDeviceMemory mem = get_mem_binding_from_object(queryPool);
+    if (VK_FALSE == update_cmd_buf_and_mem_references(cmdBuffer, mem)) {
         char str[1024];
         sprintf(str, "In vkCmdResetQueryPool() call unable to update binding of queryPool buffer %p to cmdBuffer %p", queryPool, cmdBuffer);
         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, cmdBuffer, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);
@@ -2028,7 +2060,7 @@
 
     if (VK_SUCCESS == result) {
         loader_platform_thread_lock_mutex(&globalLock);
-        addSwapChainInfo(*pSwapChain);
+        add_swap_chain_info(*pSwapChain);
         loader_platform_thread_unlock_mutex(&globalLock);
     }
 
@@ -2046,7 +2078,7 @@
         if (pInfo->images.size() > 0) {
             for (std::vector<VkSwapChainImageInfoWSI>::const_iterator it = pInfo->images.begin();
                  it != pInfo->images.end(); it++) {
-                clearObjectBinding(it->image);
+                clear_object_binding(it->image);
                 freeMemObjInfo(it->memory, true);
 
                 objectMap.erase(it->image);
@@ -2082,9 +2114,9 @@
                 for (std::vector<VkSwapChainImageInfoWSI>::const_iterator it = pInfo->images.begin();
                      it != pInfo->images.end(); it++) {
                     // Add image object, then insert the new Mem Object and then bind it to created image
-                    addObjectInfo(it->image, VK_STRUCTURE_TYPE_MAX_ENUM, &pInfo->createInfo, sizeof(pInfo->createInfo), "persistent_image");
-                    addMemObjInfo(it->memory, NULL);
-                    if (VK_FALSE == updateObjectBinding(it->image, it->memory)) {
+                    add_object_info(it->image, VK_STRUCTURE_TYPE_MAX_ENUM, &pInfo->createInfo, sizeof(pInfo->createInfo), "persistent_image");
+                    add_mem_obj_info(it->memory, NULL);
+                    if (VK_FALSE == set_object_binding(it->image, it->memory)) {
                         char str[1024];
                         sprintf(str, "In vkGetSwapChainInfoWSI(), unable to set image %p binding to mem obj %p", (void*)it->image, (void*)it->memory);
                         layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, it->image, 0, MEMTRACK_MEMORY_BINDING_ERROR, "MEM", str);