present: Use crtc's screen present operation for syncing
Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
This commit is contained in:
parent
d03c0de77b
commit
908deb0895
|
@ -78,6 +78,9 @@ present_check_flip(RRCrtcPtr crtc,
|
|||
WindowPtr root = screen->root;
|
||||
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
|
||||
|
||||
if (crtc) {
|
||||
screen_priv = present_screen_priv(crtc->pScreen);
|
||||
}
|
||||
if (reason)
|
||||
*reason = PRESENT_FLIP_REASON_UNKNOWN;
|
||||
|
||||
|
@ -177,11 +180,14 @@ static int
|
|||
present_get_ust_msc(ScreenPtr screen, RRCrtcPtr crtc, uint64_t *ust, uint64_t *msc)
|
||||
{
|
||||
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
|
||||
present_screen_priv_ptr crtc_screen_priv = screen_priv;
|
||||
if (crtc)
|
||||
crtc_screen_priv = present_screen_priv(crtc->pScreen);
|
||||
|
||||
if (crtc == NULL)
|
||||
return present_fake_get_ust_msc(screen, ust, msc);
|
||||
else
|
||||
return (*screen_priv->info->get_ust_msc)(crtc, ust, msc);
|
||||
return (*crtc_screen_priv->info->get_ust_msc)(crtc, ust, msc);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -212,7 +218,7 @@ present_queue_vblank(ScreenPtr screen,
|
|||
ret = present_fake_queue_vblank(screen, event_id, msc);
|
||||
else
|
||||
{
|
||||
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
|
||||
present_screen_priv_ptr screen_priv = present_screen_priv(crtc->pScreen);
|
||||
ret = (*screen_priv->info->queue_vblank) (crtc, event_id, msc);
|
||||
}
|
||||
return ret;
|
||||
|
@ -511,6 +517,9 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
|
|||
WindowPtr window = vblank->window;
|
||||
ScreenPtr screen = window->drawable.pScreen;
|
||||
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
|
||||
if (vblank && vblank->crtc) {
|
||||
screen_priv=present_screen_priv(vblank->crtc->pScreen);
|
||||
}
|
||||
|
||||
if (present_execute_wait(vblank, crtc_msc))
|
||||
return;
|
||||
|
|
|
@ -62,6 +62,10 @@ present_vblank_create(WindowPtr window,
|
|||
present_vblank_ptr vblank;
|
||||
PresentFlipReason reason = PRESENT_FLIP_REASON_UNKNOWN;
|
||||
|
||||
if (target_crtc) {
|
||||
screen_priv = present_screen_priv(target_crtc->pScreen);
|
||||
}
|
||||
|
||||
vblank = calloc (1, sizeof (present_vblank_rec));
|
||||
if (!vblank)
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in New Issue
Block a user