미니 Termux PRoot 리눅스 GPU 가속 근황 (큰 성과)
- 흡혈귀왕
- 조회 수 806
- 2023.08.16. 10:17
기존에 Termux PRoot 리눅스에서
아드레노 오픈소스 Vulkan 드라이버인 Freedreno Turnip 사용 시
Termux-X11에서 DRI3(Direct Rendering Infrastructure)를 지원하지 않았습니다.
그덕분에 "MESA_VK_WSI_DEBUG=sw" 환경 변수를 추가해줘서
WSI(Window System Integration)를 소프트웨어 처리를 해야
2D/3D 결과물이 표시되었는데
이럴 경우 성능이 4분의 1 수준으로 곤두박질 치는 문제가 있어서
Termux PRoot 리눅스에서 Turnip 사용은 사실상 호환성 개선 외에는 큰 매리트가 없었습니다.
(심지어 피크 퍼포먼스는 virglrenderer-android보다 낮습니다.)
그런데 이번에 한 해외의 능력자분이
Termux-X11에서 Turnip DRI3 지원 패치를 만들어주셨습니다.
그덕에 퍼포먼스가 아주아주 크게 개선이 되었더군요.
당장 배포된건 Termux용 Turnip 패키지에만 패치가 적용되고
PRoot 리눅스에서 사용하려면 패치 적용 후 Turnip을 새로 빌드해야했습니다.
이번 연휴동안 해외의 능력자분의 피드백을 실시간으로 받아가며 삽질한 덕에
DRI3 지원 패치를 적용한 Turnip을 컴파일 빌드하고 deb 패키지로 만드는데 성공했습니다!!
"MESA_VK_WSI_DEBUG=sw" 환경 변수 없이도 2D/3D 결과물이 잘 표시되었고
결과는 다음과 같습니다.
Galaxy S23 Ultra Adreno740의 mesa 23.1.5 기준으로
glmark2 벤치를 돌렸을 때
[glmark2]
virglrenderer-android :
score 133
mesa-zink + virglrenderer-mesa-zink :
score 122
zink + turnip (without DRI3) :
score 115
zink + turnip (with DRI3) :
score 540
DRI3 패치를 적용하자 퍼포먼스가 무려 5배 가까이 향상되었습니다.
실제 SuperTuxKart 게임에서도 프레임 향상이 체감되게 있었고
firefox-esr 브라우저에서도 웹페이지 로딩이 체감되게 향상되고
작지만 WebGL 프레임 향상도 있었습니다. (WebGL은 약 25% 향상)
제일 큰건 Blender 3D와 Kdenlive 같은 인기 소프트웨어들이
완벽 호환되고 날라댕길정도로 쾌적하게 잘 돌아갑니다.
이것저것 테스트하면서 유일하게 발견한 오류라곤
Blender 3D 실행 시 타이틀 이미지가 깨져서 보이는 문제만 있었습니다.
(프로그램 사용은 아무 문제 없음)
타이틀 이미지가 깨져서 보이는 증상은 mesa 22.0.0에선 없고
mesa 23.0.0부터 저 증상이 있는거보니 Turnip 이슈는 아니고 zink 이슈인듯하네요.
이정도면 Termux PRoot 리눅스에서
비디오 하드웨어 디코딩과 OpenCL 빼고
Vulkan1.3, OpenGL4.6, OpenGL ES3.2 가속이 가능하니
이정도면 GPU 가속은 거의 완벽에 가까운 수준으로 된다고 봐도될듯하네요.
게다가 Turnip이나 Termux-X11은 지금도 계속 개발중이어서 퍼포먼스가
더 개선될 여지가 있습니다.
제가 탭S9 울트라를 구매한 타이밍에 이게 될줄이야 ㅡㅡㅋㅋ
삼성이 이글을 보고 도움좀 주면좋겟네요