mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-19 05:52:11 +01:00
[d3d11] Enable stall tracking for timestamp queries
Because games are dumb and don't understand that the GPU doesn't work synchronously with the render thread.
This commit is contained in:
parent
d45f5a8d79
commit
2dfdc5ac3b
@ -140,11 +140,13 @@ namespace dxvk {
|
|||||||
cQuery->End(ctx);
|
cQuery->End(ctx);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (unlikely(query->IsEvent())) {
|
if (unlikely(query->TrackStalls())) {
|
||||||
query->NotifyEnd();
|
query->NotifyEnd();
|
||||||
query->IsStalling()
|
|
||||||
? Flush()
|
if (query->IsStalling())
|
||||||
: FlushImplicit(TRUE);
|
Flush();
|
||||||
|
else if (query->IsEvent())
|
||||||
|
FlushImplicit(TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,6 +62,12 @@ namespace dxvk {
|
|||||||
return m_desc.Query == D3D11_QUERY_EVENT;
|
return m_desc.Query == D3D11_QUERY_EVENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TrackStalls() const {
|
||||||
|
return m_desc.Query == D3D11_QUERY_EVENT
|
||||||
|
|| m_desc.Query == D3D11_QUERY_TIMESTAMP
|
||||||
|
|| m_desc.Query == D3D11_QUERY_TIMESTAMP_DISJOINT;
|
||||||
|
}
|
||||||
|
|
||||||
bool IsStalling() const {
|
bool IsStalling() const {
|
||||||
return m_stallFlag;
|
return m_stallFlag;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user