Bug 388531 - Brush Rotation broken with Wacom Art Pen
Summary: Brush Rotation broken with Wacom Art Pen
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Brush engines (show other bugs)
Version: 4.0.0-beta.1
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2018-01-04 16:34 UTC by Camille Bissuel
Modified: 2018-02-27 15:09 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
opensuse tablet log (35.12 KB, text/plain)
2018-01-04 17:03 UTC, Halla Rempt
Details
ubuntu neon tablet log (latest plasma, based on 16.04) (131.27 KB, text/plain)
2018-01-04 17:11 UTC, Halla Rempt
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Camille Bissuel 2018-01-04 16:34:42 UTC
Hi dear Krita team,

I first reported this bug in the Linux Wacom Project, here : https://sourceforge.net/p/linuxwacom/bugs/354/

I'm using Antergos Linux 64b (Arch based) with a Cintiq 27 and an Art Pen.
To test, you can get my Krita Brushes supporting rotation here : https://nylnook.art/en/blog/krita-brushes-pack-v2/
or use Wolthera Calligraphy brushes in her Inking pack : https://www.dropbox.com/s/4nj8t4538f5wx2s/Wolthera_Inking_Pack.bundle?dl=0

I had a bad surprise after an update in december, my Art Pen cursor stopped to rotate in Krita... It works in Gimp. Cursor do not rotate at all, but pressure and tilt are working as usual.

It's strange because it was working with the same Krita version previously, so my best guess is that is a Krita dependency that have been updated and broke rotation. I tried to downgrade several packages with no success.

After tests with Jason Gerecke, it's confirmed and it seems that the Linux Wacom drivers or Xorg are not responsible of this.
Here is what he reported :
"Further tests in Krita have been pretty confusing. I tried modifying one of your brushes to rotate based on "Tangential Pressure" (airbrush wheel) and was able to get that working. After restarting Krita and ensuring the brush was still set up to use "Tangential Pressure", however, I could no longer get it to work. The "Tangential Pressure" data is sent by our driver in a[5] just like "Rotation" data is, so clearly Krita can sometimes read it...

I've looked through Krita's code and don't see anything /obviously/ wrong with it, but when I enable tablet debugging (CTRL+SHIFT+T and then watch console output) I notice that although it correctly reports pen pressure and tilt, other information is hit-and-miss. Sometimes I get the pen's unique ID, sometimes its reported as "0". I assume that rotation and tangential pressure would also be reported when it works, but I see "0" for these values at the moment (and haven't figured out why tangential pressure suddenly stopped working after restarting the program).

I almost wonder if Krita is failing to initialize some of its variables correctly, or if it has issues when multiple tablets are plugged in... More things to test..."
Please read the full bug report for details.

This is pretty annoying for my drawing style, specially for inking.
Comment 1 wolthera 2018-01-04 16:43:48 UTC
Confirmed with intuos 3... There was another bug report for this as well, but I cannot seem to find it, so I'll just set this to confirmed.
Comment 2 wolthera 2018-01-04 16:54:28 UTC
Hm... this seems to be a package issue though, boud on openSuse does have rotation...

For the record:
xsetwacom -V gives 0.34.0
Comment 3 Halla Rempt 2018-01-04 16:58:53 UTC
OSX also has rotation. Haven't yet checked with Windows. Also, I probably should create a tablet log on OpenSUSE to see if that also has the same weirdness.
Comment 4 Halla Rempt 2018-01-04 17:00:28 UTC
boud@linux-s09k:~/dev/b-aniketh> zypper info libinput10
Loading repository data...
Reading installed packages...


Information for package libinput10:
-----------------------------------
Repository     : Main Repository (OSS)                    
Name           : libinput10                               
Version        : 1.5.0-1.2                                
Arch           : x86_64                                   
Vendor         : openSUSE                                 
Installed Size : 194.4 KiB                                
Installed      : Yes                                      
Status         : up-to-date                               
Source package : libinput-1.5.0-1.2.src                   
Summary        : Input device and event processing library
Description    :                                          
    libinput is a library that handles input devices for display servers and
    other applications that need to directly deal with input devices.
    It provides device detection, device handling, input device event
    processing and abstraction so minimize the amount of custom input
    code the user of libinput need to provide the common set of
    functionality that users expect.

Information for package libwacom2:
----------------------------------
Repository     : Main Update Repository           
Name           : libwacom2                        
Version        : 0.15-5.3.1                       
Arch           : x86_64                           
Vendor         : openSUSE                         
Installed Size : 45.6 KiB                         
Installed      : Yes                              
Status         : up-to-date                       
Source package : libwacom-0.15-5.3.1.src          
Summary        : Library to identify wacom tablets
Description    :                                  
    libwacom is a library to identify wacom tablets and their model-specific
    features. It provides easy access to information such as "is this a
    built-in on-screen tablet", "what is the size of this model", etc.


Information for package xf86-input-wacom:
-----------------------------------------
Repository     : Main Repository (OSS)                   
Name           : xf86-input-wacom                        
Version        : 0.32.0-2.2                              
Arch           : x86_64                                  
Vendor         : openSUSE                                
Installed Size : 973.9 KiB                               
Installed      : Yes                                     
Status         : up-to-date                              
Source package : xf86-input-wacom-0.32.0-2.2.src         
Summary        : Wacom input driver for the Xorg X server
Description    :                                         
    wacom is an X input driver and utilities for Wacom devices.
Comment 5 Halla Rempt 2018-01-04 17:03:24 UTC
Created attachment 109669 [details]
opensuse tablet log

This is the tablet log from opensuse: it seems perfractly normal, and there is no confusion about the stylus id.
Comment 6 Halla Rempt 2018-01-04 17:11:00 UTC
Created attachment 109670 [details]
ubuntu neon tablet log (latest plasma, based on 16.04)

And in the log I get on Ubuntu I see stylus id weirdness. Even more interesting, going back to the 3.0.0 appimage, where I am _sure_ that it used to work even on Kubuntu, Wolthera reports that it no longer works.
Comment 7 Camille Bissuel 2018-01-05 16:04:52 UTC
Amazingly, it worked again today after Krita run several hours... but I rebooted Krita to check, and it's no more working at startup...
A bad initialization as Jason said ?
Comment 8 Camille Bissuel 2018-01-12 11:32:30 UTC
Confirmed also in Krita 4 beta 1 build from git...
Comment 9 Halla Rempt 2018-01-12 13:27:25 UTC
Well, we didn't do any work on this yet, except to figure out that it doesn't work on Ubuntu but does work on OpenSUSE, Windows and OSX.
Comment 10 Halla Rempt 2018-02-26 14:27:02 UTC
Dmitry, you've got the art pen, right? And an ubuntu system? So, I'll put this on your plate.
Comment 11 Dmitry Kazakov 2018-02-27 07:52:45 UTC
I have tested ArtPen with Ubuntu 16.04 and it works perfectly normal :(

# list of relevant wacom packages:
libwacom-bin/xenial-updates,now 0.22-1~ubuntu16.04.1 amd64 [installed,automatic]
libwacom-common/xenial-updates,xenial-updates,now 0.22-1~ubuntu16.04.1 all [installed,automatic]
libwacom2/xenial-updates,now 0.22-1~ubuntu16.04.1 amd64 [installed,automatic]
xserver-xorg-input-wacom/xenial,now 1:0.32.0-0ubuntu3 amd64 [installed,automatic]

# Qt info
Qt 5.6.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.4.0 20160609) on "xcb" 
OS: Ubuntu 16.04.3 LTS [linux version 4.4.0-109-generic]
Comment 12 Camille Bissuel 2018-02-27 12:42:55 UTC
It appeared recently with some dependency update, I'm sorry but I suppose you have to test with Ubuntu 17.10 or an Arch-based distrib like Antergos or Manjaro...
Comment 13 Dmitry Kazakov 2018-02-27 12:49:29 UTC
Git commit ca7536fac2e9c0a3b7b966cce9c1e403137a492e by Dmitry Kazakov.
Committed on 27/02/2018 at 12:47.
Pushed by dkazakov into branch 'master'.

Fix setup of X11 window properties for the newly found windows in Qt 5.10

It looks like either Qt significantly changed the way how the window
properties are initialized, or it just broke tablet support again.

M  +4    -0    libs/ui/input/wintab/qxcbconnection.cpp

https://commits.kde.org/krita/ca7536fac2e9c0a3b7b966cce9c1e403137a492e
Comment 14 Camille Bissuel 2018-02-27 15:09:12 UTC
I just compiled a fresh Krita from Git, and I can confirm it work again !
Thanks a lot Dmitry, amazing work ! ;)