merge changes from other back ends to the PerfQuery functionality
This commit is contained in:
parent
ba6a67a5f1
commit
a5e34dd5cb
|
@ -35,6 +35,8 @@ void PerfQuery::DestroyDeviceObjects()
|
||||||
|
|
||||||
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();
|
||||||
|
@ -58,6 +60,8 @@ 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)
|
||||||
{
|
{
|
||||||
|
@ -74,6 +78,8 @@ 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)
|
||||||
|
@ -98,6 +104,8 @@ 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];
|
||||||
|
|
||||||
DWORD result = 0;
|
DWORD result = 0;
|
||||||
|
@ -118,12 +126,16 @@ 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];
|
||||||
|
@ -148,6 +160,8 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue