2013-02-07 3 views
1

iO6/iPad3에서 큰 모델 (약 130K verts)을 렌더링하는 놀라운 결과가 나타납니다. 정상iPad 3에서 CPU 경계 렌더링

  1. 130000 버텍스 비 인터리브 (나쁜 I 알고) 5 개 일괄 glDrawElements 그린
  2. 버텍스 위치 (3 플로트)이며, (3 바이트)

    여기에 배경 정보 인 색상 (4 바이트), GL_STATIC_DRAW VBOs.

  3. 프레임의 시작 부분에 VAO로 정점 상태가 설정됩니다.
  4. glClear는 프레임의 시작 부분에서 호출됩니다.
  5. 응용 프로그램은 GL 프레임 워크를 처리하기 위해 GLKViewController를 사용합니다.

결과, 엑스 코드 프로필보기 보고서 :

  1. 약 3 FPS.
  2. GPU 사용률은 약 7 %입니다. 타일러는 2 %, 렌더러는 5 %입니다.
  3. CPU 시간은 프레임 당 360ms이고 GPU는 25입니다. Youch!

악기를 추가로 프로파일 링하면 glRunVertexSubmitARM (glDrawElements에서 호출 됨)이라는 내부 GL 함수가 가장 시간이 많이 걸리는 것으로보고됩니다. 무슨 일 이니? 입력 데이터가 너무 좋지 않아서 GL이 모든 프레임을 좋은 형식으로 변환하는 데 시간을 소비하고 있습니까?

답변

3

정확히 무슨 일이 일어나고 있는지. 모든 정점 속성이 4 바이트 경계에서 시작하는지 확인하십시오 (법선에 패딩 바이트를 추가하십시오).

+0

고마워요! 그것은 추측입니까 아니면 이전에 비슷한 효과를 보았습니까? 정상적인 형식을 변경하는 것은 사소한 일입니다. – Justicle

+0

그래, 정상적인 프레임 속도 였고 건강한 30fps로 올라 갔고 CPU 사용률도 저조했습니다. – Justicle

관련 문제