diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index 885a02deb..005e5b601 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -56,7 +56,8 @@ namespace dxvk { || riid == __uuidof(ID3D11DeviceContext) || riid == __uuidof(ID3D11DeviceContext1) || riid == __uuidof(ID3D11DeviceContext2) - || riid == __uuidof(ID3D11DeviceContext3)) { + || riid == __uuidof(ID3D11DeviceContext3) + || riid == __uuidof(ID3D11DeviceContext4)) { *ppvObject = ref(this); return S_OK; } diff --git a/src/d3d11/d3d11_context.h b/src/d3d11/d3d11_context.h index 6c01c57f9..a03e1f969 100644 --- a/src/d3d11/d3d11_context.h +++ b/src/d3d11/d3d11_context.h @@ -17,7 +17,7 @@ namespace dxvk { class D3D11Device; - class D3D11DeviceContext : public D3D11DeviceChild { + class D3D11DeviceContext : public D3D11DeviceChild { friend class D3D11DeviceContextExt; public: diff --git a/src/d3d11/d3d11_context_def.cpp b/src/d3d11/d3d11_context_def.cpp index ba99f4bbc..70c1d39de 100644 --- a/src/d3d11/d3d11_context_def.cpp +++ b/src/d3d11/d3d11_context_def.cpp @@ -46,6 +46,22 @@ namespace dxvk { } + HRESULT STDMETHODCALLTYPE D3D11DeferredContext::Signal( + ID3D11Fence* pFence, + UINT64 Value) { + Logger::err("D3D11: Signal called on a deferred context"); + return DXGI_ERROR_INVALID_CALL; + } + + + HRESULT STDMETHODCALLTYPE D3D11DeferredContext::Wait( + ID3D11Fence* pFence, + UINT64 Value) { + Logger::err("D3D11: Wait called on a deferred context"); + return DXGI_ERROR_INVALID_CALL; + } + + void STDMETHODCALLTYPE D3D11DeferredContext::ExecuteCommandList( ID3D11CommandList* pCommandList, BOOL RestoreContextState) { diff --git a/src/d3d11/d3d11_context_def.h b/src/d3d11/d3d11_context_def.h index fe9354d0e..77b455677 100644 --- a/src/d3d11/d3d11_context_def.h +++ b/src/d3d11/d3d11_context_def.h @@ -46,6 +46,14 @@ namespace dxvk { D3D11_CONTEXT_TYPE ContextType, HANDLE hEvent); + HRESULT STDMETHODCALLTYPE Signal( + ID3D11Fence* pFence, + UINT64 Value); + + HRESULT STDMETHODCALLTYPE Wait( + ID3D11Fence* pFence, + UINT64 Value); + void STDMETHODCALLTYPE ExecuteCommandList( ID3D11CommandList* pCommandList, BOOL RestoreContextState); diff --git a/src/d3d11/d3d11_context_imm.cpp b/src/d3d11/d3d11_context_imm.cpp index 3570b2330..2b699b686 100644 --- a/src/d3d11/d3d11_context_imm.cpp +++ b/src/d3d11/d3d11_context_imm.cpp @@ -140,6 +140,22 @@ namespace dxvk { } + HRESULT STDMETHODCALLTYPE D3D11ImmediateContext::Signal( + ID3D11Fence* pFence, + UINT64 Value) { + Logger::err("D3D11ImmediateContext::Signal: Not implemented"); + return E_NOTIMPL; + } + + + HRESULT STDMETHODCALLTYPE D3D11ImmediateContext::Wait( + ID3D11Fence* pFence, + UINT64 Value) { + Logger::err("D3D11ImmediateContext::Wait: Not implemented"); + return E_NOTIMPL; + } + + void STDMETHODCALLTYPE D3D11ImmediateContext::ExecuteCommandList( ID3D11CommandList* pCommandList, BOOL RestoreContextState) { diff --git a/src/d3d11/d3d11_context_imm.h b/src/d3d11/d3d11_context_imm.h index 10ae16e66..c8a8ce4be 100644 --- a/src/d3d11/d3d11_context_imm.h +++ b/src/d3d11/d3d11_context_imm.h @@ -40,6 +40,14 @@ namespace dxvk { D3D11_CONTEXT_TYPE ContextType, HANDLE hEvent); + HRESULT STDMETHODCALLTYPE Signal( + ID3D11Fence* pFence, + UINT64 Value); + + HRESULT STDMETHODCALLTYPE Wait( + ID3D11Fence* pFence, + UINT64 Value); + void STDMETHODCALLTYPE ExecuteCommandList( ID3D11CommandList* pCommandList, BOOL RestoreContextState);