HID++ events and wayland

Hi,

Fedora 38 with wayland session.

I’m currently looking into smooth scrolling and HID++ events under wayland and i’m confused.
I’ve connected a Logitech MX Master 3 mouse via bluetooth.
solaar or other utilities are not running.
I added a file 71-mouse-local.hwdb to /etc/udev/hwdb.d with the following content:

# Logitech MX Master 3 (via Bluetooth)
# Horiz wheel has 14 stops, angle is rounded up
mouse:*:name:*MX * 3*:
 MOUSE_DPI=1000@2000
 MOUSE_WHEEL_CLICK_ANGLE=15
 MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
 MOUSE_WHEEL_CLICK_COUNT=24
 MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL=14

when using libinput debug-events i get:

 event21  POINTER_SCROLL_WHEEL    +1.767s	vert 11.00/88.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +1.774s	vert 2.00/16.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +1.796s	vert 3.00/24.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +3.536s	vert -9.00/-72.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +3.558s	vert -2.00/-16.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +3.574s	vert -2.00/-16.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +4.241s	vert 11.00/88.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +4.256s	vert 2.00/16.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +4.961s	vert 10.00/80.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +4.968s	vert 2.00/16.0* horiz 0.00/0.0 (wheel)
 event21  POINTER_SCROLL_WHEEL    +4.984s	vert 3.00/24.0* horiz 0.00/0.0 (wheel)

when scrolling up or down. that looks ok for me.
When using wev, which can dump input events from wayland i get:

[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] axis_discrete: axis: 0 (vertical), discrete: -1
[13:      wl_pointer] axis: time: 11103535; axis: 0 (vertical), value: -10.000000
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] axis_discrete: axis: 0 (vertical), discrete: 1
[13:      wl_pointer] axis: time: 11104105; axis: 0 (vertical), value: 10.000000
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] axis_discrete: axis: 0 (vertical), discrete: -1
[13:      wl_pointer] axis: time: 11104668; axis: 0 (vertical), value: -10.000000
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] frame
[13:      wl_pointer] axis_source: 0 (wheel)
[13:      wl_pointer] axis_discrete: axis: 0 (vertical), discrete: 1
[13:      wl_pointer] axis: time: 11105245; axis: 0 (vertical), value: 10.000000

when scrolling up or down one ratched (detent) click.
with free spinning wheel it looks exactly the same.

Looks like, sonewhere on the way from libinput to wev (and all other wayland programs?) the HID++ events get lost. Or am i misinterpreting things here?