I'm working on an embedded Linux project utilizing the AVR32 platform and LCD controller. I was getting artifacts with my DirectFB user interface when doing a surface Flip() and discovered that the atmel_lcdfb driver did not implement the FBIO_WAITFORVSYNC ioctl(). I have now implemented this ioctl in the driver (by waiting for the End Of Frame interrupt for the LCD controller), but I'm getting unexpected results.

If I do an explicit WaitForSync, draw the page and then do a flip, it works fine, no artifacts. If I pass the DSFLIP_ONSYNC flag instead, it seems that every single flip is done in the middle of the refresh. This suggests that DirectFB is mixed up as to which buffer is currently active, since I was under the impression that any draw operations to a surface, should be going to the non-active backing store.

Any ideas how to resolve this? I can just leave it with the explicit WaitForSync, but I suspect this is only working because my page draw is happening fast enough within the VSYNC.

Best regards,

Josh Green

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to