For HW cursors, "cursor.pos" doesn't hold the current position of the pointer, just the position of the last call to SetCursorPosition().
Skip the check against stale values for present interface v1.5, so it can do it properly itself. Signed-off-by: Andre Heider <a.hei...@gmail.com> --- Corresponding d3d9-nine.dll patch: https://github.com/iXit/wine-nine-standalone/commit/e095d0beb2004f69a9b917266e556920296050f7 src/gallium/state_trackers/nine/adapter9.c | 2 +- src/gallium/state_trackers/nine/device9.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gallium/state_trackers/nine/adapter9.c b/src/gallium/state_trackers/nine/adapter9.c index 4f648e894b8..774e3cf10dd 100644 --- a/src/gallium/state_trackers/nine/adapter9.c +++ b/src/gallium/state_trackers/nine/adapter9.c @@ -35,7 +35,7 @@ #define DBG_CHANNEL DBG_ADAPTER /* The maximum supported present version */ -#define MAX_PRESENT_VERSION_MINOR 4 +#define MAX_PRESENT_VERSION_MINOR 5 HRESULT NineAdapter9_ctor( struct NineAdapter9 *This, diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index db1c3a1d23d..6f9094b62c2 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -793,9 +793,11 @@ NineDevice9_SetCursorPosition( struct NineDevice9 *This, DBG("This=%p X=%d Y=%d Flags=%d\n", This, X, Y, Flags); - if (This->cursor.pos.x == X && - This->cursor.pos.y == Y) - return; + /* present >= v1.5 handles this itself */ + if (This->minor_version_num < 5) { + if (This->cursor.pos.x == X && This->cursor.pos.y == Y) + return; + } This->cursor.pos.x = X; This->cursor.pos.y = Y; -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev