[Mesa-dev] GBM, KMS/DRM, triple buffering

Carlos Rafael Giani dv at pseudoterminal.org
Fri Feb 9 08:33:38 UTC 2018

I want to implement triple buffering instead of double buffering for a 
program that uses EGL on GBM on a KMS-enabled platform. So far, I used 
kmscube as an example.

However, I do not see where I can specify that I want to have 3 buffers 
allocated instead of 2. From what I saw, I could try to call 
gbm_dri_surface_lock_front_buffer() to produce 3 BOs over time, but 
there's a chance that gbm_dri_surface_has_free_buffers() will return 0 
after getting 2 BOs already.

And, does gbm_dri_surface_lock_front_buffer() internally allocate the 
buffer itself too (not just the BO structure)? Or are the flippable 
pages preallocated by the implementation?

More information about the mesa-dev mailing list