compositor-drm: handle vblanks on secondary crtc

Signed-off-by: Rob Clark <rob@ti.com>
Rob Clark 12 years ago committed by Kristian Høgsberg
parent 19a4c2db26
commit 5ca1a47e23
  1. 5
      src/compositor-drm.c

@ -116,6 +116,7 @@ struct drm_output {
char *name; char *name;
uint32_t crtc_id; uint32_t crtc_id;
int pipe;
uint32_t connector_id; uint32_t connector_id;
drmModeCrtcPtr original_crtc; drmModeCrtcPtr original_crtc;
@ -407,6 +408,9 @@ drm_output_repaint(struct weston_output *output_base,
weston_log("setplane failed: %d: %s\n", weston_log("setplane failed: %d: %s\n",
ret, strerror(errno)); ret, strerror(errno));
if (output->pipe > 0)
vbl.request.type |= DRM_VBLANK_SECONDARY;
/* /*
* Queue a vblank signal so we know when the surface * Queue a vblank signal so we know when the surface
* becomes active on the display or has been replaced. * becomes active on the display or has been replaced.
@ -1365,6 +1369,7 @@ create_output_for_connector(struct drm_compositor *ec,
output->name = strdup(name); output->name = strdup(name);
output->crtc_id = resources->crtcs[i]; output->crtc_id = resources->crtcs[i];
output->pipe = i;
ec->crtc_allocator |= (1 << output->crtc_id); ec->crtc_allocator |= (1 << output->crtc_id);
output->connector_id = connector->connector_id; output->connector_id = connector->connector_id;
ec->connector_allocator |= (1 << output->connector_id); ec->connector_allocator |= (1 << output->connector_id);

Loading…
Cancel
Save