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;
}