Debugging tablet issues on Windows

Andrew Chadwick edited this page Nov 17, 2016 · 2 revisions
Clone this wiki locally

:scream: Tablet glitches are hard to deal with on Windows. And they're often not even our fault.

We get a lot of reported tablet issues on Windows which are a result of us using a separate library called GDK to handle tablet input. The "win32" backend to GDK is not very thoroughly tested for all possible tablets, because Windows is a minority operating system for the parent GTK+ project. Tablet support can be particularly hard to get working because the GTK developers don't have access to all tablet models out there.

When it works, it works. You may have to trust me on that. When it doesn't work, you may see:

  • Loss of precision: i.e. offsets between the cursor and the paint position. May be caused by multiple monitors.
  • Crashes: These are upstream issues which need to be reported to GTK's bug tracker. See Debugging crashes on Windows for a quick intro to capturing the info the developers will need.
  • Missing pressure or tilt. This may be caused by an incomplete tablet setup, or by a missing wintab32.dll.

We'll try to get you testing so that you can report the problem appropriately. But don't be discouraged if we ask you to report the problem elsewhere if it proves to be not our fault.

Testing with gtk3-demo

Please confirm for us whether your glitch or crash can be reproduced in an updated MSYS2's gtk3-demo program. If it happens there, then your bug is not MyPaint and needs to be reported upstream, to the GTK+ developers. These instructions assume you are using a 64-bit Windows PC, windows 7 or later:

  1. Install msys2-x86_64-20161025.exe or later from https://msys2.github.io/ in the time-honoured Windows way.

  2. In an MSYS2 shell, at the $ prompt, type:

    pacman -Syyuu ⏎
    

    Then follow the instructions in the output to update MSYS2. The ⏎ means to press the Return or Enter key - the one used to end paragraphs. It may have a symbol like ⏎ instead.

    MSYS2 is a rolling software distribution, so you need to catch up before moving on to the next bit.

  3. Next, launch another MSYS2 shell, and type:

    mkdir -p /mingw{32,64} ⏎
    pacman -S msys2-launcher-git ⏎
    pacman -S mingw-w64-x86_64-gtk3 ⏎
    

    This installs the demo program we'd like you to use.

  4. Start a "native" MINGW64 shell using mingw64.exe or one of the shortcuts. In it, type:

    gtk3-demo --gdk-debug=input --run=event_axes ⏎
    

    This is a graphical test, and you can make the tablet test window bigger.

    image

    However the terminal output that gets shown as a result of the --gdk-debug=input parameter is very relevant for bug reporting as well. Please help us by pasting it into your bug report.