24 [[nodiscard]]
static std::expected<Queue, std::string>
Create(
25 ID3D12Device* device, D3D12_COMMAND_LIST_TYPE type, std::wstring_view name,
26 D3D12_COMMAND_QUEUE_PRIORITY priority = D3D12_COMMAND_QUEUE_PRIORITY_NORMAL);
28 [[nodiscard]] ID3D12CommandQueue*
Native()
const {
return m_queue.Get(); }
31 uint64_t
Submit(std::span<ID3D12CommandList* const> lists);
32 uint64_t
Submit(ID3D12CommandList* list) {
return Submit(std::span(&list, 1)); }
35 void Execute(ID3D12CommandList* list)
const;
49 bool WaitCpu(uint64_t value)
const;
bool WaitCpu(uint64_t value) const
ComPtr< ID3D12CommandQueue > m_queue
uint64_t LastSubmitted() const
uint64_t TimestampFrequency() const
bool IsComplete(uint64_t value) const
static std::expected< Queue, std::string > Create(ID3D12Device *device, D3D12_COMMAND_LIST_TYPE type, std::wstring_view name, D3D12_COMMAND_QUEUE_PRIORITY priority=D3D12_COMMAND_QUEUE_PRIORITY_NORMAL)
void Execute(ID3D12CommandList *list) const
void GpuWait(const Queue &other, uint64_t value) const
uint64_t CompletedValue() const
ID3D12CommandQueue * Native() const
uint64_t Submit(std::span< ID3D12CommandList *const > lists)
ComPtr< ID3D12Fence > m_fence
uint64_t Submit(ID3D12CommandList *list)
bool IsDeviceLost() const