1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-19 05: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.predicateValue = PredicateValue;
if (!m_device->features().extConditionalRendering.conditionalRendering)
return;
static bool s_errorShown = false;
EmitCs([
cPredicate = Com<D3D11Query>(predicate),
cValue = PredicateValue
] (DxvkContext* ctx) {
DxvkBufferSlice predSlice;
if (pPredicate && !std::exchange(s_errorShown, true))
Logger::err("D3D11DeviceContext::SetPredication: Stub");
if (cPredicate != nullptr)
predSlice = cPredicate->GetPredicate(ctx);
// TODO: Figure out why this breaks Watch Dogs and crashes War Thunder
// if (!m_device->features().extConditionalRendering.conditionalRendering)
// return;
ctx->setPredicate(predSlice,
cValue ? VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT : 0);
});
// EmitCs([
// 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);
// });
}