Bezplatný ovladač Panfrost nyní podporuje GPU Mali Valhall

Collabora implementovala podporu pro GPU řady Valhall (Mali-G57, Mali-G78) do bezplatného ovladače Panfrost, který se dříve zaměřoval na implementaci podpory pro čipy Midgard a Bifrost. Je třeba poznamenat, že připravené změny s počáteční implementací ovladače byly předloženy k zahrnutí do hlavního složení Mesa a budou uživatelům představeny v jedné z příštích významných verzí.

Implementace byla připravena po 6 měsících reverzního inženýrství proprietárních ovladačů používaných ve smartphonu Android s GPU Mali G78. Odvedená práce je pozoruhodná v tom, že vývoj byl proveden v pasivním režimu bez přístupu root ke smartphonu se zkoumaným čipem, tzn. vývojáři nemohli nahradit stávající ovladač. K otestování ovladače a analýze obsahu video paměti ve smartphonu jsme použili vývojářský režim v Androidu a nahrazení našeho kódu pomocí LD_PRELOAD.

Z paměti byly načteny zkompilované shadery, sekvence instrukcí GPU a datové struktury, které řídí stav grafických primitiv, jako jsou textury, poté byly v těchto shaderech a strukturách provedeny jednotlivé změny a výsledek byl analyzován. V důsledku toho jsme připravili náš vlastní kompilátor shaderů pro GPU Valhall, který umožnil generovat podobné binární objekty, a také prototyp ovladače pro Mesa. V lednu tohoto roku se do rukou vývojářů dostal Chromebook založený na čipu MediaTek MT8192 s GPU Valhall G57, s jehož pomocí byla provedena finální kontrola na reálném zařízení a dovedena do funkční podoby výsledného ovladače.

Zdroj: opennet.ru

Přidat komentář