PDA

Visualizza versione completa : limitare fps su wine per retrogame



Andy86
11-09-14, 00: 39
:bai

Sto disperatamente cercando il sistema di limitare gli fps con wine per shadowman, poiché i normali limitatori di fps per windows non funzionano.

Ho trovato due possibili soluzioni da mettere nello xorg.conf:

Only registered members can view code.

Ma non cambia nulla.

Lo so che di solito più fps ci sono meglio è, ma quando si rispolverano giochi pensati per vecchi pc accade che girano troppo veloce e diventano incontrollabili.

Purtroppo quando sulla pagina steam di shadowman ho visto che è uscito un texture pack amatoriale da 1gb, sono stato colto da un attacco di nostalgia e m'è tornata la voglia di giocarci. :bgg2

pierino_89
11-09-14, 01: 29
0x0 vale 0, che solitamente significa nessun limite. Prova a metterci un 60 esadecimale, che ora non ho voglia di farti la conversione :ghgh
Altrimenti penso che tu possa usare il classico "limita fps al vsync" (60) che per esempio puoi forzare nel pannello nvidia.

Andy86
11-09-14, 10: 30
Avevo provato con il sessanta hex ma non è cambiato niente.

Il vsync di nvidia con wine non funziona e neanche quello nelle impostazioni del gioco.

pierino_89
11-09-14, 18: 41
Non è che magari non è un problema di fps ma proprio di cpu? Dopotutto, i fps determinano la fluidità del gioco, non la velocità dello stesso.

Andy86
11-09-14, 18: 54
:m: beh... una volta per i problemi di cpu si usavano i limitatori di fps proprio perché la cpu li faceva scorrere troppo veloce generando l'effetto "fast foward". Leggendo sui vari forum inglesi mi pareva che il problema fosse quello (http://translate.google.it/translate?hl=it&sl=en&u=http://steamcommunity.com/app/251770/discussions/0/648813728122473483/&prev=/search%3Fq%3Dshadowman%2Bice%2Bcontrol%26biw%3D139 0%26bih%3D915).

Altrimenti che dovrei fare con la cpu?

pierino_89
11-09-14, 19: 45
:m: beh... una volta per i problemi di cpu si usavano i limitatori di fps proprio perché la cpu li faceva scorrere troppo veloce generando l'effetto "fast foward". Leggendo sui vari forum inglesi mi pareva che il problema fosse quello (http://translate.google.it/translate?hl=it&sl=en&u=http://steamcommunity.com/app/251770/discussions/0/648813728122473483/&prev=/search%3Fq%3Dshadowman%2Bice%2Bcontrol%26biw%3D139 0%26bih%3D915).
Sì, ma l'unico che ha risolto l'ha fatto abbassando e aumentando il livello di dettaglio, con vsync e limite fps non è cambiato nulla :ghgh

A questo punto, prova a cambiare la modalità (schermo intero, finestra) e vedere se cambia qualcosa.

Andy86
11-09-14, 19: 50
Avevo già provato pure quello, se per finestra intendi in desktop virtuale, non è cambiato nulla.

Ora sto dando un occhio a cpulimit -> CPUlimit to slow down wine games - Page 2 (http://ubuntuforums.org/showthread.php?t=1706263&page=2) -> non riesco a capire la storia del "wine-preloader".

pierino_89
11-09-14, 20: 04
Avevo già provato pure quello, se per finestra intendi in desktop virtuale, non è cambiato nulla.
Desktop virtuale? :confused:
Intendo finestra proprio, con i bordi. C'è anche la modalità "finestra senza bordi", se non ricordo male, che è la mia preferita (posso cambiare workspace senza che il gioco vada in pausa o crash e altre cose brutte).



Ora sto dando un occhio a cpulimit -> CPUlimit to slow down wine games - Page 2 (http://ubuntuforums.org/showthread.php?t=1706263&page=2) -> non riesco a capire la storia del "wine-preloader".
Nel dubbio ignorala :ghgh
Dal man di cpulimit mi pare abbastanza intuitivo:

Only registered members can view code.
C'è anche una modalità per limitare un pid, quindi a processo già attivo.

Wine-preloader credo faccia parte di tutte le robe aggiuntive tipo wineserver che vengono avviate da wine. Se lo lanci limitato, probabilmente wine evita di crearne un altro e usa quello. Ma immagino che cpulimit valga per tutto l'albero di processi, quindi se lo lanci su wine gli altri dovrebbero ereditarlo. In caso contrario, sei sempre in tempo a limitare i singoli pid dopo finché non ottieni il risultato desiderato.

Andy86
11-09-14, 21: 06
Intendo finestra proprio, con i bordi. C'è anche la modalità "finestra senza bordi",

Sono opzioni di kde, ma se il gioco non permette di andare in finestra con alt+invio o di essere messo in finestra dalle opzioni niente.
Questo addirittura si cattura tastiera e mouse e non mi permette di scorrere il menù che apro con alt + f3.



C'è anche una modalità per limitare un pid, quindi a processo già attivo.

Pare che funzioni :gogo:gogo devo fare un po' di prove per trovare il valore ideale.
Mi ricordi come si fa ad ottenere il pid in uno script bash? (qualcosa tipo lsof | grep ma che trovi solo nomi interi).

indicando l'eseguibile invece del pid mi dava "errore di segmentazione, core-dumped".

:thx

pierino_89
11-09-14, 21: 24
Sono opzioni di kde, ma se il gioco non permette di andare in finestra con alt+invio o di essere messo in finestra dalle opzioni niente.
Questo addirittura si cattura tastiera e mouse e non mi permette di scorrere il menù che apro con alt + f3.

Non parlo di kde, ma proprio del gioco. Evidentemente non sei così fortunato :ghgh puoi però usare il desktop virtuale di wine, che di fatto è una finestra.



Pare che funzioni :gogo:gogo devo fare un po' di prove per trovare il valore ideale.
Mi ricordi come si fa ad ottenere il pid in uno script bash? (qualcosa tipo lsof | grep ma che trovi solo nomi interi).

lsof non c'entra niente :tong2

Only registered members can view code.
Ma penso che ti sia molto più comodo usare $!, ovvero la variabile che contiene il pid dell'ultimo comando lanciato.

Andy86
11-09-14, 23: 45
Allora... praticamente l'ho limitato fino a renderlo ingiocabile per la bassezza degli fps tanto la telecamera scatta di brutto... sembra che tremi tutto quando mi muovo, però permane il problema dei controlli "di ghiaccio" come diceva il tipo nella discussione che ho linkato prima, cioè sembra di andare contro corrente e se sto fermo il personaggio scivola in una direzione anche se non dovrebbe. :boh

Senza la limitazione è più piacevole all'occhio e non sembra andare troppo veloce, a parte lo sfondo del menù che fa venire il mal di mare, però i controlli sono ingovernabili.

Ai tempi lo giocai su xp sp1 e i controlli me li ricordo controllabili.

Edit:

Qui dice che risolve disabilitando crossfire:
http://steamcommunity.com/app/251770/discussions/0/792924412195164697/

Ma io ho una singola gpu nvidia. :boh

Andy86
13-09-14, 00: 16
:wall:wall:wall:wall:wall:wall:wall:wall:wall:wall :wall:wall
qui Stability-problems solved (W7 X64) :: Shadow Man General Discussions (http://steamcommunity.com/app/251770/discussions/0/666824800760300834/)
e qui character movement :: Shadow Man General Discussions (http://steamcommunity.com/app/251770/discussions/0/792924412195164697/)
e qui Some Shadow Man well known issues :: Shadow Man General Discussions (http://steamcommunity.com/app/251770/discussions/0/666824800615494593/)
e qui Shadown man Steam PC BUG?? :: Shadow Man General Discussions (http://steamcommunity.com/app/251770/discussions/0/666824800585473186/)
e qui Crossfire breaking movement :: Shadow Man General Discussions (http://steamcommunity.com/app/251770/discussions/0/792924412268622137/)
e qui Control issues :: Shadow Man General Discussions (http://steamcommunity.com/app/251770/discussions/0/792924412397335124/)

Tutti risolvono il mio stesso problema attivando vsync.

E sto vsync con wine + nvidia non funziona.

Fosse solo la cpu veloce cpulimit doveva risolvere, e invece no, anche la gpu.

Alcuni hanno risolto (per altri giochi) downgradando nvidia o abilitando temporaneamente i noveau, ma a me non sale il sistema con nessuna delle due soluzioni. :boh

A far girare un altra vs. di wine manco fosse solo un altro esegubile... il pacchetto si porta dietro un sacco di roba.

Ho provato ad installare la last vs. da source, pure applicando una modifica al codice suggerita su di un forum, non è cambiato nulla.

Andy86
13-09-14, 13: 28
EUREKA!!!

Provando con la live, con i driver mesa/nouveau il vsync funziona e il gioco funziona bene senza bisogno di altri limiti.

Il problema è che ora i driver free riesco a usarli solo sulla live, se li metto sulla mia installazione X non sale più (http://www.collectiontricks.it/forum/gnu-linux/Ct5882-chakra-switchare-driver-nvidia-driver-free-non-sale-x.html#post207578).




Only registered members can view code.
Ma penso che ti sia molto più comodo usare $!, ovvero la variabile che contiene il pid dell'ultimo comando lanciato.

Dell'ultimo lanciato non mi fido, ma meglio ancora:


Only registered members can view code.

Senza scomodare grep che ti butta fuori anche i processi che contengono il nome nel percorso, tipo dolphin se è aperta la finestra nella directory dell'applicazione.

pierino_89
13-09-14, 14: 30
Dell'ultimo lanciato non mi fido

Come non ti fidi? :bgg2


Only registered members can view code.

Senza scomodare grep che ti butta fuori anche i processi che contengono il nome nel percorso, tipo dolphin se è aperta la finestra nella directory dell'applicazione.
Qui puoi non scomodare sed, tanto uno spazio in più non influisce nel lancio del comando :eye

Andy86
13-09-14, 14: 43
Nel senso che se per caso venisse lanciato un altro processo contemporaneamente allo script uscirebbe il pid sbagliato. :m:

Comunque lo spazio influiva eccome, perché veniva passata la variabile completa a cpulimit, altrimenti non avrei cercato il comando di sed.

Andy86
29-11-14, 18: 01
:bai

Ho trovato una possibile soluzione direttamente con i driver nvdia, senza passare dai nouveau, ovvero impostare all'avvio le seguenti variabili:

KWIN_TRIPLE_BUFFER=1
__GL_YIELD="USLEEP"
__GL_THREADED_OPTIMIZATIONS=1

La fonte diceva di farlo con uno script, io per fare prima le ho messe in /etc/environment, spero di non aver barato, comunque incredibilmente apparentemente funziona (:gogo), solo che causa dei lag tremendi anche nei giochi che prima non avevano problemi.... come se invece che ha 60 facesse il sync a 30 o meno. :boh:wall

Qualche guru conosce il significato preciso di quelle opzioni così da poter capire se c'è qualche valore migliore da poter impostare?
La prima sarà sicuramente booleana, ma magari per le altre...

Ora provo magari a disattivare un'opzione per volta se ci esce qualche idea.

pierino_89
30-11-14, 03: 31
Beh, ovviamente se le passi in /etc/environment le passa a tutte le applicazioni, quindi quelle che prima andavano bene ora arrancano :tong2
Il triple buffer dovrebbe indicare il rendering di altri due frame oltre a quello attuale (invece di mostrare solo quello che serve), le altre due non le conosco

Andy86
30-11-14, 12: 05
:bai

Tanto per curiosità dove dovrei metterle? Pensavo che lo script fosse comunque a livello di sistema.

Comunque togliere il triplebuffering non cambia il succo della situazione, sono le altre due in combinazione che hanno effetto su wine, però anche le applicazioni che senza l'opzione schizzano troppo veloce con l'opzione arrancano di brutto (a differenza dei nouveau, che però arrancano con i giochi pesanti e non ho voglia di switchare in continuazione).

pierino_89
30-11-14, 14: 57
:bai

Tanto per curiosità dove dovrei metterle? Pensavo che lo script fosse comunque a livello di sistema.

:nono quando dicono di fare uno script, intendono dire:


Only registered members can view code.

Fossero state a livello di sistema, ti avrebbero detto di metterle in /etc/environment [/COLOR]:ghgh.

Andy86
30-11-14, 15: 49
Eh, ma lo script dicono di metterlo in /etc/profile.d/Tearing.sh, mica nella home, e poi dicono di riavviare in modo che X parta leggendo le opzioni. :sisi

pierino_89
30-11-14, 15: 56
Eh, ma lo script dicono di metterlo in /etc/profile.d/Tearing.sh
E io che ne so, non ho letto la guida :ghgh
In /etc/environment o in /etc/profile.d poco cambia, però io proverei a passarle solo come variabili d'ambiente del programma invece che globali. In teoria dovrebbe funzionare lo stesso.

Andy86
30-11-14, 17: 13
Niet, lanciando uno script come dici tu non funziona (ho provato). Evidentemente i parametri sono proprio per X.