Page 1 of 1

[comparacion] render text y Write

PostPosted: Wed Mar 02, 2016 10:23 pm
by SimulatorOne
Buenas

esto lo hice por curiosidad:
ver cual tiene mejor rendimiento en fps.

Source Code (Gemix) [ Download ] [ Hide ]
  • compiler_options _gmxsystem_graphics = gmxgraphics_modern;
  • PROGRAM test_text_render;
  •  
  • private
  • render_entity entity_text;
  •  
  • BEGIN
  •         mode_set(800, 480);
  •         set_fps(0,0);
  •        
  •         fnt_load("assets/FntGemix32.fnt");
  •        
  •         write(0,0,0,0,&fps);
  •        
  • //      write(1, 400, 240, 4, "Gemix Studio");    
  •        
  •         entity_text.asset.source.fnt     = 1;
  •         entity_text.transform.position.x = 400;
  •         entity_text.transform.position.y = 240;
  •         entity_text.transform.set.anchor = 4;
  •        
  •         LOOP
  •        
  •          render_text(&entity_text, "Gemix Studio");
  •        
  •         FRAME;
  •         END
  • END
  •  


hice la comparativa:
discpongo de 2 GPU en mi portatil, el portatil esta conectado a la corriente, no esta en modo economico.

usando el moderno render_text y todo ello que implica: da unos 480FPS(ejecutar con GPU NVIDIA) y 650FPS(Ejecutar con GPU Integrado intel HD 4400)
si solo usamos el clasico write de toda la vida, me da unos 700FPS(ejecutar con GPU NVIDIA) y 830FPS(Ejecutar con GPU Integrado intel HD 4400)

me da antender que mejor dejar el render_text para manipulacion de texto avanzados y cosas mas complejas.(es mas lento)
aun asi write es su competidor antiguo, que casi puede competir con el moderno sistema.(es mas rapido)

que opinan?

Re: [comparacion] render text y Write

PostPosted: Wed Mar 02, 2016 11:19 pm
by shao
Pues a mi me sorprende un poco, se supone que con render_text se está usando la aceleración, sin embargo es más rapido write, que no usa aceleración y solo usa CPU pero podría ser que el chip de la tarjeta de vídeo sea menos rápido que el del procesador y por eso es más rápido write.

Re: [comparacion] render text y Write

PostPosted: Wed Mar 02, 2016 11:29 pm
by SimulatorOne
pues, desactive(lo puse en comentario) el modo modern(GPU)
//compiler_options _gmxsystem_graphics = gmxgraphics_modern;

y el resultado en modo Legacy, es sorprendente:
en ambos casos: tanto usando write como el moderno render_text...
da 480FPS

Re: [comparacion] render text y Write

PostPosted: Wed Mar 02, 2016 11:38 pm
by CicTec
shao wrote:Pues a mi me sorprende un poco, se supone que con render_text se está usando la aceleración, sin embargo es más rapido write, que no usa aceleración y solo usa CPU pero podría ser que el chip de la tarjeta de vídeo sea menos rápido que el del procesador y por eso es más rápido write.

No shao, no tiene que ver, RENDER_TEXT es soportado tanto en la legacy como en la modern, asi usara renderizado software o GPU, segun el sistema elegido.
La diferencia de performance viene porque WRITE es un objeto-texto, se crea una vez y luego el sistema lo utiliza internamente hasta que no se elimine (TEXT_DELETE).
RENDER_TEXT necesita hacer constantemiente una llamada por parte del script, y una llamada nativa que a su vez debe controlar la integridad de los parametros pasados, etc... la diferencia de performance es por esta razon.

Como ha supuesto SImulatorone, el utilizo de un sistema u otro depende dal tipo de juego/programa que se esta montando, la complejidad del texto, etc..., no hay una forma mejor en absoludo, simplemente este sistema permite mas optimizaciones y posibilidades que con solo el sistema WRITE de DIV no eran posibles.

Re: [comparacion] render text y Write

PostPosted: Wed Mar 02, 2016 11:44 pm
by SimulatorOne
actualize los FPS , ya que antes lo tenia sin cable de corriente en el portatil y por ende usaba el modo econico, 50% de rendimiento CPU/GPU

Ademas, tengo 2 GPU, que puedo probar y usar.
por defecto uso la NVIDIA, esa configuracion por default siempre puedo cambiarla.

el nuevo render_text tiene mucha flexiblidad de impresion de textos en pantalla, y para programarlo creo que es mas facil.

aun asi, va a gustos y necesidades.

por ejemplo si deseo imprimir un texto dentro de un scroll directamente... hacer tile como fondo de pantalla, imprimir un caracter por su valor de codigo ASCII... no se
con write se puede hacer tambien pero se debe usar mas funciones y jugar con ellas.