Sleep when waiting for sync
This commit is contained in:
parent
56f1dff65d
commit
b7eca5e5c3
@ -14,6 +14,7 @@
|
||||
#include "tracks/track.hpp"
|
||||
#include "lod_node.hpp"
|
||||
#include "utils/profiler.hpp"
|
||||
#include "utils/time.hpp"
|
||||
|
||||
#include <ISceneManager.h>
|
||||
#include <ISceneNode.h>
|
||||
@ -590,8 +591,14 @@ PROFILER_POP_CPU_MARKER();
|
||||
if (!m_sync)
|
||||
m_sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
|
||||
PROFILER_PUSH_CPU_MARKER("- Sync Stall", 0xFF, 0x0, 0x0);
|
||||
GLenum reason;
|
||||
do { reason = glClientWaitSync(m_sync, GL_SYNC_FLUSH_COMMANDS_BIT, 0); if (reason == GL_WAIT_FAILED) break; } while (reason != GL_ALREADY_SIGNALED);
|
||||
GLenum reason = glClientWaitSync(m_sync, GL_SYNC_FLUSH_COMMANDS_BIT, 0);
|
||||
|
||||
while (reason != GL_ALREADY_SIGNALED)
|
||||
{
|
||||
if (reason == GL_WAIT_FAILED) break;
|
||||
StkTime::sleep(1);
|
||||
reason = glClientWaitSync(m_sync, GL_SYNC_FLUSH_COMMANDS_BIT, 0);
|
||||
}
|
||||
glDeleteSync(m_sync);
|
||||
PROFILER_POP_CPU_MARKER();
|
||||
/* switch (reason)
|
||||
|
Loading…
x
Reference in New Issue
Block a user