I'm working on a mobile game and want to automatically adjust game quality based on GPU performance. I have a list of all common GPUs with corresponding performance score. So in runtime I could query the GPU name and adjust parameters according to this score. The problem is that for Mali GPUs performance also heavily depends on the number of cores (MP/MC). For example, there is a big difference between Mali-T830 MP1 and Mali-T830 MP3. And it's not clear how to obtain those numbers, because regular utilities like dumpsys provide only information about GPU name without the number of cores. So for the above example, it would return just Mali-T830. I've found that in this thread to get this info it's recommended to query the kernel driver directly and there is an example here https://github.com/ARM-software/HWCPipe how to do it. But the problem with this solution is that it requires ioctl calls, which are restricted in some Android versions. So you have to enable profiling in order to use it, which is of course not possible for the game.
My question is, is there any way how to retrieve this info about the number of GPU cores on Android without enabling profiling?
Glad you found a solution, and thank you for coming back to provide an update :)