Romero, Miguel Angel wrote:
2) Using Overlay Layer (video), there is no need colour conversion so CPU load is acceptable [>60%], but: - Using "hwrev = 3" in unichrome driver, I got bad colours. My impression is that U and V are swapped. - Using "hwrev = 0x10" in unichrome driver, colours are Ok, but image is badly interlaced. It seems that odd field is moved around 100 pixels from the left, while even field is Ok.
I have read my "hwrev" and I got "17" in decimal.
Any suggestions ?
It sounds like you have encountered a driver bug.
At this point I suspect that the display data FIFOs are setup incorrectly by the driver. The values you need to program them with depend on the hardware revision. I don't have any detailed information on how to program them other than what's publically available in VIA's X drivers, so I simply copied their settings. I think the fifos manage the amount of memory bandwith allocated for the overlays.
When the horizontal screen resolution > 1024 pixels, VIA's driver enables what they call the "extended FIFO". We had to disable it permanently in the DirectFB driver, because touching the extended fifo's hardware registers created problems. If this is the source of your problems, it is perhaps time to fix it.
So, is your horizontal screen resolution set to more than 1024? If so, does the problem remain if you reduce it to e.g 800, and perhaps 16-bit color?
If this doesn't help, I'll dig some more in the X driver and see if I can come up with something. If you are up for it, we could try "brute force debugging". You start X windows with the latest driver from the Unichrome team (unichrome.sf.net), open up a video overlay with an application that uses Xvideo (e.g VeXP - https://sourceforge.net/projects/viaexp/) and dump the unichrome register values to a text file. Then we compare those with DirectFB's settings and try to see what the problem is.
Btw, what is the surface pixel format of your video overlay?
/Andreas
