The software for the VIP only supports one RGB format into the frame buffer. It's RGB888 "packed". I think it's pretty clear (there's even a picture) that a pixel only takes three bytes, and the next three bytes are the next pixel, as opposed to ARGB, which is 32-bits per pixel. This format is a pain to manipulate with the CPU, and the SGX530 OpenGL ES driver has to convert it to ARGB before using it as a texture in order to implement RGB scaling. The OpenGL ES implementation is also slow at loading textures anyway.
We are trying to get RGB HDMI/DVI-I from the VIN port into the frame buffer for CPU processing, and down-scaling would be a nice feature.
Questions (I'm looking for the software reality, not the silicon's promise):
1. Can we use a graphics block for scaling to memory? Are there other options besides the SGX530 for scaling?
2. Is the RGB frame buffer format delivered by the VIP port really 24 bits per pixel (pixels aren't word aligned), or is it more like 32-bit ARGB with undefined "A"?
3. Does the SGX530 have hardware to convert RGB to ARGB when loading a texture, or will the CPU be doing it in the driver?
4. Any suggestions?
Any info would be greatly appreciated.
-Herb