drm: ignore page-flip events on other CRTCs
This commit is contained in:
parent
d5d3efe303
commit
5c6ab5a730
1 changed files with 6 additions and 4 deletions
10
src/drm.cpp
10
src/drm.cpp
|
@ -219,11 +219,13 @@ static struct plane *find_primary_plane(struct drm_t *drm)
|
||||||
|
|
||||||
static void drm_free_fb( struct drm_t *drm, struct fb *fb );
|
static void drm_free_fb( struct drm_t *drm, struct fb *fb );
|
||||||
|
|
||||||
static void page_flip_handler(int fd, unsigned int frame,
|
static void page_flip_handler(int fd, unsigned int frame, unsigned int sec, unsigned int usec, unsigned int crtc_id, void *data)
|
||||||
unsigned int sec, unsigned int usec, void *data)
|
|
||||||
{
|
{
|
||||||
uint64_t flipcount = (uint64_t)data;
|
uint64_t flipcount = (uint64_t)data;
|
||||||
|
|
||||||
|
if ( g_DRM.crtc->id != crtc_id )
|
||||||
|
return;
|
||||||
|
|
||||||
vblank_mark_possible_vblank();
|
vblank_mark_possible_vblank();
|
||||||
|
|
||||||
// TODO: get the fbids_queued instance from data if we ever have more than one in flight
|
// TODO: get the fbids_queued instance from data if we ever have more than one in flight
|
||||||
|
@ -286,8 +288,8 @@ void flip_handler_thread_run(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
drmEventContext evctx = {
|
drmEventContext evctx = {
|
||||||
.version = 2,
|
.version = 3,
|
||||||
.page_flip_handler = page_flip_handler,
|
.page_flip_handler2 = page_flip_handler,
|
||||||
};
|
};
|
||||||
drmHandleEvent(g_DRM.fd, &evctx);
|
drmHandleEvent(g_DRM.fd, &evctx);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue