protonscr

Proton 9.0 appears to bypass X11 input mapping (using evdev directly?)

protonclosed
ValveSoftware/Proton#7531 · opened 2024-02-27 by philipl · updated 2024-04-12 · 10 comments · github
3 matching comments, n / p to jump
Pphilipl 2024-02-27 github
  • Proton: Experimental 2024-02-26 (the first Proton 9.0 based release)
  • Game: Cyberpunk 2077

I updated to the new Proton Experimental today and I noticed that my custom mouse rebindings (that I set up in xorg.conf InputClass) no longer work. The input is read based on the base hardware buttons. This suggests that Proton is now bypassing X11 input - perhaps in preparation for native Wayland support.

Is this going to be the long term approach to input, or is it a bug?

Rrbernon 2024-02-28 github

There should be no difference with how mouse buttons are handled, compared to Proton 8.0, and if it changed it's probably a bug. Only thing that may have changed is related to mouse sensitivity for games using rawinput messages.

Pphilipl 2024-03-01 github

I made a very quick attempt to check out a couple of other games and it definitely seems that anything using Proton Experimental is bypassing X11 input mapping. I happen to maintain my own evdev based remapper for dealing with wayland and if I use that in X11 (although I shouldn't need to), I get my expected mouse button mappings in these games. But not without it. So I guess it's a bug.

Rrbernon 2024-03-01 github

Thanks, I will try to have a look but would you mind generating a log file with both Proton 8.0 and then Proton 9.0, with the same mouse button click sequence, with PROTON_LOG=+x11drv,+event,+cursor %command% maybe I can spot something obvious already?

Pphilipl 2024-03-03 github

Here are the logs.

I have my buttons mapped as Option "ButtonMapping" "1 3 8 4 5 6 7 2 9 10" in my xorg conf.

I ran with Proton 8, 9 Beta, and experimental in Hitman.

I clicked button 1 to launch the game from the launcher and then pressed the physical 1,2,3,4,5 buttons. The order in Proton 8 should reflect the xorg mapping although the button 8 won't show up due to being mapped to a key sequence by xbindkeys). In proton 9/experimental, you should see the physical ordering.

steam-1659040.8.log
steam-1659040.9.log
steam-1659040.exp.log

Pphilipl 2024-03-03 github

I'll just note that the X11DRV_ButtonPress lines in the logs always respect my mappings, but the game in 9/experimental is absolutely following the physical mapping - so it's bypassing X11 input for whatever reason.

Pphilipl 2024-03-03 github

Ah, turns out you can see the difference in the X11DRV_RawButtonEvent. In 8, it respects my mapping. In 9/exp it does not.

Rrbernon 2024-03-03 github

Yes, probably something got broken in the rebase, I haven't had a look yet but note that X11DRV_RawButtonEvent should be able to support device button mapping (there was a similar issue a long time ago and it's been fixed), as it is present in Proton 8.0. Also I'm thinking we simply don't really need the raw button events, it's Proton specific and I don't think it has any benefit.

Rrbernon 2024-03-04 github

I have pushed some potential fix for this to the "bleeding-edge" branch of Proton Experimental, could you please confirm whether this works for you as well?

You can select it in the Steam application properties, under the Betas tab. (Please note that you should probably get back to the default branch after testing, bleeding-edge branch is basically untested and can break things anytime)

Pphilipl 2024-03-05 github

Yes, I made a quick test with Hitman again and it is following my remappings. Thanks!

Kkisak-valve maintainer 2024-04-12 github

Closing as fixed in Proton 9.0 (Beta14).

Proton versions

Launch options