/// <summary> /// Acquire the performance query capability /// </summary> /// <param name="extendedHandle"> /// The Device handle to extend. /// </param> /// <param name="type"> /// One of the VkPerformanceConfigurationTypeINTEL type of performance /// configuration that will be acquired. /// </param> public static unsafe SharpVk.Intel.PerformanceConfiguration AcquirePerformanceConfiguration(this SharpVk.Device extendedHandle, SharpVk.Intel.PerformanceConfigurationType type) { try { SharpVk.Intel.PerformanceConfiguration result = default(SharpVk.Intel.PerformanceConfiguration); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Intel.PerformanceConfigurationAcquireInfo *marshalledAcquireInfo = default(SharpVk.Interop.Intel.PerformanceConfigurationAcquireInfo *); void *nextPointer = default(void *); SharpVk.Interop.Intel.PerformanceConfiguration marshalledConfiguration = default(SharpVk.Interop.Intel.PerformanceConfiguration); commandCache = extendedHandle.commandCache; marshalledAcquireInfo = (SharpVk.Interop.Intel.PerformanceConfigurationAcquireInfo *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Intel.PerformanceConfigurationAcquireInfo>()); marshalledAcquireInfo->SType = StructureType.PerformanceConfigurationAcquireInfo; marshalledAcquireInfo->Next = nextPointer; marshalledAcquireInfo->Type = type; SharpVk.Interop.Intel.VkDeviceAcquirePerformanceConfigurationDelegate commandDelegate = commandCache.Cache.vkAcquirePerformanceConfigurationINTEL; Result methodResult = commandDelegate(extendedHandle.handle, marshalledAcquireInfo, &marshalledConfiguration); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = new SharpVk.Intel.PerformanceConfiguration(extendedHandle, marshalledConfiguration); return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> /// <param name="pointer"> /// </param> internal unsafe void MarshalTo(SharpVk.Interop.Intel.PerformanceConfigurationAcquireInfo *pointer) { pointer->SType = StructureType.PerformanceConfigurationAcquireInfo; pointer->Next = null; pointer->Type = this.Type; }