미니 그 말리는 깡성능 문제가 아닌게
- qazsdf
- 조회 수 887
- 2019.06.17. 16:53
ARM : 말리는 렌더패스를 이용한 파이프라인을 이용해 저전력에 효율적인 모바일 환경에 아주 적합합니다!
(렌더링 파이프라인은 3D 세계에 대한 기하학적 표현과 이 세계를 바라보는 관점을 정의하는 가상 카메라를 이용해 2D 이미지를 만들어내는 역할을 담당한다.)
렌더패스는 이러이런 압축 과정을 거치게 됩니다!
근데 Open GL(오픈소스 버전의 다이렉트X로 생각하면 편합니다)에서의 렌더 패스는
— OpenGL ES API에 API 레벨에 명시적인 렌더 패스가 없음(????)
— 드라이버가 단일 렌더 통과를 형성하는 렌더링 작업을 유추해야 함(드라이버에 따라 성능이 천차만별)
- 도면 명령이 현재 렌더 패스에 추가됨
— API 호출을 통해 프레임 버퍼를 변경하거나 대기 중인 작업을 강제로 플러시할 때 처리를 위한 렌더 패스 제출
그런데
– Called glBindFramebuffer() to change the GL_FRAMEBUFFER or GL_DRAW_FRAMEBUFFER target
– Called glFramebufferTexture*() or glFramebufferRenderbuffer() to change the attachments
– Called eglSwapBuffers()
– Called glFlush() or glFinish()
– Created a glFenceSync() then called glClientWaitSync() to wait
이러한 API들을 Open GL에서 호출하면 저 렌더패스가 중간에 멈추거나 끊긴다고 합니다.
열심히 3d그래픽 그려야 하는데 중간에 멈춰야 하는거죠
똥싸다 끊는것처럼요
그래서 이번에 ARM 스튜디오라는 툴을 공개해서 드디어 병목현상들을 확인할 수 있게 해주는 툴을 공개해주고
병목 발생시 뭐가 원인인지 알려주고 해결볍을 알려주는 그런 세미나 였습니다.
OpenGL이랑 말리랑 뭔가 잘 안맞는...불칸 최적화된 게임들은 잘돌아가는거 보면 맞는거 같습니다.
OpenGL(오픈소스 그래픽 라이브러리)과 말리가 속궁합이 안좋다는 뜻입니다.
말리는 불칸과의 외도가 더 행복합니다.