modesetting: try and use hotspot cursor support
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
4aab7aa7c1
commit
fac2bcf1da
|
@ -43,6 +43,8 @@
|
|||
#include "xf86Crtc.h"
|
||||
#include "drmmode_display.h"
|
||||
|
||||
#include <cursorstr.h>
|
||||
|
||||
/* DPMS */
|
||||
#ifdef HAVE_XEXTPROTO_71
|
||||
#include <X11/extensions/dpmsconst.h>
|
||||
|
@ -491,6 +493,18 @@ drmmode_show_cursor (xf86CrtcPtr crtc)
|
|||
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
|
||||
drmmode_ptr drmmode = drmmode_crtc->drmmode;
|
||||
uint32_t handle = drmmode_crtc->cursor_bo->handle;
|
||||
static Bool use_set_cursor2 = TRUE;
|
||||
|
||||
if (use_set_cursor2) {
|
||||
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
|
||||
CursorPtr cursor = xf86_config->cursor;
|
||||
int ret;
|
||||
ret = drmModeSetCursor2(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, handle, ms->cursor_width, ms->cursor_height, cursor->bits->xhot, cursor->bits->yhot);
|
||||
if (ret == -ENOSYS)
|
||||
use_set_cursor2 = FALSE;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, handle,
|
||||
ms->cursor_width, ms->cursor_height);
|
||||
|
|
Loading…
Reference in New Issue
Block a user