1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-27 04:54:15 +01:00

[d3d11] Change AllowFlush behaviour

No functional change, just makes it less annoying to use in methods that
can be called from both immediate and deferred contexts-
This commit is contained in:
Philip Rebohle 2025-02-19 00:40:06 +01:00 committed by Philip Rebohle
parent 41ec7b6a02
commit a61c114519

View File

@ -1085,7 +1085,7 @@ namespace dxvk {
DxvkMultisampleState* pMsState,
UINT SampleMask);
template<bool AllowFlush = !IsDeferred, typename Cmd>
template<bool AllowFlush = true, typename Cmd>
void EmitCs(Cmd&& command) {
m_cmdData = nullptr;
@ -1093,14 +1093,14 @@ namespace dxvk {
GetTypedContext()->EmitCsChunk(std::move(m_csChunk));
m_csChunk = AllocCsChunk();
if constexpr (AllowFlush)
if constexpr (!IsDeferred && AllowFlush)
GetTypedContext()->ConsiderFlush(GpuFlushType::ImplicitWeakHint);
m_csChunk->push(command);
}
}
template<typename M, bool AllowFlush = !IsDeferred, typename Cmd, typename... Args>
template<typename M, bool AllowFlush = true, typename Cmd, typename... Args>
M* EmitCsCmd(Cmd&& command, Args&&... args) {
M* data = m_csChunk->pushCmd<M, Cmd, Args...>(
command, std::forward<Args>(args)...);
@ -1109,7 +1109,7 @@ namespace dxvk {
GetTypedContext()->EmitCsChunk(std::move(m_csChunk));
m_csChunk = AllocCsChunk();
if constexpr (AllowFlush)
if constexpr (!IsDeferred && AllowFlush)
GetTypedContext()->ConsiderFlush(GpuFlushType::ImplicitWeakHint);
// We must record this command after the potential