protected override ComPtr <ID3D12GraphicsCommandList> Create(ListCreationParams state) { using ComPtr <ID3D12GraphicsCommandList> list = default; Guard.ThrowIfFailed(_device.Get()->CreateCommandList( 0, // TODO: MULTI-GPU state.Type, state.Allocator, state.Pso, list.Guid, ComPtr.GetVoidAddressOf(&list) )); DirectXHelpers.SetObjectName(list.Get(), $"Pooled list #{_listCount++}"); // 'ManageRent' expects closed list Guard.ThrowIfFailed(list.Get()->Close()); return(list.Move()); }
protected override UniqueComPtr <ID3D12GraphicsCommandList> Create(ListCreationParams state) { using UniqueComPtr <ID3D12GraphicsCommandList> list = default; _device.ThrowIfFailed(_device.DevicePointer->CreateCommandList( 0, // TODO: MULTI-GPU state.Type, state.Allocator, state.Pso, list.Iid, (void **)&list )); LogHelper.LogDebug($"New command list allocated (this is the #{_listCount++} list)"); DebugHelpers.SetName(list.Ptr, $"Pooled list #{_listCount}"); // 'ManageRent' expects closed list _device.ThrowIfFailed(list.Ptr->Close()); return(list.Move()); }
protected override void ManageRent(ref UniqueComPtr <ID3D12GraphicsCommandList> value, ListCreationParams state) { _device.ThrowIfFailed(value.Ptr->Reset(state.Allocator, state.Pso)); }
protected override void ManageRent(ref ComPtr <ID3D12GraphicsCommandList> value, ListCreationParams state) { value.Get()->Reset(state.Allocator, state.Pso); }