제품정보

Overview | ROI | Testimonials | Trial

OpenGL 기반 응용프로그램의 성능을 분석, 최적화
gDEBugger는 OpenGL 기반의 응용프로그램에서 잘못된 OpenGL API의 사용으로 인한 문제를 쉽게 찾고 수정할 수 있도록 도와줍니다. 또한 gDEBugger는 OpenGL 내부의 정밀한 정보를 이용하여 성능에 영향을 줄 수 있는 중복적인 OpenGL 함수의 사용이나 일반적으로 검출이 어려운 OpenGL 에러를 찾도록 도와줍니다.

또한 응용프로그램의 성능 개선을 위해서 병목 현상의 지점을 찾고 이를 개선하기 위한 각종 도구를 제공합니다. 게다가 프로그램 버전 간, 혹은 다른 GPU 상에서의 수행결과를 비교함으로써 응용 프로그램을 최적화 할 수 있도록 해줍니다.

1 단계: 정확한 OpenGL의 사용
응용프로그램의 최적화에 앞서 먼저 해야 할 일은 OpenGL 사용상의 오류가 없도록 하는 일 입이다. 정확한 OpenGL 사용법에 따랐는지, 정확히 수행하기 원하는 OpenGL API 가 호출되어 수행되는지 점검합니다.

a. OpenGL 에러의 제거
OpenGL 에러가 발생한 경우 대부분 OpenGL은 에러가 발생한 API 호출을 무시하고 진행합니다. 이 경우 응용프로그램이 사용자가 원하는 기능 중 에러가 발생한 기능을 수행하지 않았음을 의미합니다. 따라서 최적화를 시작하기 전에 이러한 OpenGL 에러를 제거 하는 것이 중요합니다.

b. 중복된 OpenGL 호출의 제거
대다수의 OpenGL 기반 응용프로그램은 OpenGL API를 중복 호출하는 경우가 많습니다. 이러한 중복 호출은 렌더링 성능에 큰 영향을 미치게 됩니다. OpenGL 호출에 대한 log를 검토하여 렌더링 속도에 영향을 주는 것으로 보이는 중복 호출을 제거하는 것은 중요합니다. 대표적인 중복호출은 상태 변경을 중복하여 하는 경우, OpenGL의 같은 기능을 반복적으로 On/Off를 하는 경우, immediate mode 렌더링을 사용하는 경우 등이 있습니다.

2단계: 병목 현상 제거
그래픽 시스템은 일련의 그래픽 연산을 파이프라인 상에서 수행함으로써 이미지를 수행합니다. 이때 전체 파이프 라인은 “병목지점”이라 불리는 가장 성능이 느린 스테이지보다 빨리 수행될 수는 없습니다.

다음 단계를 통해 성능 병목 현상을 제거할 수 있습니다.
a. 병목 지점의 확인(IDENTIFYING THE BOTTLENECK) – 현재 그래픽 파이프라인에서 병목지점의 위치를 찾아 냅니다.
b. 최적화(OPTIMIZING) – 현재 병목 지점이 더 이상 병목 지점이 되지 않거나 원하는 성능을 얻을 때까지 해당 스테이지의 작업 부하를 줄여 줍니다.
* 전체 성능이 원하는 수준에 다다를 때까지 1, 2 단계를 반복하여 수행합니다.

성능의 최적화가 완료되거나 더 이상 병목지점의 작업부하를 줄일 수 없는 단계에서는, 파이프라인의 완전히 사용되고 있지 않은 다른 스테이지에 추가로 작업 부하를 주어도 전체 렌더링 성능에 영향을 주지 않게 됩니다. (예를 들면 좀 더 정밀한 텍스처나 좀더 복잡한 Vertex Shader 기능, 등을 추가적으로 사용 할 수 있게 됩니다)

제품 구성
gDEBugger : OpenGL 기반의 응용프로그램 동작을 실시간으로 추적해 주는 디버깅 툴로서, 응용프로그램의 성능 최적화 작업에 필요한 응용프로그램의 동작 정보를 제공합니다.
gDEBugger ES : gDEBugger의 디버깅, 프로파일링 기능을 포함하고 윈도우 PC에서 OpenGL ES 에뮬레이터처럼 작동합니다.
gDEBugger Linux : Linux OpenGL 개발자들이 사용할 수 있도록 gDEBugger의 디버깅과 프로파일링의 모든 기능을 포함시킬 예정입니다. 첫 공식 버전은 2007년 3분기에 발표될 예정입니다.