미니 S21U 우분투에서 ANGLE로 GPU 가속 성공!
- 흡혈귀왕
- 조회 수 1093
- 2023.07.14. 22:39
termux 패키지에서 이번에 새롭게 만들어준
angle-android-gl 패키지를 통해서 GPU 가속을 성공했습니다!
S21U는
기존 virglrenderer-android만으로 GPU 가속 시도 할 경우
XFCE4 세션이 깨져서 출력되거나 glmark2 벤치 시도 시 에러를 뿜뿜했는데
안드로이드 호스트 GPU -> mesa -> angle -> virgl
으로 중간 과정에 angle 껴주니깐 XFCE4 세션도 잘 표시되고
glmark2도 잘 실행되네요!!!
퍼포먼스는 ANGLE로 한번 번역을 하는 과정을 거침에도
스냅드래곤865 Adreno650 virgl보다 10% 더 높게나오고 있습니다.
S21 시리즈로 시도하실분들은
angle-android-gl로 시도하면 될듯하네요.
angle-android-vulkan으로 하면
GL ES가 아닌 Vulkan으로 변환하는데 이건 포퍼먼스가 더 까이더군요.
대신 Vulkan 가속이 가능하다는 장점이 있어서 상황에 맞게 쓰면될듯합니다.
이거 강좌 올릴 때 Mali GPU는 ANGLE로 해야한다고 예외사항을 올려야겠네요 ㅡㅡㅋ
https://github.com/termux/termux-packages/actions/runs/5544262923
1. 해당 링크 진입 후 github 로그인
2. debs-aarch64-d5a8e8c15b40a947aef581ab6d3a54e49774c8fe 라고 되어있는 버전 다운로드
3. 다운받은 압축 파일을 풀면 deb 패키지 4개 확인 가능
3. Termux 실행 후 angle-android.deb과 angle-android-gl.deb 혹은 angle-android-vulkan.deb를 설치
angle-android-gl.deb은 OpenGL ES를 ANGLE로 번역 후 virgl을 실행하고
angle-android-vulkan.deb는 Vulkan을 ANGLE로 번역해서 virgl을 실행합니다.
퍼포먼스는 gl이 더 높습니다. (거의 30~40% 이상)
대신 vulkan은 vulkan 하드웨어 가속이 가능 여지가 있다는 정도가 있겠네요
저는 일단 gl로 하였습니다.
실행 명령어
$ EPOXY_USE_ANGLE=1 virgl_test_server_android &
$ XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac &
$ proot-distro login ubuntu --user user --shared-tmp --no-sysvipc
$ export DISPLAY=:0 GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.3COMPAT MESA_GLES_VERSION_OVERRIDE=3.2
$ dbus-launch --exit-with-session startxfce4 &
입니다!
기존 virgl_test_server_android & 명령어 앞에 EPOXY_USE_ANGLE=1가 추가되었습니다.
gallium 드라이버 설정 명령어 옵션 뒤에 저는
MESA_GL_VERSION_OVERRIDE=4.3COMPAT MESA_GLES_VERSION_OVERRIDE=3.2
추가 시켰습니다.
export DISPLAY=:0 GALLIUM_DRIVER=virpipe 만으로는
glmark2가 도중에 죽어버리더군요
MESA_GL_VERSION_OVERRIDE=4.3COMPAT 추가 하니깐 정상적으로 완주하였습니다.
리눅스용 3D 게임인 SuperTuxKart도 정상적으로 실행되네요
요약하자면 angle관련 deb 패키지를 termux에 설치 후
사용하시는 기존 쇼컷 실행 스크립트에
virgl_test_server_android &를
EPOXY_USE_ANGLE=1 virgl_test_server_android &
로 바꿔주시고
GALLIUM_DRIVER=virpipe 뒤에
MESA_GL_VERSION_OVERRIDE=4.3COMPAT MESA_GLES_VERSION_OVERRIDE=3.2
추가만 해주심 실행될겁니다~
한줄기 빛 같은 소식이네요!!