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.

2 Likes

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

hi,
Does your game’s touchscreen work within SteamOS?

Bye

Did you read the tread?
Maybe do so and then come back with a better question and some information about your setup.

Did you see this discussion about the setting in the Steam backend?
What is it set to for your project and did you make sure to publish all changes?

We have found the trouble. If we disable PlayerInput the UI works fine with touchscreen. With PlayerInput enabled doens’t works :confused: On steamworks the project is configurate touchscreen as like a mouse with click.

With mouse emulation, you’re not going to see a touch screen but Steam will make Unity think a mouse is clicking when you tap the screen. I would change it to “Touch API Pass-through” so that actually get access to the touchscreen and can use multi-touch.

Maybe PlayInput is disabling actions? Did you check your UI actions stay enabled?