He descubierto que SwapBuffers en OpenGL estará ocupado, espere mientras la tarjeta gráfica no esté lista con su renderizado o si está esperando en V-Sync.Evitar esperar en SwapBuffers
Esto es un problema para mí porque no quiero desperdiciar el 100% de un núcleo de CPU mientras espero que la tarjeta se termine. No estoy escribiendo un juego, así que no puedo usar los ciclos de CPU para algo más productivo, solo quiero cederlos a algún otro proceso en el sistema operativo.
He encontrado funciones de devolución de llamada como glutTimerFunc y glutIdleFunc que podrían funcionar para mí, pero no quiero utilizar el exceso. Aún así, el exceso debe de alguna manera usar las funciones gl normales para hacer esto, ¿verdad?
¿Hay alguna función como "glReadyToSwap" o similar? En ese caso, podría verificarlo cada milisegundo y determinar si debería esperar un poco más o realizar el intercambio. También podría imaginar saltar SkapBuffers y escribir mi propia función similar que no está ocupada, esperar si alguien puede señalarme en la dirección correcta.
Bueno, los detalles sobre cómo ocurre la espera no son tan importantes para mí. Lo que puedo decir es que los fanáticos en la computadora aceleran, y supongo que reaccionan con el calor, lo que significa que la CPU FUNCIONA al 100% ya que SE CALIENTA. Incluso si no fuera así, Windows cree que funciona al 100%, lo que significa que Windows no dará tiempo de CPU a ningún otro proceso porque cree que ya se utilizó al 100%. Como sea que lo mires, desperdicias tiempo de CPU que podría ser usado por otra persona ya sea quemándolo o dejándolo funcionar. – DaedalusAlpha
¿Intentó ejecutar un programa diferente que también consume mucho tiempo de CPU? – datenwolf
^^ Me refería a su programa OpenGL. – datenwolf