diff options
Diffstat (limited to '')
-rw-r--r-- | src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_cmdlist.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_cmdlist.h b/src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_cmdlist.h new file mode 100644 index 00000000..ce207aaf --- /dev/null +++ b/src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_cmdlist.h @@ -0,0 +1,49 @@ +#pragma once + +#include "d3d11_context.h" + +namespace dxvk { + + class D3D11CommandList : public D3D11DeviceChild<ID3D11CommandList> { + + 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); + + void EmitToCsThread( + DxvkCsThread* CsThread); + + private: + + UINT const m_contextFlags; + + std::vector<DxvkCsChunkRef> m_chunks; + std::vector<Com<D3D11Query, false>> m_queries; + + std::atomic<bool> m_submitted = { false }; + std::atomic<bool> m_warned = { false }; + + void MarkSubmitted(); + + }; + +} |