本文主要是介绍drm 随记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
调用drmModePageFlip来更换缓冲区,当下一次vblank时,内核会类似于调用drmModeSetCrtc()来执行framebuffer切换动作:fb->crtc->conn->mode.
drmModeSetCrtc是用户直接调用切换缓冲区并立即生效;而drmModePageFlip由内核去调用切换缓冲区,并且调用时机为下一个vblank。
drmHandleEvent会处理两种消息 ,一种是 VBLANK , 一种是pageFlip complete;我们只关心上一次的pageFlip 完成,以便我们进行下一次pageFlip。
所以我们指定了ev.page_flip_handler回调函数。当该函数触发时,代表上次的备好的缓冲区内核更换完成,我们现在就要准备下一次缓冲区了。
这篇关于drm 随记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!