/// <summary>
 /// Insert a marker label into a command buffer.
 /// </summary>
 /// <param name="extendedHandle">
 /// The CommandBuffer handle to extend.
 /// </param>
 public static unsafe void DebugMarkerInsert(this SharpVk.CommandBuffer extendedHandle, SharpVk.Multivendor.DebugMarkerMarkerInfo markerInfo)
 {
     try
     {
         CommandCache commandCache = default(CommandCache);
         SharpVk.Interop.Multivendor.DebugMarkerMarkerInfo *marshalledMarkerInfo = default(SharpVk.Interop.Multivendor.DebugMarkerMarkerInfo *);
         commandCache         = extendedHandle.commandCache;
         marshalledMarkerInfo = (SharpVk.Interop.Multivendor.DebugMarkerMarkerInfo *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Multivendor.DebugMarkerMarkerInfo>());
         markerInfo.MarshalTo(marshalledMarkerInfo);
         SharpVk.Interop.Multivendor.VkCommandBufferDebugMarkerInsertDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Multivendor.VkCommandBufferDebugMarkerInsertDelegate>("vkCmdDebugMarkerInsertEXT", "device");
         commandDelegate(extendedHandle.handle, marshalledMarkerInfo);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }