Collabora Implemented Support for the GPU Valhall Series (Mali-G57, Mali-G78) in the free Panfrost driver, which was previously focused on implementing the support of MidGard and Bifrost chips. It is noted that the prepared changes with the initial implementation of the driver are transmitted for inclusion in the main MESA and will be brought to users in one of the following significant releases.
Implementation was prepared after 6 months of reverse engineering proprietary drivers used in Android smartphone with GPU Mali G78. The work done is notable in that the development was carried out in passive mode in the absence of root access to the smartphone with the studied chip, i.e. Developers could not replace the available driver. To test the driver and analyzing the contents of the video memory in the smartphone, a developer mode in Android was used and substituting its code using LD_PRELOAD.
Compiled shaders were removed from the memory, the instructions of the GPU and the data structure, controlling the status of graphic primitives, such as textures, after which these shaders and structures were made separate changes and the result was analyzed. As a result, its own shaders compiler for GPU Valhall, which allowed to generate similar binary objects, as well as the driver prototype for MESA are prepared. In January of this year, Chromebook on the basis of the developers hit the CHROMEBOOK based on the MEDIATEK MT8192 chip with GPU Valhall G57, with which the final test was performed on real equipment and bring to the working driver received.