public VkResult PresentKHR(VkPresentInfoKHR presentInfo) { var unmanagedSize = presentInfo.SizeOfMarshalIndirect(); var unmanagedArray = new byte[unmanagedSize]; fixed(byte *unmanagedStart = unmanagedArray) { var unmanaged = unmanagedStart; var _queue = Handle; var _pPresentInfo = presentInfo.MarshalIndirect(ref unmanaged); return(Direct.QueuePresentKHR(_queue, _pPresentInfo)); } }