Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
 protected override void ManageRent(ref UniqueComPtr <ID3D12GraphicsCommandList> value, ListCreationParams state)
 {
     _device.ThrowIfFailed(value.Ptr->Reset(state.Allocator, state.Pso));
 }
Esempio n. 4
0
 protected override void ManageRent(ref ComPtr <ID3D12GraphicsCommandList> value, ListCreationParams state)
 {
     value.Get()->Reset(state.Allocator, state.Pso);
 }