Message ID | 1344475657-1148-1-git-send-email-rob.clark@linaro.org |
---|---|
State | New |
Headers | show |
On Wed, Aug 08, 2012 at 08:27:37PM -0500, Rob Clark wrote: > From: Rob Clark <rob@ti.com> Ah, yes, thanks Rob. Kristian > Signed-off-by: Rob Clark <rob@ti.com> > --- > src/compositor-drm.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/src/compositor-drm.c b/src/compositor-drm.c > index 8ea4965..80dccfc 100644 > --- a/src/compositor-drm.c > +++ b/src/compositor-drm.c > @@ -100,6 +100,7 @@ struct drm_output { > struct weston_output base; > > uint32_t crtc_id; > + int pipe; > uint32_t connector_id; > drmModeCrtcPtr original_crtc; > > @@ -374,6 +375,9 @@ drm_output_repaint(struct weston_output *output_base, > weston_log("setplane failed: %d: %s\n", > ret, strerror(errno)); > > + if (output->pipe > 0) > + vbl.request.type |= DRM_VBLANK_SECONDARY; > + > /* > * Queue a vblank signal so we know when the surface > * becomes active on the display or has been replaced. > @@ -1285,6 +1289,7 @@ create_output_for_connector(struct drm_compositor *ec, > wl_list_init(&output->base.mode_list); > > output->crtc_id = resources->crtcs[i]; > + output->pipe = i; > ec->crtc_allocator |= (1 << output->crtc_id); > output->connector_id = connector->connector_id; > ec->connector_allocator |= (1 << output->connector_id); > -- > 1.7.9.5 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
diff --git a/src/compositor-drm.c b/src/compositor-drm.c index 8ea4965..80dccfc 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @@ -100,6 +100,7 @@ struct drm_output { struct weston_output base; uint32_t crtc_id; + int pipe; uint32_t connector_id; drmModeCrtcPtr original_crtc; @@ -374,6 +375,9 @@ drm_output_repaint(struct weston_output *output_base, weston_log("setplane failed: %d: %s\n", ret, strerror(errno)); + if (output->pipe > 0) + vbl.request.type |= DRM_VBLANK_SECONDARY; + /* * Queue a vblank signal so we know when the surface * becomes active on the display or has been replaced. @@ -1285,6 +1289,7 @@ create_output_for_connector(struct drm_compositor *ec, wl_list_init(&output->base.mode_list); output->crtc_id = resources->crtcs[i]; + output->pipe = i; ec->crtc_allocator |= (1 << output->crtc_id); output->connector_id = connector->connector_id; ec->connector_allocator |= (1 << output->connector_id);