Problemas de rendimiento

Started by warrior_rockk, January 13, 2016, 07:33:05 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

warrior_rockk

Creo que estoy haciendo algo mal...
Quería hacer una prueba de rendimiento con PixTudio para comparar la mejora de utilizar aceleración por GPU pero, ante el mismo código compilado con Bennu y PixTudio, me funciona muchísimo mas rápido Bennu ¿?¿? ¿Como puede ser?
Para que os hagáis una idea, el código de prueba era el clásico ejemplo de generar X procesos con gráfico de un rectángulo rebotando por la pantalla.

panreyes

Me parece extraño y curioso. El render es infinitamente más rápido en PixTudio que en Bennu.

Esos rectángulos, ¿son mapas cargados o los generas en tiempo de ejecución en cada frame?
Sí que es cierto que el pintado de primitivas es un poco más lento.

josebita


JaViS

Quote from: josebita on January 13, 2016, 02:18:00 PM
Quote from: JaViS on January 12, 2016, 09:36:14 PM
Necesitamos una wiki para las nuevas variables
Bueno, hay un pequeño embrión aquí:
https://pixtudio.org/docs/

Como digo, está todo muy a medias aún.

[Edito] Lo que sí habrá será una sección de diferencias con BennuGD
Muy bueno! Realmente útil :)

Enviado desde mi Nexus 6 mediante Tapatalk

Working on Anarkade. A couch multiplayer 2D shooter.

Drumpi

Quote from: josebita on January 13, 2016, 02:18:00 PM
Quote from: JaViS on January 12, 2016, 09:36:14 PM
Necesitamos una wiki para las nuevas variables
Bueno, hay un pequeño embrión aquí:
https://pixtudio.org/docs/

Como digo, está todo muy a medias aún.

[Edito] Lo que sí habrá será una sección de diferencias con BennuGD

¡¡¡Wiiiii!!! Genial para ir empezando. Karma++.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

warrior_rockk

Son mapas generados pero no se están generando cíclicamente. Se generan al inicio y se reutiliza después. Cuando llegue a casa posteo el código

josebita

Quote from: warrior_rockk on January 14, 2016, 07:46:10 AM
Son mapas generados pero no se están generando cíclicamente. Se generan al inicio y se reutiliza después. Cuando llegue a casa posteo el código
Como bien dice Pixel eso debería ser mucho más rápido en PixTudio. Si no lo es, puede ser algún bug, aunque la verdad es que me sorprende un poco.

Lo que sí es algo más lento es pintar sobre mapas o scroll a mapas y cosas así.

[Edito] Pero vamos, que pon el código y le echamos un ojo.

warrior_rockk

Este es el código:

import "mod_key";

import "mod_map";
import "mod_video";
import "Mod_proc";
import "Mod_screen";
import "Mod_draw";
import "Mod_grproc";
import "Mod_rand";


const
cResX = 800;
cResY = 600;
end;


global
int gNumActors = 1000;
int gActorMap;
end;


process main()
private
int i;
begin
set_mode(cResX,cResY,16);
set_fps(0,0);

gActorMap = map_new(16,16,16,0);
map_clear(0,gActorMap,126);

from i=0 to gNumActors;
actor();
end;

repeat
frame;
until(key(_ESC));

let_me_alone();
end;


process actor()
private
int incX;
int incY;
begin
graph = gActorMap;

x = rand(0,cResX);
y = rand(0,cResY);


!rand(0,1) ? incX = 1 : incX = -1;
!rand(0,1) ? incY = 1 : incY = -1;

loop
if (x > cResX || x < 0 ) incX *= -1; end;
if (y > cResY || y < 0 ) incY *= -1; end;

x+=incX;
y+=incY;

frame;
end;
end;



La diferencia de velocidad es muy notable. No puedo poner exactamente los FPS porque la consola de PixTudio no tiene implementado el show <variable> todavía (o yo no lo he podido hacer funcionar).

josebita

#8
He tocado un pelín tu código para que se escriba el FPS por pantalla de forma que ahora queda así:
import "mod_key"
import "mod_map"
import "mod_video"
import "Mod_proc"
import "Mod_screen"
import "Mod_draw"
import "Mod_grproc"
import "Mod_rand"
import "mod_text"


const
   cResX = 800;
   cResY = 600;
end;


global
   int gNumActors = 1000;
   int gActorMap;
end;


process main()
private
   int i;
begin
   set_mode(cResX,cResY,16);
   set_fps(0,0);

   gActorMap = map_new(16,16,16,0);
   map_clear(0,gActorMap,126);

   from i=0 to gNumActors;
      actor();
   end;

    write_var(0, 0, 0, 0, fps);
    write(0, 0, 10, 0, "PixTudio");    // O "BennuGD"

   repeat
      frame;
   until(key(_ESC));

   let_me_alone();
end;


process actor()
private
   int incX;
   int incY;
begin
   graph = gActorMap;

   x = rand(0,cResX);
   y = rand(0,cResY);


   !rand(0,1) ? incX = 1 : incX = -1;
   !rand(0,1) ? incY = 1 : incY = -1;

   loop
      if (x > cResX || x < 0 ) incX *= -1; end;
      if (y > cResY || y < 0 ) incY *= -1; end;

      x+=incX;
      y+=incY;

      frame;
   end;
end;
Lo que obtengo es que PixTudio anda sobre 140fps en un intel Core i7 con la gráfica integrada (Intel HD Graphics 4400) mientras que Bennu anda sobre los 100fps. Tiene sus altos y bajos (estoy apretando al ordenador a la vez con otras cosas), pero esa diferencia de 40fps parece mantenerse aproximadamente...
Te dejo una imagen:

Quote from: warrior_rockk on January 14, 2016, 05:11:59 PM
La diferencia de velocidad es muy notable. No puedo poner exactamente los FPS porque la consola de PixTudio no tiene implementado el show <variable> todavía (o yo no lo he podido hacer funcionar).
Bueno, la consola de debug en sí, sí que lo soporta (creo que no he quitado ninguna característica importante), el problema es que ahora mismo te tienes que conectar por red para poder usarla con un cliente que está sin acabar :)

warrior_rockk

#9
Pues ahora si que no lo entiendo porque, a mi me pasa al revés!! Adjunto imagen:



PixTudio me corre a unos 60-70 fps y BennuGD llega a 200! He revisado que no me esté confundiendo de compilación.
Por otro lado, la versión que utilizo de PixTudio son los binarios compilados para windows que colgó Pixel del 28 de diciembre.


panreyes

#10
Quote from: warrior_rockk on January 14, 2016, 06:19:04 PM
Pues ahora si que no lo entiendo porque, a mi me pasa al revés!! (adjunto imagen)
PixTudio me corre a unos 60-70 fps y BennuGD llega a 200! He revisado que no me esté confundiendo de compilación.
Por otro lado, la versión que utilizo de PixTudio son los binarios compilados para windows que colgó Pixel del 28 de diciembre.
Yo he hecho otra prueba... con un Core i7 4770 y una GTX 960 :)



Por cierto, warrior, ¿qué tarjeta gráfica utilizas?

warrior_rockk

Quote from: PiXeL on January 14, 2016, 06:21:17 PM
Quote from: warrior_rockk on January 14, 2016, 06:19:04 PM
Pues ahora si que no lo entiendo porque, a mi me pasa al revés!! (adjunto imagen)
PixTudio me corre a unos 60-70 fps y BennuGD llega a 200! He revisado que no me esté confundiendo de compilación.
Por otro lado, la versión que utilizo de PixTudio son los binarios compilados para windows que colgó Pixel del 28 de diciembre.
Yo he hecho otra prueba... con un Core i7 4770 y una GTX 960 :)




¿Y que fps tendrías en Bennu con ese equipo?

warrior_rockk

Perdón, no leí la pregunta anterior. La tarjeta es una HD Intel Graphics integrada en un portatil de trabajo. No llegará ni a la versión 4000. Sera una mas antigua...

warrior_rockk

Quote from: warrior_rockk on January 14, 2016, 06:24:40 PM
Perdón, no leí la pregunta anterior. La tarjeta es una HD Intel Graphics integrada en un portatil de trabajo. No llegará ni a la versión 4000. Sera una mas antigua...


Edito: Google dice que lleva una Chipset Intel® QM57 Express con Intel® Graphics Media Accelerator HD[/size]

panreyes

Esto es el resultado con Bennugd (ignora que ponga pixtudio)