1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-31 14:52:11 +01:00

[d3d11] Disable Predication support

Doesn't work at all in the few games that use it.
This commit is contained in:
Philip Rebohle 2019-04-25 11:55:40 +02:00
parent cd63cebc63
commit 4eff83bdee

View File

@ -279,21 +279,27 @@ namespace dxvk {
m_state.pr.predicateObject = predicate; m_state.pr.predicateObject = predicate;
m_state.pr.predicateValue = PredicateValue; m_state.pr.predicateValue = PredicateValue;
if (!m_device->features().extConditionalRendering.conditionalRendering) static bool s_errorShown = false;
return;
EmitCs([ if (pPredicate && !std::exchange(s_errorShown, true))
cPredicate = Com<D3D11Query>(predicate), Logger::err("D3D11DeviceContext::SetPredication: Stub");
cValue = PredicateValue
] (DxvkContext* ctx) {
DxvkBufferSlice predSlice;
if (cPredicate != nullptr) // TODO: Figure out why this breaks Watch Dogs and crashes War Thunder
predSlice = cPredicate->GetPredicate(ctx); // if (!m_device->features().extConditionalRendering.conditionalRendering)
// return;
ctx->setPredicate(predSlice, // EmitCs([
cValue ? VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT : 0); // cPredicate = Com<D3D11Query>(predicate),
}); // cValue = PredicateValue
// ] (DxvkContext* ctx) {
// DxvkBufferSlice predSlice;
// if (cPredicate != nullptr)
// predSlice = cPredicate->GetPredicate(ctx);
// ctx->setPredicate(predSlice,
// cValue ? VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT : 0);
// });
} }