On Wed, Jun 22, 2016 at 4:50 AM, Michel Dänzer <michel at daenzer.net> wrote: > From: Michel Dänzer <michel.daenzer at amd.com> > > All unflip checks apply to flips as well, but not vice versa. > > Signed-off-by: Michel Dänzer <michel.daenzer at amd.com> > --- > src/amdgpu_present.c | 43 +++++++++++++++++++++++++------------------ > 1 file changed, 25 insertions(+), 18 deletions(-) > > diff --git a/src/amdgpu_present.c b/src/amdgpu_present.c > index c0b2f17..b0ee580 100644 > --- a/src/amdgpu_present.c > +++ b/src/amdgpu_present.c > @@ -210,16 +210,9 @@ amdgpu_present_flush(WindowPtr window) > amdgpu_glamor_flush(xf86ScreenToScrn(window->drawable.pScreen)); > } > > -/* > - * Test to see if page flipping is possible on the target crtc > - */ > static Bool > -amdgpu_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap, > - Bool sync_flip) > +amdgpu_present_check_unflip(ScrnInfoPtr scrn) > { > - ScreenPtr screen = window->drawable.pScreen; > - ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > - AMDGPUInfoPtr info = AMDGPUPTR(scrn); > xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn); > int num_crtcs_on; > int i; > @@ -227,15 +220,6 @@ amdgpu_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap, > if (!scrn->vtSema) > return FALSE; > > - if (!info->allowPageFlip) > - return FALSE; > - > - if (info->hwcursor_disabled) > - return FALSE; > - > - if (info->drmmode.dri2_flipping) > - return FALSE; > - > for (i = 0, num_crtcs_on = 0; i < config->num_crtc; i++) { > drmmode_crtc_private_ptr drmmode_crtc = config->crtc[i]->driver_private; > > @@ -254,6 +238,29 @@ amdgpu_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap, > } > > /* > + * Test to see if page flipping is possible on the target crtc > + */ > +static Bool > +amdgpu_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap, > + Bool sync_flip) > +{ > + ScreenPtr screen = window->drawable.pScreen; > + ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > + AMDGPUInfoPtr info = AMDGPUPTR(scrn); > + > + if (!info->allowPageFlip) > + return FALSE; > + > + if (info->hwcursor_disabled) > + return FALSE; > + > + if (info->drmmode.dri2_flipping) > + return FALSE; > + > + return amdgpu_present_check_unflip(scrn); Maybe add a comment as per your commit message above the unflip check to make it clear why we calling unflip from the flip function. Either way: Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > +} > + > +/* > * Once the flip has been completed on all CRTCs, notify the > * extension code telling it when that happened > */ > @@ -333,7 +340,7 @@ amdgpu_present_unflip(ScreenPtr screen, uint64_t event_id) > PixmapPtr pixmap = screen->GetScreenPixmap(screen); > int i; > > - if (!amdgpu_present_check_flip(NULL, screen->root, pixmap, TRUE)) > + if (!amdgpu_present_check_unflip(scrn)) > goto modeset; > > event = calloc(1, sizeof(struct amdgpu_present_vblank_event)); > -- > 2.8.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx