xserver-multidpi/hw
Takashi Iwai af916477c6 modesetting: Fix hw cursor check at the first call
With the previous patch, the modesetting driver can now return whether
the driver supports hw cursor.  However, it alone doesn't suffice,
unfortunately. drmmode_load_cursor_argb_check() is called in the
following chain:

  xf86CursorSetCursor()
    -> xf86SetCursor()
       -> xf86DriverLoadCursorARGB()
         -> xf86_load_cursor_argb()
           -> xf86_crtc_load_cursor_argb()
             -> drmmode_load_cursor_argb_check()

*but* at first with drmmode_crtc->cursor_up = FALSE.  Then the
function doesn't actually set the cursor but returns TRUE
unconditionally.  The actual call of drmmode_set_cursor() is done at
first via the show_cursor callback, and there is no check of sw cursor
fallback any longer at this place. Since it's called only once per
cursor setup, so the xserver still thinks as if the hw cursor is
supported.

This patch is an ad hoc fix to correct the behavior somehow: it does
call drmmode_set_cursor() at the very first time even if cursor_up is
FALSE, then quickly hides again.  In that way, whether the hw cursor
is supported is evaluated in the right place at the right time.

Of course, it might be more elegant if we have a more proper mechanism
to fall back to sw cursor at any call path.  But it'd need more
rework, so I leave this workaround as is for now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-07-02 09:26:11 +02:00
..
dmx dix: Update some comments to reflect the new non-SIGIO input model 2016-06-08 11:36:32 -04:00
kdrive ephyr: Process only the last expose or configure available from the server 2016-06-20 11:55:21 -07:00
vfb vfb: Re-add LD_EXPORT_SYMBOLS_FLAG to LDFLAGS 2016-03-23 14:47:24 -04:00
xfree86 modesetting: Fix hw cursor check at the first call 2016-07-02 09:26:11 +02:00
xnest xnest: Fix needless build dependency on xcb-util-keysyms 2015-11-24 10:41:14 -05:00
xquartz XQuartz: Update copyright years 2016-05-04 00:08:34 -07:00
xwayland xwayland-input: Fake crossing to rootwin 2016-06-23 16:00:30 +10:00
xwin hw/xwin: Fix a typo in "Remove Shadow DirectDraw engine" 2016-06-28 14:29:33 +01:00
Makefile.am Xwayland DDX 2014-04-03 15:19:22 -07:00