2 questions about bandwidth reduction tools.
1. Does TE reduce only write transactions to the external memory? or can it reduce read transactions also?
2. Can we apply different AFBC setting per application?
For example, we want our system UI app with AFBC ON, but 3rd party apps with AFBC OFF. Our UI should be able to be overlayed(alpha blended) over 3rd party apps.
Much anticipation.
Thanks.
1. Yes, TE reduces write transactions, not read.
2. Not that I know of? Developers have no way to set global overrides for AFBC.
> For example, we want our system UI app with AFBC ON, but 3rd party apps with AFBC OFF.
Window surface memory allocations and their data format are defined outside of the Mali driver, for example using Gralloc on Android systems, and then imported into the application. Modifying data format assignment could be possible by modifying these components, although I don't think Gralloc natively has enough knowledge to do this (e.g. I'm not sure it knows what user application it is allocating memory on behalf of).
> Our UI should be able to be overlayed (alpha blended) over 3rd party apps.
Note that there are two tiers to overlay in the display path.
Ideally you would use a multi-layer display controller where the blending is implemented in the display hardware. This doesn't involve the GPU at all, and for most cases will be more efficient.
If the display path cannot cope with the combination of layers it is given then there will be a default fall back to using the GPU to output a single surface which can always be scanned out.
In short, try to use a combination of layers and formats that your display controller can handle natively. This may not be a Mali DP design, so you may have to check with the chipset manufacturer.
Cheers, Pete