2014-09-17 6 views
4

QT WebEngine을 사용하여 WebGL 기능을 테스트하는 응용 프로그램을 만들었지 만 일부 사인파를 렌더링 할 때 CPU 사용률이 30 % 이상으로 높았지만 루트 파일 시스템은 QX Enterprise에서 IMX6IMX6 용 Qt Enterprise는 하드웨어 가속 기능을 사용하지 않으십니까?

http://doc.qt.digia.com/QtEnterpriseEmbedded/qtee-preparing-hardware-imx6sabresd.html

우리가 어떤 GPU 드라이버 (보통 libVivante.so 및 IMX6에 대한 libVivante.ko)가 없었다 발견 루트 파일 시스템을 검사에

, 그래서 대신 CPU에 의해 수행되는 모든 GL 렌더링처럼 보이는 GPU와 CPU 사용률이 높은 이유 QT WebEngine에서 WebGL의 하드웨어 가속을 사용하는 다른 방법을 알고 있습니까?

답변

3

Qt WebEngine은 페이지의 레이어를 합성하기 위해 하드웨어 가속이 필요하며 사용자가 화면의 아무 것도 볼 수 없을 것입니다.

Qt WebEngine의 뒤편에있는 Chromium은 짐승이며 CPU주기를 산출하는 것보다 부드럽게 인식되도록 설계되었습니다. 이를 달성하기 위해 할 수있는 모든 자원을 사용할 것입니다.

모든 자바 스크립트 WebGL 호출은 주 렌더링 스레드에서 GPU 프로세스 주 스레드로 이동하여 드라이버에 대한 GL 호출로 디코딩됩니다. 서로 다른 WebGL 캔버스가 서로 다른 FBO를 사용하고 바인드하여 GL 컨텍스트 전환이 필요하며 가능하면 최신 상태로 Chromium 컴포저가 실행되어 모든 위임 된 장면을 브라우저 프로세스로 보내고 마침내 합성 할 QtQuick의 장면 그래프 스레드에서 끝납니다.

이 모든 것은 단일 JavaScript WebGL 호출이 OpenGL에게 그 지오메트리를 그려야한다고 말하는 것보다 훨씬 더 큰 기계를 트리거한다는 것을 말합니다. 이런 종류의 장치에서 30 %의 CPU 사용량은 병목 현상을 피할 수있는 방법 일지 모르지만 나에게는 이상한 일이 아닙니다.

가장 효율적인 방법은 다음 예와 같이 사용자 정의 QtQuick Scene Graph 지오메트리를 사용하는 것입니다. http://qt-project.org/doc/qt-5/qtquick-scenegraph-customgeometry-example.html 그래도 그 장치에서 10 % 미만의 CPU 사용은 기대하지 않습니다.