mirror of
https://github.com/wolfpld/tracy
synced 2025-04-29 12:23:53 +00:00
Simplify OpenGL query checks.
This commit is contained in:
parent
9ec6c1e12d
commit
dc992266fd
@ -135,33 +135,16 @@ public:
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
auto start = m_tail;
|
|
||||||
auto end = m_head + QueryCount;
|
|
||||||
auto cnt = ( end - start ) % QueryCount;
|
|
||||||
while( cnt > 1 )
|
|
||||||
{
|
|
||||||
auto mid = start + cnt / 2;
|
|
||||||
GLint available;
|
|
||||||
glGetQueryObjectiv( m_query[mid % QueryCount], GL_QUERY_RESULT_AVAILABLE, &available );
|
|
||||||
if( available )
|
|
||||||
{
|
|
||||||
start = mid;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
end = mid;
|
|
||||||
}
|
|
||||||
cnt = ( end - start ) % QueryCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
start %= QueryCount;
|
|
||||||
|
|
||||||
Magic magic;
|
Magic magic;
|
||||||
auto token = GetToken();
|
auto token = GetToken();
|
||||||
auto& tail = token->get_tail_index();
|
auto& tail = token->get_tail_index();
|
||||||
|
|
||||||
while( m_tail != start )
|
while( m_tail != m_head )
|
||||||
{
|
{
|
||||||
|
GLint available;
|
||||||
|
glGetQueryObjectiv( m_query[m_tail], GL_QUERY_RESULT_AVAILABLE, &available );
|
||||||
|
if( !available ) return;
|
||||||
|
|
||||||
uint64_t time;
|
uint64_t time;
|
||||||
glGetQueryObjectui64v( m_query[m_tail], GL_QUERY_RESULT, &time );
|
glGetQueryObjectui64v( m_query[m_tail], GL_QUERY_RESULT, &time );
|
||||||
|
|
||||||
@ -171,6 +154,7 @@ public:
|
|||||||
MemWrite( &item->gpuTime.queryId, (uint16_t)m_tail );
|
MemWrite( &item->gpuTime.queryId, (uint16_t)m_tail );
|
||||||
MemWrite( &item->gpuTime.context, m_context );
|
MemWrite( &item->gpuTime.context, m_context );
|
||||||
tail.store( magic + 1, std::memory_order_release );
|
tail.store( magic + 1, std::memory_order_release );
|
||||||
|
|
||||||
m_tail = ( m_tail + 1 ) % QueryCount;
|
m_tail = ( m_tail + 1 ) % QueryCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user