layers: Validation check for CPU_VISIBLE bit set on MapMemory calls
diff --git a/layers/mem_tracker.c b/layers/mem_tracker.c
index a24e1a2..1d1b894 100644
--- a/layers/mem_tracker.c
+++ b/layers/mem_tracker.c
@@ -939,6 +939,12 @@
 XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglMapMemory(XGL_GPU_MEMORY mem, XGL_FLAGS flags, void** ppData)
 {
     // TODO : Track when memory is mapped
+    GLOBAL_MEM_OBJ_NODE *pMemObj = getGlobalMemNode(mem);
+    if ((pMemObj->allocInfo.memProps & XGL_MEMORY_PROPERTY_CPU_VISIBLE_BIT) == 0) {
+        char str[1024];
+        sprintf(str, "Mapping Memory (%p) without XGL_MEMORY_PROPERTY_CPU_VISIBLE_BIT set", (void*)mem);
+        layerCbMsg(XGL_DBG_MSG_ERROR, XGL_VALIDATION_LEVEL_0, mem, 0, MEMTRACK_INVALID_STATE, "MEM", str);
+    }
     XGL_RESULT result = nextTable.MapMemory(mem, flags, ppData);
     return result;
 }