Hi Carlos, On 9 February 2018 at 08:33, Carlos Rafael Giani <d...@pseudoterminal.org> wrote: > 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.
You're correct that there is no explicit control available. On the other hand, having three buffers is pretty much guaranteed for GBM: since your last buffer won't be released until after vblank, only having double buffering is likely to give you very badly reduced performance. (In practice, Mesa makes four buffers available.) > 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? This is an implementation detail. Usually buffer allocation is deferred to the first draw call of a frame: if there are no buffers available, then the implementation will allocate a new one. Cheers, Daniel _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev