Bezpłatny sterownik Panfrost zapewnia obsługę procesora graficznego Mali Valhall

Pracownicy Collabora zaimplementowali obsługę procesorów graficznych z serii Valhall (Mali-G57, Mali-G78) w darmowym sterowniku Panfrost, który wcześniej skupiał się na zaimplementowaniu obsługi układów Midgard i Bifrost. Należy zauważyć, że przygotowane zmiany wraz z wstępną implementacją sterownika zostały przekazane do włączenia do głównego składu Mesy i zostaną udostępnione użytkownikom w jednym z kolejnych znaczących wydań.

Implementacja została przygotowana po 6 miesiącach inżynierii wstecznej autorskich sterowników stosowanych w smartfonie Android z procesorem graficznym Mali G78. Wykonana praca jest godna uwagi, ponieważ rozwój przeprowadzono w trybie pasywnym przy braku dostępu roota do smartfona z badanym chipem, tj. programiści nie mogli zastąpić istniejącego sterownika. Aby przetestować sterownik i przeanalizować zawartość pamięci wideo w smartfonie, skorzystaliśmy z trybu deweloperskiego w systemie Android i zastąpiliśmy nasz kod kodem LD_PRELOAD.

Skompilowane moduły cieniujące, sekwencje instrukcji GPU i struktury danych kontrolujące stan prymitywów graficznych, takich jak tekstury, zostały pobrane z pamięci, wprowadzono indywidualne zmiany w tych modułach cieniujących i strukturach, a wyniki przeanalizowano. W efekcie powstał autorski kompilator shaderów dla procesora graficznego Valhall, który umożliwił generowanie podobnych obiektów binarnych, a także prototypowy sterownik dla Mesy. W styczniu tego roku w ręce programistów wpadł Chromebook oparty na chipie MediaTek MT8192 z procesorem graficznym Valhall G57, za pomocą którego przeprowadzono końcowy test na prawdziwym sprzęcie i powstały sterownik doprowadzono do działającej formy .

Źródło: opennet.ru

Dodaj komentarz