mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-06 12:40:24 +00:00
Respect ShouldEmulate() in PerfQuery implementations for DX11 and OGL (ugly implem, but the current state of VideoCommon does not allow much better)
This commit is contained in:
parent
c322bedf0e
commit
e60e50a198
@ -28,6 +28,9 @@ PerfQuery::~PerfQuery()
|
|||||||
|
|
||||||
void PerfQuery::EnableQuery(PerfQueryGroup type)
|
void PerfQuery::EnableQuery(PerfQueryGroup type)
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
// Is this sane?
|
// Is this sane?
|
||||||
if (m_query_count > ARRAYSIZE(m_query_buffer) / 2)
|
if (m_query_count > ARRAYSIZE(m_query_buffer) / 2)
|
||||||
WeakFlush();
|
WeakFlush();
|
||||||
@ -53,6 +56,9 @@ void PerfQuery::EnableQuery(PerfQueryGroup type)
|
|||||||
|
|
||||||
void PerfQuery::DisableQuery(PerfQueryGroup type)
|
void PerfQuery::DisableQuery(PerfQueryGroup type)
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
// stop query
|
// stop query
|
||||||
if (type == PQG_ZCOMP_ZCOMPLOC || type == PQG_ZCOMP)
|
if (type == PQG_ZCOMP_ZCOMPLOC || type == PQG_ZCOMP)
|
||||||
{
|
{
|
||||||
@ -69,6 +75,9 @@ void PerfQuery::ResetQuery()
|
|||||||
|
|
||||||
u32 PerfQuery::GetQueryResult(PerfQueryType type)
|
u32 PerfQuery::GetQueryResult(PerfQueryType type)
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return 0;
|
||||||
|
|
||||||
u32 result = 0;
|
u32 result = 0;
|
||||||
|
|
||||||
if (type == PQ_ZCOMP_INPUT_ZCOMPLOC || type == PQ_ZCOMP_OUTPUT_ZCOMPLOC)
|
if (type == PQ_ZCOMP_INPUT_ZCOMPLOC || type == PQ_ZCOMP_OUTPUT_ZCOMPLOC)
|
||||||
@ -93,6 +102,9 @@ u32 PerfQuery::GetQueryResult(PerfQueryType type)
|
|||||||
|
|
||||||
void PerfQuery::FlushOne()
|
void PerfQuery::FlushOne()
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
auto& entry = m_query_buffer[m_query_read_pos];
|
auto& entry = m_query_buffer[m_query_read_pos];
|
||||||
|
|
||||||
UINT64 result = 0;
|
UINT64 result = 0;
|
||||||
@ -113,12 +125,18 @@ void PerfQuery::FlushOne()
|
|||||||
// TODO: could selectively flush things, but I don't think that will do much
|
// TODO: could selectively flush things, but I don't think that will do much
|
||||||
void PerfQuery::FlushResults()
|
void PerfQuery::FlushResults()
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
while (!IsFlushed())
|
while (!IsFlushed())
|
||||||
FlushOne();
|
FlushOne();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PerfQuery::WeakFlush()
|
void PerfQuery::WeakFlush()
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
while (!IsFlushed())
|
while (!IsFlushed())
|
||||||
{
|
{
|
||||||
auto& entry = m_query_buffer[m_query_read_pos];
|
auto& entry = m_query_buffer[m_query_read_pos];
|
||||||
@ -143,6 +161,9 @@ void PerfQuery::WeakFlush()
|
|||||||
|
|
||||||
bool PerfQuery::IsFlushed() const
|
bool PerfQuery::IsFlushed() const
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return true;
|
||||||
|
|
||||||
return 0 == m_query_count;
|
return 0 == m_query_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,9 @@ PerfQuery::~PerfQuery()
|
|||||||
|
|
||||||
void PerfQuery::EnableQuery(PerfQueryGroup type)
|
void PerfQuery::EnableQuery(PerfQueryGroup type)
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
// Is this sane?
|
// Is this sane?
|
||||||
if (m_query_count > ARRAYSIZE(m_query_buffer) / 2)
|
if (m_query_count > ARRAYSIZE(m_query_buffer) / 2)
|
||||||
WeakFlush();
|
WeakFlush();
|
||||||
@ -47,6 +50,9 @@ void PerfQuery::EnableQuery(PerfQueryGroup type)
|
|||||||
|
|
||||||
void PerfQuery::DisableQuery(PerfQueryGroup type)
|
void PerfQuery::DisableQuery(PerfQueryGroup type)
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
// stop query
|
// stop query
|
||||||
if (type == PQG_ZCOMP_ZCOMPLOC || type == PQG_ZCOMP)
|
if (type == PQG_ZCOMP_ZCOMPLOC || type == PQG_ZCOMP)
|
||||||
{
|
{
|
||||||
@ -56,11 +62,17 @@ void PerfQuery::DisableQuery(PerfQueryGroup type)
|
|||||||
|
|
||||||
bool PerfQuery::IsFlushed() const
|
bool PerfQuery::IsFlushed() const
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return true;
|
||||||
|
|
||||||
return 0 == m_query_count;
|
return 0 == m_query_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PerfQuery::FlushOne()
|
void PerfQuery::FlushOne()
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
auto& entry = m_query_buffer[m_query_read_pos];
|
auto& entry = m_query_buffer[m_query_read_pos];
|
||||||
|
|
||||||
GLuint result = 0;
|
GLuint result = 0;
|
||||||
@ -76,12 +88,18 @@ void PerfQuery::FlushOne()
|
|||||||
// TODO: could selectively flush things, but I don't think that will do much
|
// TODO: could selectively flush things, but I don't think that will do much
|
||||||
void PerfQuery::FlushResults()
|
void PerfQuery::FlushResults()
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
while (!IsFlushed())
|
while (!IsFlushed())
|
||||||
FlushOne();
|
FlushOne();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PerfQuery::WeakFlush()
|
void PerfQuery::WeakFlush()
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return;
|
||||||
|
|
||||||
while (!IsFlushed())
|
while (!IsFlushed())
|
||||||
{
|
{
|
||||||
auto& entry = m_query_buffer[m_query_read_pos];
|
auto& entry = m_query_buffer[m_query_read_pos];
|
||||||
@ -108,6 +126,9 @@ void PerfQuery::ResetQuery()
|
|||||||
|
|
||||||
u32 PerfQuery::GetQueryResult(PerfQueryType type)
|
u32 PerfQuery::GetQueryResult(PerfQueryType type)
|
||||||
{
|
{
|
||||||
|
if (!ShouldEmulate())
|
||||||
|
return 0;
|
||||||
|
|
||||||
u32 result = 0;
|
u32 result = 0;
|
||||||
|
|
||||||
if (type == PQ_ZCOMP_INPUT_ZCOMPLOC || type == PQ_ZCOMP_OUTPUT_ZCOMPLOC)
|
if (type == PQ_ZCOMP_INPUT_ZCOMPLOC || type == PQ_ZCOMP_OUTPUT_ZCOMPLOC)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user