Buenas!
estamos haciendo unas pruebas y nos dimos con un muy bajo rendimiento de bennu en ubuntu.
El programa que estamos probando es bastante simple, 4 procesos sobre un scroll en 640 x 480. En Windows corre a 60 FPS sin problemas. En ubuntu, a 20/24.
Otra cosa muy rara que pudimos observar, es que si seteamos los FPS a 30, el juego corre bien a 30 fps, si los seteamos a 60, ahi baja a 24. No tiene sentido, ¿verdad?
Quise reportarlo porque tiene toda la pinta a bug. Lo probamos en 3 maquinas diferentes con los mismos resultados. (los fps en ubuntu varian pero siempre son menos que en windows)
Saludos
Hellou? nadie mas lo ha notado?
depende del pc, son pc's exactamente iguales ? hay muchas variables...
no, son pcs diferentes.
si pones caracteristicas de cada será mas facil investigar el motivo...
dependera si tienes drivers de video accelerados o no... y lo de 24fps, es porque seguramente al no llegar a 60fps, los proximos frames lo ajusta para que de en promedio 60fps, pero al ponerse accelerarse mucho en un de los pasos, necesita luego hacer un delay, pero evidentemente la granularidad en el timing de ubuntu no da para llegar a los 30 en la pausa necesaria, entonces hace una pausa un poco mas larga.
Quote from: SplinterGU on July 17, 2013, 11:57:55 PM
dependera si tienes drivers de video accelerados o no...
yo pense que bennu no tenia aceleracion por hardware :\
Y no tiene, pero ayuda a volcar la memoria del blitter a la pantalla
Quote from: JaViS on July 18, 2013, 01:17:11 AM
Quote from: SplinterGU on July 17, 2013, 11:57:55 PM
dependera si tienes drivers de video accelerados o no...
yo pense que bennu no tenia aceleracion por hardware :\
claro que no tiene, pero si vos tenes drivers de video no accelerados o incluso un modo de video (profundidad de colores) en bennugd diferente al que estas seteando en el desktop, influye muchisimo, tambien depende si tenes o no framebuffer activado o no.
Ah, no tenia ni idea la verdad. Que es eso del framebuffer?
http://en.wikipedia.org/wiki/Framebuffer
O sea que , resumiendo, debería ser un problema de drivers.
No se si sirve el dato pero al aumentar los procesos de 4 a 12 (no son procesos complejos, solamente estamos mostrando graficos en pantalla) el rendimiento en ubuntu baja considerablemente, mientras en Windows se mantiene igual.
Estaria bueno que alguien que pueda haga el mismo experimiento, es decir, correr el mismo prg en la misma pc en los dos OS. para ver si es un comportamiento generalizado del port de linux
Yo tengo los drivers a la ultima (oficiales Nvidia) en Linux Mint (derivado de ubuntu) con un problema mu similar. El fps es muy bajo. .. en mi jueguecillo isometrico tengo unos 500 procesos (los tiles que estan congelados) y de 28fps no sube. Antes se me quedaba en 24 fps .. pero refactorizando un poco el codigo se que queda en 28 fps .. asi q no se de que puede ser . Porque mis drivers son los propietarios ... y tengo juegos de Steam potentes tirando de la grafica a las mil maravillas, Dota2 por ejemplo.
y en windows lo probaste?
JAJAJA no van a creer lo que acabamos de probar con los chicos de pixelatom.
El juego en cuestion nos anda a 15 FPS ahora en linux. y en windows anda a 30 como debe ser. PEEEROOOO...
.. generamos un exe para windows, lo corrimos con WINE y adivinen que?
--------- 30 FPS EN LINUX CON WINE -------------
Creo que quedó mas que probado que hay un problema de rendimiento con el port de linux, no?
Saludos!
o no...
las SDL trabajan unas directas contra el linux y las otras atraves de wine que quizas esta optimizado...
te comento que a mi no me pasa eso, tire un ejemplo, con 100 procesos y me da 675 fps.
splinter@linux-dtax:~/bennugd/test> bgdi lesson6
frames=2606 time=3858 fps=675.479492
por que no pones un pack con los fuentes y demas, para probarlo?
Sabrewulf 640x480 con scroll, me da 698fps
eso en 32bits de profundidad, ahora si pongo lo mismo a 16bits, el rendimiento cae a 180fps.
Quote from: SplinterGU on July 26, 2013, 12:08:33 AM
o no...
las SDL trabajan unas directas contra el linux y las otras atraves de wine que quizas esta optimizado...
te comento que a mi no me pasa eso, tire un ejemplo, con 100 procesos y me da 675 fps.
splinter@linux-dtax:~/bennugd/test> bgdi lesson6
frames=2606 time=3858 fps=675.479492
Entonces el rendimiento depende mas de como trabaja SDL, de que si es un binario precompilado o compilado (en linux)?
no del todo depende de SDL, sino que tambien depende del modo de video en el que trabaja, segun tengas el modo de video de tu desktop un modo es mas rapido que otro y a la inversa.
es muy curioso, y ya hablamos del tema en este foro.
Aun asi, al depender de tantas cosas, resulta mas que curioso que el binario de windows corra mas rapido emulado que la version nativa, pero bueno, cumplo con mi parte en reportar este comportamiento. Yo en verdad pensaba que se nos podia estar pasando algo.
comparte los fuentes de la prueba, por favor.
Quote from: SplinterGU on July 27, 2013, 11:51:47 PM
comparte los fuentes de la prueba, por favor.
Perdon, no puedo subir el codigo de 'ese' ejemplo, ya veo como hago para reproducir el problema.
Yo si tengo codigo que me da esa caida de rendimiento y puedes probar :P
En GitHub https://github.com/KeoH/4diashd (https://github.com/KeoH/4diashd)
Solo tienes que bajarte el zip del proyecto, no hace falta que lo clones o lo forkees
puf, como se baja? donde esta el link de descarga? o la linea git para bajarlo?
ya lo vi, gracias! lo pruebo.
el ejemplo, me va perfecto a 30fps
ahora...
si pongo set_fps(0,0) va a 17fps
si corro bajo wine, va a 19-20fps
tengo un i7, la verdad que va desastroso esto.
no hay diferencias a nivel codigo en cuanto a windows/linux, no al menos en cuanto a funciones que puedan afectar la performance... no me queda otra que pensar que es algo en la SDL.
por otra parte estoy organizando una revision general de todos los fuentes.
Bueno me alegro de que podamos haber confirmado que hay una diferencia de rendimiento entre Ubuntu y Windows, estaba pensando que me estaba volviendo loco jaja
Ya si la cuestion esta en SDL quizás lo prudente sería informarles a ellos, creen que daran bola?
saludos!
dudo mucho que den soporte sobre la rama 1.2
pues tendremos que hacerle un upgrade a bennu jajaja vamos a tener q modernizarnos xD
si, es la next task.
a mi todos los juegos me andan a 206-260 fps bueno te dare algunos comandos pa´ desactivar a sincronizacion vertical
Puedes desactivarla desde la terminal con el siguiente comando:
export vblank_mode=0
Otra opción es crear un archivo en tu carpeta de usuario, el archivo (un simple archivo de texto) se debe llamar .drirc (con un punto al principio) y ahí dentro pega el siguiente contenido:
<device screen="0" driver="dri2">
<application name="Default">
<option name="vblank_mode" value="0"/>
</application>
</device>