-
Notifications
You must be signed in to change notification settings - Fork 10
Description
The current library is designed retrospectively on top of the existing Mali kernel driver query interfaces that were built to support the production driver. These interfaces expose low-level data and assume that user-space knows how to decode packed fields for any particular product. This works for existing GPUs that already exist because we can encode that knowledge in the libGPUInfo user-space library, but we cannot reliably decode properties for future GPUs because we must make assumptions about how to decode raw config register fields.
It is desirable for game engine integrations to have a forward-compatible library. A version of the library will be frozen when an engine (or at least a game build) is released, but it will need to work reliably for years to come on GPUs that did not exist when the application software was frozen. This means we need a higher-level set of properties to be provided by the kernel driver, allowing user-space to consume them without specific knowledge of the hardware and its register encoding. It is accepted that this will likely only be able to return a subset of the information that a "known product" is able to return, for example the human readable product name will be missing, but technical essentials such as architecture version, core count, L2 cache count, and L2 cache size should be programmatically determinable.
Status: Requirement acknowledged; blocked pending kernel driver interface changes.