미니 어? 엑시2200에서 Termux 리눅스 구동 시 OpenGL3.x 가능한가보네요..
- 흡혈귀왕
- 조회 수 738
- 2023.08.28. 15:42
Adreno, Mali, PowerVR 등등은 안드로이드 호스트 Vulkan 드라이버의
피처레벨과 익스텐션 지원이 후달려서
vulkan-loader-android
mesa-zink
virglrenderer-mesa-zink
사용 시 OpenGL2.1 구현이 한계인데...
https://github.com/RobertSzujo/Termux-UbuntuBox/blob/main/README.md
엑시노스2200 xclipse 920의 경우
vulkan-loader-android
mesa-zink
virglrenderer-mesa-zink
조합해서 사용할 경우 엑시노스2200에서 OpenGL4.0 이하 가속이 된다고 합니다.
리눅스 사용하면서 사실
OpenGL4.x을 지원하면 좋긴한데 어지간하면 OpenGL3.3만되어도
사용하는데 전혀 문제가 없습니다.
저것도 Vulkan1.1 드라이버 기준일테니
S23FE부터 적용되는 Vulkan1.3에서 mesa-zink 조합 시 OpenGL 더 상위 버전을
지원할 수도 있어서 지켜보는중입니다.
S23FE가 엑시노스 탑재로 국내에 출시하면 한번 테스트해봐서 후기 올려보겠습니다.
리눅스에서 Vulkan 지원이 여전히 난관이긴한데
이건 뭐 나중에 생각해봐야겠네요...;
angle이든 Venus든 방법이야 찾으면 나올듯하니...
제일 베스트는 삼성이 mesa RADV에 지원내역 커밋해주는것이지만요 ㅡㅡa
지금 Termux 리눅스에서 GPU 가속은 4가지 방법이 있습니다.
1. virglrenderer-android
virglrenderer-android를 설치해서 안드로이드 호스트 GPU EGL을 virgl로 가상화하여
OpenGL2.1 GPU 가속
2. mesa-zink + virglrenderer-mesa-zink
vulkan-loader-android로 안드로이드 vulkan 드라이버를 호출하고
mesa-zink로 Vulkan 위에 OpenGL, OpenGL ES를 구현 후 virgl로 가상화하여
OpenGL GPU 가속
3. virglrenderer-android + angle-android
안드로이드 호스트 GPU EGL을 angle로 번역 후 virgl로 가상화하여 OpenGL2.1 GPU 가속
4. turnip + zink
리눅스에 아드레노 오픈소스 vulkan 드라이버 설치 후 zink를 조합하여
Vulkan1.3, OpenGL4.6, OpenGL ES3.2 GPU 가속
angle 사용한 3번의 경우 일단
엑시노스2100과 스냅드래곤865, 스냅드래곤8 Gen1, 스냅드래곤8 Gen2는
개판으로 돌아가더군요....
애초에 angle 드라이버가 아니라서 EGL을 angle로 한번 번역해서 그런지
1번의 virglrenderer-android 단일만도 못한 호환성을 보여줍니다.
turnip + zink 조합이 제일 짱인데 이건 스냅드래곤 한정이고
virglrenderer-android은 호환성이 개판이고
virglrenderer-android + angle-android는 위에보다 더 호환성 개판이고
mesa-zink + virglrenderer-mesa-zink은 이중에서 성능이 제일 낮지만 turnip + zink 제외하고 호환성이 제일 좋습니다.
애초에 삼성이 angle을 사용하면서 vulkan드라이버에 올인 한다는 계획이었으니까요. 그영향인거 같네요. angle같은 호환성 레이어를 쓸때는 기존 드라이버의 역할이 많이 중요하니까 말이죠