On Wed, Aug 24, 2016 at 03:30:11PM +0200, Hans de Goede wrote: > 99% of the code in ms_covering_crtc is video-driver agnostic. Add a > screen_is_ms parameter when when FALSE skips the one ms specific check, > this will allow calling ms_covering_crtc on slave GPUs. > > Signed-off-by: Hans de Goede <[email protected]> > --- > hw/xfree86/drivers/modesetting/vblank.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/hw/xfree86/drivers/modesetting/vblank.c > b/hw/xfree86/drivers/modesetting/vblank.c > index e738497..ec60ac4 100644 > --- a/hw/xfree86/drivers/modesetting/vblank.c > +++ b/hw/xfree86/drivers/modesetting/vblank.c > @@ -97,7 +97,7 @@ ms_crtc_on(xf86CrtcPtr crtc) > */ > > static xf86CrtcPtr > -ms_covering_crtc(ScreenPtr pScreen, BoxPtr box) > +ms_covering_crtc(ScreenPtr pScreen, BoxPtr box, Bool screen_is_ms) > { > ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen); > xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); > @@ -105,14 +105,20 @@ ms_covering_crtc(ScreenPtr pScreen, BoxPtr box) > int coverage, best_coverage; > int c; > BoxRec crtc_box, cover_box; > + Bool crtc_on; > > best_crtc = NULL; > best_coverage = 0; > for (c = 0; c < xf86_config->num_crtc; c++) { > crtc = xf86_config->crtc[c]; > > + if (screen_is_ms) > + crtc_on = ms_crtc_on(crtc); > + else > + crtc_on = crtc->enabled;
This will skip the check whether a screen is on or off via DPMS, right? If the DPMS property is somehow not valid for output slaves, shouldn't that be fixed instead? (Please correct/educate me if I am wrong, this is all new for me ;)) Kind regards, Peter > + > /* If the CRTC is off, treat it as not covering */ > - if (!ms_crtc_on(crtc)) > + if (!crtc_on) > continue; > > ms_crtc_box(crtc, &crtc_box); > @@ -137,7 +143,7 @@ ms_dri2_crtc_covering_drawable(DrawablePtr pDraw) > box.x2 = box.x1 + pDraw->width; > box.y2 = box.y1 + pDraw->height; > > - return ms_covering_crtc(pScreen, &box); > + return ms_covering_crtc(pScreen, &box, TRUE); > } > > static Bool > -- > 2.9.3 > -- Kind regards, Peter Wu https://lekensteyn.nl _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
