Do present immediately in this case.

v2: fix the overflow

Change-Id: I25b9212169ccbf572b88c033dc09c0ac5cfa4812
Signed-off-by: Jammy Zhou <[email protected]>
---
 src/amdgpu_present.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/amdgpu_present.c b/src/amdgpu_present.c
index 5e5ed72..b9cc1c7 100644
--- a/src/amdgpu_present.c
+++ b/src/amdgpu_present.c
@@ -160,6 +160,16 @@ amdgpu_present_queue_vblank(RRCrtcPtr crtc, uint64_t 
event_id, uint64_t msc)
        struct amdgpu_drm_queue_entry *queue;
        drmVBlank vbl;
        int ret;
+       uint64_t crtc_ust, crtc_msc;
+
+       ret = amdgpu_present_get_ust_msc(crtc, &crtc_ust, &crtc_msc);
+       if (ret != Success)
+               return ret;
+
+       if (crtc_msc >= msc) {
+               present_event_notify(event_id, crtc_ust, crtc_msc);
+               return Success;
+       }
 
        event = calloc(sizeof(struct amdgpu_present_vblank_event), 1);
        if (!event)
-- 
1.9.1

_______________________________________________
xorg-driver-ati mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-driver-ati

Reply via email to