layers: Split OT validate/record steps

The DestroyObject function performed validation and state recording.
Split these functions out into separate functions.

Change-Id: I3d38a197983ccd3ad17321c3e9ed35fb34679cbd
diff --git a/scripts/object_tracker_generator.py b/scripts/object_tracker_generator.py
index 04c78c0..fa3c5e1 100644
--- a/scripts/object_tracker_generator.py
+++ b/scripts/object_tracker_generator.py
@@ -735,7 +735,8 @@
                     destroy_obj_code += '%sif (skip) return;\n' % indent
                     destroy_obj_code += '%s{\n' % indent
                     destroy_obj_code += '%s    std::lock_guard<std::mutex> lock(global_lock);\n' % indent
-                    destroy_obj_code += '%s    DestroyObject(%s, %s, %s, pAllocator, %s, %s);\n' % (indent, cmd_info[0].name, cmd_info[param].name, self.GetVulkanObjType(cmd_info[param].type), compatalloc_vuid, nullalloc_vuid)
+                    destroy_obj_code += '%s    ValidateDestroyObject(%s, %s, %s, pAllocator, %s, %s);\n' % (indent, cmd_info[0].name, cmd_info[param].name, self.GetVulkanObjType(cmd_info[param].type), compatalloc_vuid, nullalloc_vuid)
+                    destroy_obj_code += '%s    RecordDestroyObject(%s, %s, %s);\n' % (indent, cmd_info[0].name, cmd_info[param].name, self.GetVulkanObjType(cmd_info[param].type))
                     destroy_obj_code += '%s}\n' % indent
         return object_array, destroy_obj_code
     #