
미니 Mali Vulkan 드라이버 피처레벨 지원 수준 심각하네요.
- 흡혈귀왕
- 조회 수 446
- 2023.11.17. 10:23
에서 안드로이드 최신 Vulkan 드라이버 등등 살펴보는데
1차로 Adreno 750이 Adreno 740 대비 Vulkan 드라이버 피처레벨과 익스텐션이
큰 차이가 없어서 아쉬웠고...
2차로 재밌는게 Vulkan1.3.230 RADV 드라이버를 사용하는 RDNA2 그래픽 카드와
Vulkan1.3.231 드라이버인 xclipse 920의 피처레벨과 익스텐션 살펴봤는데
둘이 놀라울정도로 유사합니다.
익스텐션에서 2개정도 Xclipese 920 덜 지원하고 인스탄스에서
RAVD가 리눅스 X11 WSI 관련 서페이스를 좀더 지원하는거 빼면 거의 동일 수준입니다.
마지막으로 놀라운정도로 부실한 Mali 입니다.
Mali-G720 결과가 아직 없어서
Mali-G715-Immortalis의 Vulkan1.3.231 드라이버를 살펴보니
익스텐션은 Xclipse의 3분의 1수준이고
피처레벨은 Xclipse와 Adreno의 절반수준밖에 안되더군요.
이게 문제가 Vulkan에서도 이정도로 파편화가 엄청 심하다는 뜻이고
이러면 최신 기술을 써도 Mali GPU에선 제대로 동작을 보증 못합니다.
제일 얼척이 없었던건 Vulkan에서 OpenGL & OpenGL ES를 구현해주는
zink 호환성에 필요한 피처레벨과 익스텐션 기능을 살펴보았는데..
Vulkan + zink에서 OpenGL2.1을 구현하려면 위와 같은 피처레벨과 익스텐션을 지원해야합니다.
OpenGL2.1은 엄청 레거시고 리눅스에서 정말 최소한의 그래픽 API입니다.
실질적으로 리눅스에서 정상적인 사용환경을 얻으려면 최소 OpenGL3.0에서 OpenGL3.3은 되어야합니다.
정말 어이없게도
Mali-G715-Immortalis의 경우 최신 Vulkan1.3.231 드라이버 기준의 저 위 리스트 중
피처레벨
logicOp
fillModeNonSolid
alphaToOne
shaderClipDistance
익스텐션
VK_KHR_swapchain_mutable_format
등등을 미지원합니다.
즉 엄청 레거시인 OpenGL2.1 조차 구현 못할정도로 드라이버 기술지원 부분이 부족하단뜻이죠 ㅡㅡ;
"애초에 모든이들이 리눅스 돌릴것도 아닌데 저게 먼상관임?"
이라 반문할수도 있지만
문제는 파편화입니다.
드라이버 지원 수준이 저거밖에 안되는지라
예를 들어 어떤 게임에서
logicOp
fillModeNonSolid
alphaToOne
shaderClipDistance
VK_KHR_swapchain_mutable_format
를 지원한다치면 Mali에선 정상 작동이 불가능하다는 소리인거죠 ㅡㅡa
그리고 저건 빙산의 일각입니다.
저는 어디까지나 zink OpenGL2.1 기준으로만 피처레벨과 익스텐션은 체크한것이라
상세히 비교하면 더 부실할겁니다.
사실 Vulkan 게임이 거의 없는 수준이라 이런 걱정하는게 기우이지만
타 제조사들 대비 드라이버 지원 수준이 개판인거 보면 그닥 좋게보이진 않습니다.
암튼 Vulkan 드라이버 기술 수준만볼땐
Xclipse가 RADV랑 유사할정도로 제일짱짱했고 (zink 조합시 OpenGL3.3~4.0 가능)
Adreno가 그 다음으로 짱짱했고 (zink 조합시 OepnGL3.0~3.2 가능)
Mali가 제일 꼴등이었습니다. (zink 조합시 OpenGL2.1 구현에도 미달)
결론 : Vulkan도 이리 파편화가 심합니다...ㅡㅡa;;

???:말리 요즘 폼올랐다고(D9300) 빠진거 아니냐~