[maemo-developers] [maemo-developers] SDL vertical blank (vbl) sync.

From: Eero Tamminen eero.tamminen at movial.fi
Date: Tue May 30 18:00:55 EEST 2006

> Yes. So to draw without tearing effect either X of framebuffer driver
> should report when to draw (vblank period or which line is currently
> drawn by hardware)

Another possibility is that (SDL) application could ask X server to
ask Framebuffer to flush the framebuffer contents to the LCD controller
when it's done with a frame.  It might even do that directly by calling
the fb ioctls (if there would be such ioctl and it would have access
rights to do it).

AFAIK the framebuffer doesn't have constant update rate to the LCD and
it doesn't immediately push every framebuffer update to the LCD controller.
It does updates only if the framebuffer contents have been updated
(there's an ioctl to tell that) and there's a certain amount of time
since last update.  So, if application could force the framebuffer
flush, it would have time to update the screen before the next
(automated or application forced) flushing happens.

> or the controller has to have two buffers so single
> or multiple SDL_UpdateRects could be pushed to visible screen in one
> operation (SDL_Flip) in appropriate moment. 

Cannot/doesn't SDL do double buffering by itself when asked?
(it would be much slower if it's done in the normal RAM where
the framebuffer resides, but at least there wouldn't be tearing. :))

	- Eero

More information about the maemo-developers mailing list