mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-14 22:29:15 +01:00
[d3d11] Implemented OMGetRenderTargetsAndUnorderedAccessViews and predication stub
This commit is contained in:
parent
09fd7abde0
commit
3b42011c50
@ -149,7 +149,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
// this->SOSetTargets(0, nullptr, nullptr);
|
// this->SOSetTargets(0, nullptr, nullptr);
|
||||||
|
|
||||||
// this->SetPredication(nullptr, FALSE);
|
this->SetPredication(nullptr, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -226,14 +226,24 @@ namespace dxvk {
|
|||||||
void STDMETHODCALLTYPE D3D11DeviceContext::SetPredication(
|
void STDMETHODCALLTYPE D3D11DeviceContext::SetPredication(
|
||||||
ID3D11Predicate* pPredicate,
|
ID3D11Predicate* pPredicate,
|
||||||
BOOL PredicateValue) {
|
BOOL PredicateValue) {
|
||||||
Logger::err("D3D11DeviceContext::SetPredication: Not implemented");
|
static bool s_errorShown = false;
|
||||||
|
|
||||||
|
if (!std::exchange(s_errorShown, true))
|
||||||
|
Logger::err("D3D11DeviceContext::SetPredication: Stub");
|
||||||
|
|
||||||
|
m_state.pr.predicateObject = static_cast<D3D11Query*>(pPredicate);
|
||||||
|
m_state.pr.predicateValue = PredicateValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void STDMETHODCALLTYPE D3D11DeviceContext::GetPredication(
|
void STDMETHODCALLTYPE D3D11DeviceContext::GetPredication(
|
||||||
ID3D11Predicate** ppPredicate,
|
ID3D11Predicate** ppPredicate,
|
||||||
BOOL* pPredicateValue) {
|
BOOL* pPredicateValue) {
|
||||||
Logger::err("D3D11DeviceContext::GetPredication: Not implemented");
|
if (ppPredicate != nullptr)
|
||||||
|
*ppPredicate = m_state.pr.predicateObject.ref();
|
||||||
|
|
||||||
|
if (pPredicateValue != nullptr)
|
||||||
|
*pPredicateValue = m_state.pr.predicateValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1901,9 +1911,7 @@ namespace dxvk {
|
|||||||
ID3D11DepthStencilView** ppDepthStencilView) {
|
ID3D11DepthStencilView** ppDepthStencilView) {
|
||||||
if (ppRenderTargetViews != nullptr) {
|
if (ppRenderTargetViews != nullptr) {
|
||||||
for (UINT i = 0; i < NumViews; i++)
|
for (UINT i = 0; i < NumViews; i++)
|
||||||
ppRenderTargetViews[i] = i < m_state.om.renderTargetViews.size()
|
ppRenderTargetViews[i] = m_state.om.renderTargetViews[i].ref();
|
||||||
? m_state.om.renderTargetViews.at(i).ref()
|
|
||||||
: nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ppDepthStencilView != nullptr)
|
if (ppDepthStencilView != nullptr)
|
||||||
@ -1918,7 +1926,12 @@ namespace dxvk {
|
|||||||
UINT UAVStartSlot,
|
UINT UAVStartSlot,
|
||||||
UINT NumUAVs,
|
UINT NumUAVs,
|
||||||
ID3D11UnorderedAccessView** ppUnorderedAccessViews) {
|
ID3D11UnorderedAccessView** ppUnorderedAccessViews) {
|
||||||
Logger::err("D3D11DeviceContext::OMGetRenderTargetsAndUnorderedAccessViews: Not implemented");
|
OMGetRenderTargets(NumRTVs, ppRenderTargetViews, ppDepthStencilView);
|
||||||
|
|
||||||
|
if (ppUnorderedAccessViews != nullptr) {
|
||||||
|
for (UINT i = 0; i < NumUAVs; i++)
|
||||||
|
ppUnorderedAccessViews[i] = m_state.ps.unorderedAccessViews[UAVStartSlot + i].ref();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include "d3d11_buffer.h"
|
#include "d3d11_buffer.h"
|
||||||
#include "d3d11_input_layout.h"
|
#include "d3d11_input_layout.h"
|
||||||
|
#include "d3d11_query.h"
|
||||||
#include "d3d11_sampler.h"
|
#include "d3d11_sampler.h"
|
||||||
#include "d3d11_shader.h"
|
#include "d3d11_shader.h"
|
||||||
#include "d3d11_state.h"
|
#include "d3d11_state.h"
|
||||||
@ -132,6 +133,12 @@ namespace dxvk {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct D3D11ContextStatePR {
|
||||||
|
Com<D3D11Query> predicateObject = nullptr;
|
||||||
|
BOOL predicateValue = FALSE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Context state
|
* \brief Context state
|
||||||
*/
|
*/
|
||||||
@ -147,6 +154,7 @@ namespace dxvk {
|
|||||||
D3D11ContextStateOM om;
|
D3D11ContextStateOM om;
|
||||||
D3D11ContextStateRS rs;
|
D3D11ContextStateRS rs;
|
||||||
D3D11ContextStateSO so;
|
D3D11ContextStateSO so;
|
||||||
|
D3D11ContextStatePR pr;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user