#pragma once #include "d3d11_context.h" namespace dxvk { class D3D11CommandList : public D3D11DeviceChild { public: D3D11CommandList( D3D11Device* pDevice, UINT ContextFlags); ~D3D11CommandList(); HRESULT STDMETHODCALLTYPE QueryInterface( REFIID riid, void** ppvObject) final; UINT STDMETHODCALLTYPE GetContextFlags() final; void AddChunk( DxvkCsChunkRef&& Chunk); void AddQuery( D3D11Query* pQuery); void EmitToCommandList( ID3D11CommandList* pCommandList); uint64_t EmitToCsThread( DxvkCsThread* CsThread); private: UINT const m_contextFlags; std::vector m_chunks; std::vector> m_queries; std::atomic m_submitted = { false }; std::atomic m_warned = { false }; void MarkSubmitted(); }; }