내 응용 프로그램은 빠른 렌더링 (일반적으로 프레임 당 1-6ms)을하며 이중 버퍼링 및 vblank 동기화가 활성화되어 있습니다. 내 메인 루프에서 10 밀리 초 정도 잠자리에 들기를 기다렸다가 가능한 한 늦게 렌더링을 수행하면서 마감 시간 전에 프레임을 업데이트하면서 (최소한의 대기 시간으로 단색 60 FPS 렌더링의 경우) 렌더링을 계속 관리하고 싶습니다.OpenGL 수직 귀선 측정 타이밍 찾기
버퍼를 교환 한 후 glFinish를 사용할 수 있지만 불행히도 일부 시스템에서는 (최소한 Linux는 합성되지 않음) 다음 버퍼 스왑까지 기다리지 않고 이미지가 HDMI 포트 (total 25ms의 범위에서 대기하고 30FPS에서 실행하는 응용 프로그램). 다른 시스템 (리눅스 합성)에서이 접근법은 잘 동작합니다. glFinish가 없으면 더 많은 작업이 버퍼링되어 지연 시간이 길어지기 때문에 좋지 않습니다.
정확한 프레임 타이밍을 위해 어떤 옵션이 있습니까? 주요 플랫폼은 Windows, Linux 및 OS X입니다.
타이밍 수직 동기화가 활성화 된 프레임은 의미가 없습니다. – Thomas
동기화 기능을 사용할 수 있지만 신뢰할 수있는 방법 만 있다면 (물론 찢어짐이없는 경우) 기꺼이 해보겠습니다. – Tronic
OS X에서는 ['CGDisplayModeGetRefreshRate'] (http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html)를 사용할 수 있습니다. – user1118321