This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Query GPU core count from game

Hello.

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?

Thank you,

Mikhail

Parents
  • You can't restrict arbitrary driver IOCTL calls - if you did the application loses the ability to talk to any kernel driver or system call. In this specific case, these IOCTLs are the same ones that the graphics driver uses so shouldn't be blocked.

Reply
  • You can't restrict arbitrary driver IOCTL calls - if you did the application loses the ability to talk to any kernel driver or system call. In this specific case, these IOCTLs are the same ones that the graphics driver uses so shouldn't be blocked.

Children