The Adreno 505, 506, 510, and 530 GPUs are found in Qualcomm's Snapdragon SoCs like the Snapdragon 820, 821, 650, and 430. The Adreno 500 series is fully Vulkan 1.0 compliant, supports OpenGL ES 3.1/3.2, and has full support for OpenCL 2.0.
Qualcomm's Code Aurora Forum has posted the 12 kernel patches for supporting the Adreno 5xx hardware via Freedreno's MSM DRM driver. Jordan Crouse of Code Aurora explained:
This stack turns on the A5XX hardware and initializes the GPMU (Graphics Power Management Unit) which is a microcontroller to assist with more independent power management. This initial stack is mainly concerned with getting the GPU/GPMU operational. Hopefully future improvements will actually tune it for better power.
The last three patches in the stack take the GPU out of "secure" mode. When the GPU is in secure mode it can only read/write from memory that is locked by the secure components of the SoC. By default the GPU comes up in secure mode - to get out of it we need to use SCM to load a special shader that "zaps" the persistent memory and registers and then we can execute a GPU command to take us out of secure. This code should compile cleanly against upstream but there are some changes coming in on other trees to make it functional for the Snapdragon 820/821.
Rob Clark, the lead developer of Freedreno, meanwhile has been baking the Freedreno Gallium3D driver changes for A5xx support. The A5xx Freedreno Gallium3D support is over 8k lines of code and Rob's been doing the bring-up on the Dragonboard 820c. He commented, "At
this point I have the basics working.. (ie. a reasonable chunk of glmark2 working). There are [of course] bugs to fix, and I've started to run through deqp (since that is something easier to run against blob driver on android than piglit). There are a couple more small cleanups, and I need to do some testing on a3xx/a4xx to ensure the ir3 compiler changes don't break anything on previous gen's. But I'm expecting to push this to master in next day or two."