2011-08-06 8 views
0

나는 FBO로 렌더링하고 glReadPixels를 사용하여 PBO를 다시 호스트로 읽어들입니다.glTestFenceNV는 항상 glReadPixels에서 false를 반환합니다.

상태를 확인하기 위해 FENCE_NV 확장자를 사용하여 glMapBuffer im으로 렌더링 스레드를 차단하지 않기 위해서.

그러나 glReadPixels 다음에 glSetFenceNV를 호출하면 glTestFenceNV는 내가 기다린 시간에 관계없이 항상 false를 반환합니다.

반면 glReadPixels 전에 glSetFenceNV를 넣으면 모든 것이 잘 작동하지만 펜스는 호스트 메모리로의 전송이 아니라 렌더링의 상태 만 신호로 알립니다. glMapBuffer는 여전히 차단 될 수 있습니다.

왜 이런 행동을하는가?

답변

0

glReadPixels 후에 glFlush를 호출해야하는 것 같습니다. 그렇지 않으면 작동하지 않습니다.

관련 문제