public CommandPoolCached(Device dev, uint queueFamily, uint maxCacheSize = 32, VkCommandPoolCreateFlag flags = (VkCommandPoolCreateFlag)0) : base(dev, queueFamily, flags | VkCommandPoolCreateFlag.ResetCommandBuffer) { _capacity = maxCacheSize; _available = new ConcurrentQueue <CommandBufferPooledExclusiveUse>(); _unavailable = new List <CommandBufferPooledExclusiveUse>((int)maxCacheSize); _forceRotateTimer = new Timer(RotateFromTimer, this, ForceRotateTimeMs, Timeout.Infinite); }
public CommandPool(Device dev, uint queueFamily, VkCommandPoolCreateFlag flags = 0) { Device = dev; unsafe { var info = new VkCommandPoolCreateInfo() { SType = VkStructureType.CommandPoolCreateInfo, PNext = IntPtr.Zero, Flags = flags, QueueFamilyIndex = queueFamily }; Handle = dev.Handle.CreateCommandPool(&info, Instance.AllocationCallbacks); } }