- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Hello,
With a Haswell i7-4770R, Windows 8.1 64 up to date, GPU Intel drivers 15.36.21.64.4222 (and also 15.36.19.64.4170),
OpenGL 3.3 with
static const int context_attribs[] = {
WGL_CONTEXT_MAJOR_VERSION_ARB, 3, WGL_CONTEXT_MINOR_VERSION_ARB, 3,
/* WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB, */
0 } ;
GLWin.hRC = wglCreateContextAttribsARB (GLWin.hDC, 0, context_attribs);
this code does an endless loop without any OpenGL error :
GLsync g = 0;
GLint result = GL_SIGNALED;
glFinish (); // To be sure the OpenGL server is clear and waiting
g = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
glGetSynciv (g, GL_SYNC_STATUS, sizeof(GLint), NULL, &result);
// glFlush (); /* Need to avoid the endless loop ??? */
while (result == GL_UNSIGNALED) {
printf ("I'm always in the loop\n");
glGetSynciv (g, GL_SYNC_STATUS, sizeof(GLint), NULL, &result);
}
glDeleteSync (g);
To avoid the endless loop, glFlush must be set after the first glGetSynciv. But it's not need in
OpenGL API.
Without the glFlush, the same code in Linux (Fedora 21 64 up to date).
I have tested a Nvidia card in Linux & Windows: OK without glFlush.
***************************************************************************************************************
The only solution I found to avoid glGetSynciv is to remplace it by glClientWaitSync, but I
have a performance problem.
GLsync g = 0;
GLenum result;
g = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
result = glClientWaitSync (g, GL_SYNC_FLUSH_COMMANDS_BIT, 0);
while (result == GL_TIMEOUT_EXPIRED) {
result = glClientWaitSync (g, 0, 0);
}
The result is correct, but the performance between Linux & Windows is really odd. When I
remove this synchronisation, my off screen rendering has a FPS = 3200 -/+ 100
in Linux and Windows. With this synchronisation on, in Linux, no difference; in Windows, the
FPS is slowed to ~1550.
The only reason I see for this difference of performance is the possibility, even with timeout=0
everywhere, than the code of Windows driver for glClientWaitSync does an equivalent of a Sleep (0) ?
To confirm my hypothesis, I have tried
result = glClientWaitSync (g, GL_SYNC_FLUSH_COMMANDS_BIT, 1000000000);
without any loop. Windows is not a real time system; a real sleep with timeout must be really
expensive in terms of performance. But my FPS is ~1500 too, same performance than previous test.
Of course, in Linux, the FPS is always 3200.
Thanks for reading and for any help!
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Lien copié
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Thanks for reporting this problem, I would need additional information about your system configuration.
Please provide the graphics report generated within Graphics Control Panel and also the DXdiag report
http://www.intel.com/support/graphics/sb/cs-009476.htm Graphics Drivers — Intel® Graphics Driver Report
Click Start, click Run, type dxdiag in the Open box, and then click OK.
Allan.
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Hi Allan,
GCP & DXdiag, as requested.
Alain.
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Hi,
I'm OGL driver developer trying to fix issue(s) you've noticed. Could you please do one more experiment? Could you set timeout in ClientWaitSync to 1 please? Does it help with performance issue?
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Hello HelloGuys,
We would like to know if you were able to do the suggestion given by tomasz_OGL or if you still have problems so we can escalate the situation to our engineering team in charge of the product?
Thank you in advance for your help on this.
Warm regards,
marving_intel
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Issue being closed out as 'Not technically feasible'.

- S'abonner au fil RSS
- Marquer le sujet comme nouveau
- Marquer le sujet comme lu
- Placer ce Sujet en tête de liste pour l'utilisateur actuel
- Marquer
- S'abonner
- Page imprimable