mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-01-02 07:40:16 +01:00
Add support for handling DRM_EVENT_ATOMIC_HW_DONE events
This commit is contained in:
parent
6698a28d3a
commit
5f92bf1568
2 changed files with 17 additions and 1 deletions
|
|
@ -770,7 +770,7 @@ extern int drmSetMaster(int fd);
|
|||
extern int drmDropMaster(int fd);
|
||||
extern int drmIsMaster(int fd);
|
||||
|
||||
#define DRM_EVENT_CONTEXT_VERSION 4
|
||||
#define DRM_EVENT_CONTEXT_VERSION 5
|
||||
|
||||
typedef struct _drmEventContext {
|
||||
|
||||
|
|
@ -801,6 +801,11 @@ typedef struct _drmEventContext {
|
|||
uint64_t sequence,
|
||||
uint64_t ns,
|
||||
uint64_t user_data);
|
||||
|
||||
void (*atomic_hw_done_handler)(int fd,
|
||||
unsigned int tv_sec,
|
||||
unsigned int tv_usec,
|
||||
void *user_data);
|
||||
} drmEventContext, *drmEventContextPtr;
|
||||
|
||||
extern int drmHandleEvent(int fd, drmEventContextPtr evctx);
|
||||
|
|
|
|||
|
|
@ -1036,6 +1036,7 @@ drm_public int drmHandleEvent(int fd, drmEventContextPtr evctx)
|
|||
struct drm_event *e;
|
||||
struct drm_event_vblank *vblank;
|
||||
struct drm_event_crtc_sequence *seq;
|
||||
struct drm_event_atomic_hw_done *atomic_hw_done;
|
||||
void *user_data;
|
||||
|
||||
/* The DRM read semantics guarantees that we always get only
|
||||
|
|
@ -1088,6 +1089,16 @@ drm_public int drmHandleEvent(int fd, drmEventContextPtr evctx)
|
|||
seq->time_ns,
|
||||
seq->user_data);
|
||||
break;
|
||||
case DRM_EVENT_ATOMIC_HW_DONE:
|
||||
atomic_hw_done = (struct drm_event_atomic_hw_done *) e;
|
||||
user_data = U642VOID (atomic_hw_done->user_data);
|
||||
|
||||
if (evctx->version >= 5 && evctx->atomic_hw_done_handler)
|
||||
evctx->atomic_hw_done_handler(fd,
|
||||
atomic_hw_done->tv_sec,
|
||||
atomic_hw_done->tv_usec,
|
||||
user_data);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue