프로파일 러를 게임에 추가하고이 기능을 분리했습니다. 때로는 FPS가 떨어집니다. 이것은 내 결과입니다.presentRenderbuffer : GL_RENDERBUFFER_OES가 오래 걸립니다.
Present buffer time: 22
Present buffer time: 1
Present buffer time: 9
Present buffer time: 1
Present buffer time: 20
Present buffer time: 6
Present buffer time: 4
Present buffer time: 4
Present buffer time: 22
Present buffer time: 4
Present buffer time: 8
Present buffer time: 4
Present buffer time: 4
Present buffer time: 15
Present buffer time: 1
Present buffer time: 1
Present buffer time: 1
Present buffer time: 11
Present buffer time: 1
Present buffer time: 6
Present buffer time: 1
Present buffer time: 1
Present buffer time: 25
Present buffer time: 6
Present buffer time: 7
Present buffer time: 1
Present buffer time: 10
Present buffer time: 7
Present buffer time: 3
Present buffer time: 1
Present buffer time: 12
Present buffer time: 9
Present buffer time: 6
Present buffer time: 9
몇 프레임마다이 기능이 더 많은 시간이 걸리는 이유를 알고 계십니까?
f64 time = -System::GetTime();
[m_context presentRenderbuffer:GL_RENDERBUFFER_OES];
Log("Present buffer time: %d\n", u32((System::GetTime() + time) * 1000.));
당신이 옳습니다. glFlush()를 사용하면이 함수는 일정 시간 (almoust)에 실행됩니다. glFlush가 다른 프레임에서 다른 시간을 갖는 이유를 알고 있습니까? 나는 동일한 내용을 가지고 있지만 glFlush 시간은 1ms에서 30ms까지 다양합니다! 도와 주셔서 감사합니다! – Felics
@Felics. 다른 GPU 작업이 실행 중일 수 있습니다 ... 전체 화면 모드로 작업하고 있습니까? – kvark
이 코드는 iPhone 版입니다. 그것은 전체 화면이고 한 스레드에서 OpenGL을 사용합니다. 나는 이것과 관련된 다른 질문을 추가했다 : http://stackoverflow.com/questions/5146987/glflush-time-varies-from-frame-to-frame-with-same-content-on-iphone – Felics