Imagination PowerVR SDK Blog

Texture uploading & Preferred uncompressed texture formats (BGRA8? RGBA8? RGB8? etc.)


#1

Does anyone have some knowledge or experience with what the preferred component order to use on PowerVR chips is? BGRA8 or RGBA8?



Also, how well does the GPU/driver handle RGB8 vs. RGBA8 textures?



Finally, any info on how these stack up against RGB565 and friends would be very helpful.



(In case it makes a difference, currently most interested in Series 6, but I’ll take any data I can get. Thanks!)


#2

There’s negligible difference between BGRA8 and RGBA8 on hardware, so either is preferred.



RGB8 is padded to 32-bits anyway so again negligible difference there.



RGB565 would give better performance simply because it is a half the size.


#3

Thanks, PaulL! Good info! Re “RGB8 is padded to 32-bits anyway”, I would suspect this could slow the upload rate of tightly-packed RGB8 data if the driver/GPU needs to unpack it to RGBA8 in the transfer. Is this correct?


#4

There shouldn’t be an overhead in the driver because of the way texture data is processed on hardware for efficiency. This processing means texture data is always read and written in power-of-two chunks, so RGB has no benefit over RGBA here.



Outside of the GPU, the benefits of smaller buffers/storage space would apply.


#5

Thanks, PaulL! I appreciate the information.