Introduction and updates from NVIDIA

Kristian Høgsberg hoegsberg at
Tue May 3 19:49:21 UTC 2016

On Tue, May 3, 2016 at 11:58 AM, James Jones <jajones at> wrote:
> On 05/03/2016 09:58 AM, Daniel Stone wrote:
>> Hi James,
>> On 3 May 2016 at 17:29, James Jones <jajones at> wrote:
>>> Given Wayland is designed such that clients drive buffer allocation
>> I'd just note that this isn't strictly true. I've personally
>> implemented Wayland support for platforms (media playback on an
>> extremely idiosyncratic platform) where server-side buffer allocation
>> was required for optimal performance, and that's what was done. wl_drm
>> is not exemplary for these platforms as it does not have a protocol
>> concept of a swapchain, but you can add one to your own private
>> protocol implementation (analagous to wl_eglstream) and it works with
>> no changes required to external clients or compositors.
> Indeed, streams blur this a bit as well.  What I meant to way is that
> clients drive the timing of when new buffers are available for compositing.
> Perhaps the server could perform a non-destructive reallocation to avoid
> this though if the cost of such an operation were not considered
> prohibitive?
>>> , and I
>>> tend to agree that the compositor (along with its access to drivers like
>>> KMS) is the component uniquely able to optimize the scene, I think the
>>> best
>>> that can be achieved is a system that gravitates toward the optimal
>>> solution
>>> in the steady state.  Therefore, it seems that KMS should optimize
>>> display
>>> engine resources assuming the Wayland compositor and its clients will
>>> adjust
>>> to meet KMS' suggestions over time, where "time" would hopefully be only
>>> a
>>> small number of additional frames. Streams will perform quite well in
>>> such a
>>> design.
>> It is unfortunate that you seem to discuss 'Streams' as an abstract
>> concept of a cross-process swapchain which can be infinitely adjusted
>> to achieve perfection, and yet 'GBM' gets discussed as a singular
>> fixed-in-time thing which has all the flaws of just one of its
>> particular platform implementations.
> I have a stronger understanding of the design direction for streams than I
> do for GBM, and EGLStream is indeed intended to evolve towards the best
> abstraction of a swapchain possible.  My views of GBM are based on the
> current API.  I'm not that familiar with the Mesa implementation details.
> I'd be happy to learn more about the direction the GBM API is taking in the
> future, and that's half of what I was attempting to do in my
> responses/questions here.
>> I don't see how GBM could really perform any worse in such a design.
> The current GBM API is not expressive enough to support optimal buffer
> allocation (at least on our hardware) in such a design.

I'm curious about the performance concern. What exactly is missing?


More information about the wayland-devel mailing list