Movimenti irregolari del mouse nei giochi 3D su RDP con RemoteFX


11

Sembra che il driver del mouse predefinito durante la connessione con RDP non funzioni bene con alcune applicazioni, come i giochi 3D.

La mia configurazione:

  • Windows 2012 R2 con Hyper-V e potente scheda grafica
  • VM con Windows 8.1 Enterprise, RemoteFX e vGPU configurati
  • Connessione con RDP tramite collegamento rapido.

Le prestazioni video 3D sono eccezionali, grazie a RemoteFX / vGPU. Permette sicuramente ai giochi di essere molto giocabili su RDP (se non fosse per il mouse).

Il problema è che il mouse reagisce in modo abbastanza folle durante il gioco, ma completamente normale al di fuori dell'ambiente 3D. (Ad esempio nei menu di gioco il mouse va bene).

Più vicino che potrei dire, sia dalla sperimentazione sia da molte ricerche online (molte altre persone hanno avuto lo stesso problema, ma nessuna soluzione trovata) - sembra che il driver del mouse trasmetta la sua posizione relativa, invece del movimento.
Questa "teoria" si correla bene con alcune spiegazioni di come il puntatore del mouse salta dentro e fuori dalla finestra RDP (es. Spostarlo dalla finestra a sinistra, tornare indietro a destra - e si comporta perfettamente, ad esempio mouse basato sulla posizione e non basato sul movimento), e anche con il comportamento in gioco - ad es. se muovo il mouse un po 'a sinistra, la vista salta follemente a sinistra; se poi lo sposto un po 'a destra, ma non ancora completamente al centro (ovvero il mouse è ancora a sinistra del centro, ma si sposta a destra) continua a saltare a sinistra. (Cioè sembra che stia ancora segnalando la sua posizione "a sinistra del centro" invece di "spostarsi a destra").

Spero di trovare QUALSIASI tipo di soluzione a questo. Idee qualcuno?


hm. Sperimentare una piattaforma di accesso remoto più incentrata sul gioco sarebbe un'opzione? nvidia streaming e steam streaming funzionano bene per me (oltre gigabit). Anche la posizione relativa mi ricorda il mouse in stile tablet.
Journeyman Geek

Pazzo che anni dopo, non è ancora stato risolto. :(
Apache,

Risposte:


8

Wow, dopo un sacco di ricerche e tentativi falliti, in realtà ho risolto questo!
Bene, per lo più risolto - è funzionale, ma non senza inconvenienti.

Grazie alla risposta di @ JourneymanGeek, e in particolare al post a cui si è collegato, sono stato in grado di seguire l'esempio e alla fine ho scoperto che tra le molte interfacce implementate dal client ActiveX per desktop remoto, una di esse supporta una proprietà RelativeMouseMode ! Sembra esattamente ciò di cui ho bisogno, costringerà il PSR a supportare i movimenti del mouse relativi!

Tuttavia, ho notato in questo post del forum MSDN che "RelativeMouseMode non è supportato negli scenari RDP RDSH / RDVH e non dovrebbe essere usato", ma ho pensato di cavarmela, non è un vero ambiente di produzione e stavo bene usando un funzione che non è supportata. Era anche scarsamente documentato, ma sembrava che avessi ciò di cui avevo bisogno: questa domanda su StackOverflow mi ha anche dato la speranza che fosse fattibile.

Quindi, ho iniziato a lavorare implementando una semplice app WinForms per ospitare il controllo ActiveX, con le proprietà dell'interfaccia "... non sicura" impostate.


A parte il fatto che, a quanto pare, "non supportato", questa volta Microsoft intendeva "non funziona".
Bene, se lo facesse, questa sarebbe una domanda SO, mi dispiace guidarti (ma penso che sia bello averlo documentato da qualche parte ...)


Tuttavia, non tutto è stato per nulla, durante tutto quello che ho scavato nel protocollo RDP, ho guardato il reindirizzamento USB RemoteFX - e sembrava un vicolo cieco, poiché i dispositivi di input di base (come mouse, tastiera, stampante) sono esplicitamente bloccati dal meccanismo di reindirizzamento USB:

Per impostazione predefinita, i dispositivi nelle suddette categorie sono accessibili nella sessione remota utilizzando metodi di reindirizzamento dei dispositivi di alto livello. Questi metodi di reindirizzamento consentono prestazioni ottimali e compatibilità con le versioni precedenti del dispositivo nella maggior parte degli scenari utente. Di conseguenza, questi dispositivi non sono offerti tramite reindirizzamento USB RemoteFX.

Bene, la risposta finale, a quanto pare, è che esiste un meccanismo di override per questo blocco.


Passaggio 1: abilitare il reindirizzamento USB di RemoteFX
Ecco una bella elaborazione qui: http://windowsitpro.com/virtualization/q-how-do-i-enable-remotefx-usb-redirection . In sostanza, sulla macchina client, si utilizza Criteri locali o Criteri di gruppo per impostare RemoteFX USB Device Redirectiona Enable, e consente agli utenti (o solo gli amministratori) i diritti. Quindi gpupdate /forceriavviare.

Passaggio 2: abilitare l'override di reindirizzamento per il mouse.
Come spiegato in questo articolo di MS KB , è possibile impostare una chiave di registro per abilitare un dispositivo specifico (o classe di dispositivo) per il reindirizzamento USB.

Di nuovo sul client, sotto

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

puoi aggiungere un valore di stringa con l'identificatore del dispositivo.
Ad esempio, sotto questa chiave ho aggiunto il seguente valore di stringa:

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

A seconda del mouse, potrebbe essere necessario un identificatore diverso, quindi YMMV. Ma inizia con quello.

Passaggio 3: impostare il client RDP per reindirizzare il mouse.
Come afferma l'articolo del passaggio 1:

Una volta abilitato, accedi alla scheda Risorse locali, fai clic su Altro in Dispositivi e risorse locali e vedrai una nuova impostazione Supporta dispositivi USB RemoteFX. È possibile utilizzare questa impostazione per mappare molti tipi di hardware USB che non è possibile con il reindirizzamento USB RDP vaniglia, come mostrato di seguito.

Sotto quello dovresti vedere una voce per il tuo mouse; potrebbe essere un po 'ambiguo come:

Reindirizzamento di altri dispositivi

Seleziona il mouse (o altra voce appropriata).

Questo è tutto! Ora hai un mouse hardware collegato "direttamente" alla tua VM, che consente ai giochi 3D di estrarre i relativi movimenti del mouse direttamente dal driver del mouse (-ish ..)


Tuttavia, come detto, ci sono alcuni svantaggi.

  1. Il mouse viene reindirizzato alla VM RemoteFX: in altre parole, il computer client non ha più un mouse , almeno mentre la sessione Desktop remoto è aperta.
    Una possibile soluzione sarebbe quella di collegare un secondo mouse e reindirizzare solo uno di essi. (Devo ancora provare questo, ma dovrebbe funzionare bene).

  2. Per qualche motivo, quando reindirizzato il mouse non mostra direttamente un cursore nella sessione remota. Mentre funziona ancora, rende un po 'confuso mirare a ciò che punta il mouse.
    Una soluzione semplice è attivare le tracce del mouse, con la lunghezza completamente abbassata. Tracce del mouse
    Questo mostrerà la posizione del mouse, ma è un po 'lento.

  3. Nel complesso, mentre questa soluzione funziona bene, il mouse è ancora un po 'lento e lento.
    Si può alzare la velocità del mouse, il gioco con la precisione del puntatore (a volte spegnendolo sarà effettivamente aiutare con questo), e anche giocherellare con le impostazioni del Registro di accelerazione del mouse sotto HKEY_CURRENT_USER\Control Panel\Mouse( Mouse Speed, MouseThreshold1, e MouseThreshold2rispettivamente).
    Ciò contribuirà a mitigare il problema, ma non lo farà davvero scomparire.

Quindi, nel complesso, questo può rendere anche i giochi 3D molto giocabili - per i giochi casuali, purtroppo non è l'ideale per i giochi a contrazione. (Tuttavia, se ti serve, puoi semplicemente avviare il metal direttamente nel disco rigido virtuale e avere entrambe le opzioni ...)


Ben fatto ... speriamo che qualcuno possa mettere queste informazioni al lavoro anche altrove.
Dico Reinstate Monica il

Sto usando Microsoft Remote Desktopun MacBook Pro. Esiste un meccanismo di override per Mac?
Brian,

@Brian Non ho il più nebuloso :-) L'app client lì funziona allo stesso modo? Prova a cercare le stesse impostazioni ...
AviD

3

Apparentemente remotefx fa solo modalità di input "assolute" in stile tablet , che è la fonte del tuo problema. Non riesco a trovare alcuna documentazione su come cambiarlo.

Potrebbe essere necessario prendere in considerazione una modalità di accesso remoto alternativa: Steam funziona bene per me (utilizzando una GPU NVIDIA sull'host e un piccolo box per le piste nell'altra estremità). Nvidia ha un'opzione per le loro carte, ma non l'ho davvero provato.

In breve, non esiste un modo ovvio per risolvere questo problema con remotefx, a meno che il gioco non possa essere impostato per utilizzare la modalità di input che utilizza remotefx.


2

Desktop remoto trasmette movimenti assoluti del mouse, in modo da ridurre il numero di pacchetti di spostamento del mouse che devono essere inviati dal client al server. Questa disposizione funziona bene per la maggior parte delle applicazioni Windows (e-mail, navigazione Web ecc.). Anche molti giochi 2D vanno bene. Tuttavia, i giochi FPS in genere necessitano di movimenti relativi del mouse per controllare mouselook, che purtroppo Remote Desktop non trasmette. La perdita di dati relativi al movimento del mouse è ciò che causa la rotazione imprevista del gioco. Microsoft dovrebbe modificare Desktop remoto per far funzionare questo scenario di gioco. Tuttavia, l'utilizzo del controller XBOX per PC con reindirizzamento USB potrebbe essere un'alternativa per te.


Grazie, lo sapevo in qualche modo, e per lo più anche ripetendo la risposta di @ Journeyman ... ma il controller è una buona soluzione (anche se non mi aiuterà ...)
AviD
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.