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

Vale, mas pruebas. He probado, en vez de dibujar los 4 pixels de la esquina de un cuadrado, rellenar el cuadrado con pixels que, a efectos finales, es el mismo resultado que un map_clear, es decir, un mapa en memoria de cierto tamaño y con un color de fondo. ¿Debería comportarse igual? Pues no. Si pintas todos los pixeles, el rendimiento es mucho menor que haciendo un map_clear. Es decir, map_clear() es lo que ayuda a Bennu a alcanzar esas cifras de velocidad. ¿Porqué? Es lo que se me escapa...
Adjunto el ejemplo. Se pueden probar las 3 variantes: carga del grafico de un fpg de 32 bits, generación del mapa pixel a pixel, o generación con map_clear.
Es necesario comentar y descomentar cada variante.

SplinterGU

porque cuando pintas con pixeles estas marcando el mapa como dirty, y requiere verificacion del mismo al hacer frame, quizas hay un error en el chequeo o por alguna condicion no esta marcando el mapa como analizado, y lo esta reanalizando en cada frame.

lo voy a verificar.

aunque creo que hay chequeo de limites, en tu ejemplo, estas haciendo un map_put_pixel fuera del rango del grafico, si el grafico tiene un tamaño de 40 pixels, el from debe ser de 0 hasta 39 (suman 40 pixels), pero no creo que eso este pisando nada, porque creo que hay chequeo de limites.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

genio warrior_rockk!

encontre un bug, era lo que pensaba... es correcta tu prueba, me ayudaste a encontrar un bug.

el tema es que cuando un mapa es tocado (modificado) se lo marca para analisis, para verificar en el siguiente render, el chequeo deberia ver si este es un grafico limpio (GI_CLEAN) o un grafico sin alphas (GI_NOCOLORKEY), el tema es que el analisis no estaba funcionando bien, solo estaba buscando por CLEAN y marcando como NOCOLORKEY...

ahora ya lo corregi, y tu ejemplo, funciona a ~650fps con map_clear como con map_put_pixel... en un ratito subo el fix al SVN.

sepan disculparme si no genero binarios, pero seguramente alguno de los presentes lo generara.

gracias nuevamente!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

me falto decir, el tema, es que las funciones de bliiter dibujan muchisimo mas rapido los graficos sin alpha que los que tienen alpha.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

voy a hacer un poco mas de pruebas... no se si me mande un moco o algunos ejemplos que tengo no funcionan...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

cometi un error, no tengo el fix aun, pero hay un tema ahi.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on January 26, 2016, 05:47:20 AM
ahora pareciera que si...
Acabo de subir los cambios a PixTudio, mil gracias :)

JaViS

Quote from: SplinterGU on January 26, 2016, 03:50:45 AM
genio warrior_rockk!

encontre un bug, era lo que pensaba... es correcta tu prueba, me ayudaste a encontrar un bug.

el tema es que cuando un mapa es tocado (modificado) se lo marca para analisis, para verificar en el siguiente render, el chequeo deberia ver si este es un grafico limpio (GI_CLEAN) o un grafico sin alphas (GI_NOCOLORKEY), el tema es que el analisis no estaba funcionando bien, solo estaba buscando por CLEAN y marcando como NOCOLORKEY...

ahora ya lo corregi, y tu ejemplo, funciona a ~650fps con map_clear como con map_put_pixel... en un ratito subo el fix al SVN.

sepan disculparme si no genero binarios, pero seguramente alguno de los presentes lo generara.

gracias nuevamente!
A mi me RE  servirían los binarios, estoy usando BennuGD mucho en un proyecto, y me gustaría testear ese fix, sobretodo en Android y Linux, que tenían muy bajo rendimiento

Enviado desde mi Nexus 6 mediante Tapatalk

Working on Anarkade. A couch multiplayer 2D shooter.

warrior_rockk

Vale, pues si lo he entendido bien, el bug afecta a todos aquellos graficos que no usen alpha que se estaban dibujando mas lentos de lo que debería. Esto es un buen avance para BennuGD ya que, incrementará el rendimiento en algunos proyectos actuales pero nos vuelve al punto de partida respecto al rendimiento PixTudio vs Bennu. A falta de que probara con los nuevos binarios de ambos, parece que Bennu triplica la velocidad usando gráficos creados en memoria usando tarjetas de video integradas y no sabemos porqué...

josebita

Quote from: warrior_rockk on January 26, 2016, 11:37:34 AM
Vale, pues si lo he entendido bien, el bug afecta a todos aquellos graficos que no usen alpha que se estaban dibujando mas lentos de lo que debería. Esto es un buen avance para BennuGD ya que, incrementará el rendimiento en algunos proyectos actuales pero nos vuelve al punto de partida respecto al rendimiento PixTudio vs Bennu. A falta de que probara con los nuevos binarios de ambos, parece que Bennu triplica la velocidad usando gráficos creados en memoria usando tarjetas de video integradas y no sabemos porqué...
Insisto en que me huele a que es, símplemente, un test que no es representativo del rendimiento general de PixTudio ni de la ganancia que obtendrías en un juego real al usarlo, porque depende de otros factores: el mismo test en mi ordenador obtengo que:
* En Windows 10, BennuGD es más rápido
* En Fedora 23, PixTudio es más rápido.
Por eso puse el ejemplo del scroll: tengo la impresión de que juegos más complejos mostrarán que PixTudio es más rápido en general (aunque algunas operaciones, como ya he dicho, sí puedan ser más lentas).
Y digo que tengo esa impresión porque es lo que hemos visto en los juegos que hemos ido probando...

warrior_rockk

Si, creo que tienes razón. Es un ejemplo muy pequeño y simplista que conforme el código crece, Pixtudio irá ganando terreno en rendimiento. Pues nada, haya servido este post para encontrar un bug y ánimo con Pixtudio que la verdad es que estamos muy emocionados. Si se consigue al final un buen rendimiento para Android, no tendremos límites!!

josebita

Quote from: warrior_rockk on January 26, 2016, 01:40:14 PM
Si, creo que tienes razón. Es un ejemplo muy pequeño y simplista que conforme el código crece, Pixtudio irá ganando terreno en rendimiento. Pues nada, haya servido este post para encontrar un bug y ánimo con Pixtudio que la verdad es que estamos muy emocionados. Si se consigue al final un buen rendimiento para Android, no tendremos límites!!
Hay sorpresas en camino :P

SplinterGU

no puedo crear grafico, porque el blitter del SVN creo que esta roto, porque cuando giro un grafico segun no se que condiciones hace mirror... tengo que revisar eso.

@josebita, como es que en windows 10 bennugd va mas rapido? no estaras con librerias que hacen opengl por soft?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Iba a preguntar si el bug este no tendría algo que ver con el crash de las últimas versiones de Bennu, pero veo que no ^^U
Tendría que ver si alguno de mis proyectos grandes (filtro anti-spam ON) va más rápido con PiXTudio o no, pero veo que la cosa se iba a alargar mucho. Aun me tiene que decir Pixel qué pasa con ¡¡EL COMPILADORRRRR!! que no me coje los .inc/.h o las subcarpetas, que es el que sabe cómo funciona el programa :P
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)