Mouvement irrégulier de la souris dans les jeux 3D sur RDP avec RemoteFX


11

Il semble que le pilote de souris par défaut lors de la connexion avec RDP ne fonctionne pas bien avec certaines applications, telles que les jeux 3D.

Ma configuration:

  • Windows 2012 R2 avec Hyper-V et carte graphique robuste
  • VM avec Windows 8.1 Enterprise, RemoteFX et vGPU configurés
  • Connexion avec RDP via une liaison rapide.

Les performances vidéo 3D sont excellentes, grâce à RemoteFX / vGPU. Cela permet certainement aux jeux d'être très jouables sur RDP (si ce n'était pour la souris).

Le problème est que la souris réagit de manière assez folle lorsqu'elle est en jeu - mais complètement normale en dehors de l'environnement 3D. (Par exemple, dans les menus du jeu, la souris est très bien).

Le plus près que je pouvais dire, à la fois par l'expérimentation et par de nombreuses recherches en ligne (beaucoup d'autres personnes ont eu le même problème, mais aucune solution n'a été trouvée) - il semble que le pilote de la souris transmette sa position relative, au lieu du mouvement.
Cette "théorie" est bien corrélée avec certaines explications sur la façon dont le pointeur de la souris saute dans et hors de la fenêtre RDP (par exemple, déplacez-le hors de la fenêtre à gauche, de retour vers la droite - et il se comporte parfaitement, c.-à-d. pas basé sur le mouvement), et aussi avec le comportement dans le jeu - par exemple, si je déplace la souris un tas vers la gauche, la vue saute follement vers la gauche; si je le déplace ensuite un peu vers la droite, mais toujours pas complètement vers le centre (c'est-à-dire que la souris est toujours à gauche du centre, mais se déplace vers la droite), il continue de sauter à gauche. (C'est-à-dire qu'il semble toujours signaler son emplacement "à gauche du centre" au lieu de "se déplacer vers la droite").

J'espère trouver n'importe quel type de solution à cela. Des idées n'importe qui?


hm. L'expérimentation d'une plate-forme d'accès à distance plus centrée sur le jeu serait-elle une option? le streaming nvidia et le streaming vapeur fonctionnent bien pour moi (sur gigabit). La position relative me rappelle également le style de souris de la tablette.
Journeyman Geek

Fou que des années plus tard, ce n'est toujours pas réparé. :(
Apache

Réponses:


8

Wow, après une tonne de recherches et de tentatives infructueuses, j'ai vraiment résolu cela!
Eh bien, surtout résolu - il est fonctionnel, mais pas sans inconvénients.

Grâce à la réponse de @ JourneymanGeek, et en particulier au poste auquel il a lié, j'ai pu suivre l'exemple et j'ai finalement découvert que parmi les nombreuses interfaces implémentées par ActiveX Client Remote Desktop, l'une d'entre elles prend en charge une propriété RelativeMouseMode ! Cela ressemble exactement à ce dont j'ai besoin, cela forcera le RDP à prendre en charge les mouvements relatifs de la souris!

Cependant, j'ai noté sur ce message sur les forums MSDN que "RelativeMouseMode n'est pas pris en charge dans les scénarios RDP RDSH / RDVH et ne devrait pas être utilisé", mais j'ai pensé à le vérifier, ce n'est pas un véritable environnement de production, et j'allais bien utiliser un fonction non prise en charge. Il était également mal documenté, mais il semblait que j'avais ce dont j'avais besoin - cette question sur StackOverflow m'a également donné l'espoir que c'était faisable.

J'ai donc mis au point la mise en œuvre d'une application WinForms simple pour héberger le contrôle ActiveX, avec les propriétés d'interface "... Unsafe" définies.


Sauf qu'en fin de compte, par "non pris en charge", cette fois, Microsoft voulait dire "cela ne fonctionne pas".
Eh bien, si c'était le cas, ce serait une question SO, désolé de vous guider (mais je pense que c'est bien de le documenter quelque part ...)


Cependant, tout n'était pas inutile, pendant toute cette fouille dans le protocole RDP, j'ai regardé la redirection USB RemoteFX - et cela ressemblait à une impasse, car les périphériques d'entrée de base (comme la souris, le clavier, l'imprimante) sont explicitement bloqués à partir du mécanisme de redirection USB:

Par défaut, les périphériques des catégories susmentionnées sont accessibles dans la session distante à l'aide de méthodes de redirection de périphérique de haut niveau. Ces méthodes de redirection permettent des performances optimales et une compatibilité descendante de l'appareil dans la majorité des scénarios utilisateur. Par conséquent, ces appareils ne sont pas proposés via la redirection USB RemoteFX.

Eh bien, la réponse finale, en fin de compte, est qu'il existe un mécanisme de substitution à ce bloc.


Étape 1: Activer la redirection USB RemoteFX
Il y a une belle élaboration ici: http://windowsitpro.com/virtualization/q-how-do-i-enable-remotefx-usb-redirection . Au fond, sur la machine cliente, vous utilisez soit la politique locale ou stratégie de groupe pour ensemble RemoteFX USB Device Redirectionà Enable, et permettre aux utilisateurs (ou admins seulement) les droits. Ensuite gpupdate /force, redémarrez.

Étape 2: activez le remplacement de la redirection pour la souris.
Comme l'explique cet article MS KB , vous pouvez définir une clé de registre pour activer un périphérique spécifique (ou une classe de périphérique) pour la redirection USB.

Encore une fois sur le client, sous

HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows NT \ Terminal Services \ Client \ UsbSelectDeviceByInterfaces

vous pouvez ajouter une valeur de chaîne avec l'identifiant du périphérique.
Par exemple, sous cette clé, j'ai ajouté la valeur de chaîne suivante:

"GUID_DEVINTERFACE_MOUSE" = "{378DE44C-56EF-11D1-BC8C-00A0C91405DD}"

Selon votre souris, vous pourriez avoir besoin d'un identifiant différent, donc YMMV. Mais commencez par ça.

Étape 3: définissez le client RDP pour rediriger la souris.
Comme l'indique l'article de l'étape 1:

Une fois activé, accédez à l'onglet Ressources locales, cliquez sur Plus sous Périphériques et ressources locaux, et vous verrez un nouveau paramètre Autres périphériques USB RemoteFX pris en charge. Vous pouvez utiliser ce paramètre pour mapper de nombreux types de matériel USB que vous ne pouviez pas utiliser avec la redirection USB vanilla RDP, comme indiqué ci-dessous.

En dessous, vous devriez voir une entrée pour votre souris; cela peut être un peu ambigu comme:

Redirection d'autres appareils

Sélectionnez votre souris (ou toute autre entrée appropriée).

C'est ça! Vous avez maintenant une souris matérielle attachée "directement" à votre VM, ce qui permet aux jeux 3D d'extraire les mouvements relatifs de la souris directement depuis le pilote de la souris (-ish ..)


Cependant, comme indiqué, il existe certains inconvénients.

  1. La souris est redirigée vers la VM RemoteFX'd - en d'autres termes, la machine cliente n'a plus de souris , au moins pendant que la session Bureau à distance est ouverte.
    Une solution possible serait d'attacher une 2e souris et de rediriger une seule d'entre elles. (Je n'ai pas encore essayé, mais cela devrait très bien fonctionner).

  2. Pour une raison quelconque, lorsqu'elle est redirigée, la souris n'affiche pas directement de curseur dans la session distante. Bien que cela fonctionne toujours, cela rend un peu confus de viser ce que votre souris pointe.
    Une solution simple consiste à activer Mouse Trails, avec la longueur complètement baissée. Sentiers de souris
    Cela affichera l'emplacement de la souris, mais c'est un peu lent.

  3. Dans l'ensemble, bien que cette solution fonctionne bien, la souris est toujours un peu lente et lente.
    Vous pouvez augmenter la vitesse de la souris, le jeu avec la précision du pointeur (parfois tourner OFF sera en fait l' aide à ce sujet ), et même Tripotez les paramètres du registre d'accélération de la souris sous HKEY_CURRENT_USER\Control Panel\Mouse( Mouse Speed, MouseThreshold1et MouseThreshold2respectivement).
    Cela aidera à atténuer le problème, mais ne le fera pas vraiment disparaître.

Donc, dans l'ensemble, cela peut rendre même les jeux 3D très jouables - pour les jeux occasionnels, malheureusement pas parfaits pour les jeux en twitch. (Bien que si vous en avez besoin, vous pouvez simplement démarrer le métal directement dans ce VHD, et avoir les deux options ....)


Bien joué ... avec un peu de chance, quelqu'un pourra mettre ces informations à contribution ailleurs.
Je dis Réintégrer Monica

J'utilise Microsoft Remote Desktopsur un MacBook Pro. Existe-t-il un mécanisme de remplacement pour Mac?
Brian

@Brian Je n'ai pas le plus brumeux :-) L'application client fonctionne-t-elle de la même manière? Essayez de rechercher ces mêmes paramètres ...
AviD

3

Apparemment, remotefx ne fait que des modes d'entrée «absolus» de style tablette , ce qui est la source de votre problème. Je ne trouve aucune documentation sur sa modification.

Vous devrez peut-être envisager un autre mode d'accès à distance - la vapeur fonctionne bien pour moi (en utilisant un GPU nvidia sur `` l'hôte '' et une boîte de piste de petite baie dinky à l'autre extrémité). Nvidia a une option pour leurs cartes, mais je n'ai pas vraiment essayé cela.

En bref, il n'y a aucun moyen évident de résoudre ce problème avec remotefx, à moins que le jeu puisse être configuré pour utiliser le mode d'entrée utilisé par remotefx.


2

Le Bureau à distance transmet les mouvements absolus de la souris, afin de réduire le nombre de paquets de mouvement de la souris qui doivent être envoyés du client au serveur. Cet arrangement fonctionne bien pour la plupart des applications Windows (courrier électronique, navigation Web, etc.). De nombreux jeux 2D conviennent également. Cependant, les jeux FPS nécessitent généralement des mouvements relatifs de la souris pour contrôler le mouselook, que Remote Desktop ne transmet malheureusement pas. La perte de données relatives au mouvement de la souris est ce qui fait que le jeu fait pivoter la fenêtre de façon inattendue. Microsoft devrait modifier Remote Desktop pour que ce scénario de jeu fonctionne. Cependant, l'utilisation du contrôleur XBOX pour PC avec redirection USB peut être une alternative pour vous.


Merci, je le savais en quelque sorte, et en répétant surtout la réponse de @ Journeyman ... mais le contrôleur est une bonne solution (mais ne m'aidera pas ...)
AviD
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.