[RFC weston 00/14] Atomic modesetting support

Pekka Paalanen ppaalanen at gmail.com
Fri May 22 04:51:51 PDT 2015


On Thu, 21 May 2015 11:55:31 +0300
Pekka Paalanen <ppaalanen at gmail.com> wrote:

> On Thu, 21 May 2015 08:34:56 +0100
> Daniel Stone <daniel at fooishbar.org> wrote:
> 
> > Hi,
> > 
> > On 21 May 2015 at 08:28, Daniel Stone <daniels at collabora.com> wrote:
> > > This patchset is an experimental/RFC implementation of atomic modesetting
> > > for Weston, as a proof-of-concept for the overall kernel API. It still
> > > definitely has some rough edges, and safe to say it isn't 1.8 material,
> > > but might be useful to look at regardless, especially for those of you
> > > interested in compositor-drm internals.
> > 
> > This is also available at:
> > git://git.collabora.com/git/user/daniels/weston wip/atomic-modeset
> 
> And for the kernel dependency for Intel:
> 
> < daniels> pq: oh yeah, if you want to test on a real live system, 
> git://git.collabora.com/git/user/daniels/linux.git, branch wip/4.1.x/blob-modes-i915
> 
> Also adding some people to CC.
> 
> You can also subcribe to
> https://bugs.freedesktop.org/show_bug.cgi?id=83888
> 
> This email thread starts at
> http://lists.freedesktop.org/archives/wayland-devel/2015-May/022106.html

Daniel says hello and tells the libdrm branch is:
git://git.collabora.co.uk/git/user/daniels/libdrm atomic


I just remembered, that this patch series does not excercise
DRM_MODE_ATOMIC_TEST_ONLY. Using it would be quite some more
refactoring.

In Weston's assign_planes(), we would need to start with a
drmModeAtomicReq that sets only the primary plane. Then one by one, for
each weston_surface that can go on a DRM plane, add it to the req
and do a test commit. If the test commit fails, remove the
weston_surface from the req and stop or try other
weston_surfaces. Once that completes, we know what set of plane updates
will succeed, and only then we can launch the composite rendering for
the rest.

However, removing a plane update from a req is not possible,
right? You have to just destroy the whole thing and reconstruct it
without the bad update.

Could there be some kind of libdrm API for marking points in a req
and then the ability to remove all updates added after the mark?

Or just to make copy of the req before adding a tentative new
plane, but then we have to create and destroy copies a lot, also in the
case where everything is ok.


Thanks,
pq


More information about the wayland-devel mailing list