Touchscreen on SteamDeck not working

Hello!
I have a game that uses the touchscreen for critical interactions and the New Input System works perfectly on iOS, Android, and Switch.

I am now porting this to Steamdeck but it doesn’t work.
Some context on the configuration:

  1. Only the new input system is selected as active
  2. I am using a Windows build via Proton, not a Linux one
  3. Steam Deck Touchscreen Mode is set to ‘Touch API Pass-Through’ on Steamworks
  4. When pressing the touchscreen I get a “GetPointerTouchInfo failed: Call not implemented.” exception

Has anyone integrated the New Input System with Steam Deck successfully?

1 Like

After some investigation it looks that the Input System simply doesn’t support multi-touch on Linux as clearly stated in the doc:

Touch input is supported on Android, iOS, Windows, and the Universal Windows Platform (UWP).

One thing that’s still not clear to me is if there would be a way to make it work using a Windows build and Proton, but I assume this won’t work either since Proton is not really emulating Windows. On top of this Proton seems very unreliable with Unity atm so I guess it’s better to steer away from it.

Would be nice to know from the development team if there’s an ETA for this feature. I understand how Linux Multitouch would be perceived as a low-priority platform in the past but given how popular the Steamdeck is becoming, this is definitely no longer the case.

1 Like

Is there a way to solve this? I have this error also. My game does not use touchscreen, so I need to disable it on the new input system.

We need touchscreen on SteamDeck, guys.

1 Like

We also need gyro on SteamDeck, guys.

I might be having the same issue. But surely there is something we can configure to make it work in most cases, because I find it pretty hard to believe that ALL games shipped with Unity are unable to use the Steam Deck touchscreen, right? And why would it need to support multi-touch for regular single-point taps?

1 Like

Touch is working fine on Steam Deck for me, including multi-touch.
Unity 2021.3 with Input System package 1.7.0, using a Linux build.

What have you set for “Steam Deck Touchscreen Mode” in the Steam backend?

I have it set to None. I remember trying API Pass-through to no avail in the past.
What setting do you suggest?

One project is set to “Left Mouse Click Emulation”, another to “Touch API Pass-through”. Both work, only tried multi-touch with the latter. Don’t forget to publish after changing the setting.

1 Like