Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Voluntarios Para Probar Este Benchmark

Iniciado por TheAzazel, 22 de Julio de 2005, 09:57:42 PM

« anterior - próximo »

_Grey

 
Citar@Grey: suena a que en DirectX tienes activado el Vsync y por eso no te pasa de los 85fps que sera tu refresco.

Que fallo, ni me de cuenta....

            |   Fullscreen   |   Full+doublebuf   |
 -------------------------------------------------|
   DirectX  |                |                    |
 ( 100/1000)|  1096 /   155  |    1096 /   155    |
   sprites  |                |                    |
 -------------------------------------------------|
   OpenGL   |                |                    |
 ( 100/1000)|  1863 /   401  |    1448 /   370    |
   sprites  |                |                    |
 -------------------------------------------------|

zupervaca

 perdona se me olvido poner los links para que descargaras todo y no me deja editar el anterior post:

para el visual c-sharp (este te baja el netframework 2.0 y te lo instala): http://lab.msdn.microsoft.com/express/vcsh...rp/default.aspx

para las ultimas directx: http://www.microsoft.com/downloads/details...en&Hash=D6D34S4

saludos

TheAzazel

 Tengo el .Net Frameworks 2.0 Beta 2...
Antes tenia el 1.1 y me decia,al igual q tu tileador q probre, que necesitaba la 2.0 y asi hice, desinstale una y puse la otra, ahroa ya no se quejan de ese error, tu tileador funciona :) pero el test de velocidad tuyo se queda pantalla en negro, relojito y al hacer un CTRL+TAB veo q hay un "Depuracion Just-in-time". Mu raro, no se pq sera :S
Lo de los hilos..te lo preguntaba por si acaso, las direct3d utilizan de alguna pequeña manera optimizaciones multihilo..como existe el hyperthreading desde hace años... quien sabe si no habran metio algo por ahi.... por eso te dije si podias comprobar con el taskmanager y luego ver  mas o menos la carga entre los dos cores...si uno esta ocioso entoes nada...pero si el otro esta dandole a la pastilla... jeje

He visto que algo que penaliza mucho es un SDL_FillRect() para poner todo a negro en cada frame... voy a ver internamente ocmo lo hacen pq opengl seguro q tiene algun metodo de hacer esto a toda pastilla!!!

hasta las proximas noticias :)

[EX3]

 
Cita de: "TheAzazel"@EX3: ya lo puse arriba..me puedes mandar el log entero? suena q problemas con tu tarjeta...
Por supuesto, aqui lo tienes:
------------------------------------------------------------------------------
| glSDL-Benchmark v0.9 - SDL video benchmark using DirectX and glSDL backend |
------------------------------------------------------------------------------
|                                                                            |
| - Roberto Prieto - megastorm@mi.madritel.es                                |
| - MegaStorm Systems (c) 2005 - http://www.megastormsystems.com             |
| - Using SDL 1.2 experimental (SDL 1.2.9 CVS and glSDL backend)             |
| - Special greetings to Sam Latinga, David Olofson and Sthephane Marchesin  |
|                                                                            |
------------------------------------------------------------------------------

· AMD Athlon(tm) XP 1800+ (x86 Family 6 Model 6 Stepping 2)
· CPU Speed: 1533 Mhz
· System memory total/available: 255Mb / 76Mb
· NVIDIA Corporation - GeForce3/AGP/SSE/3DNOW! - 1.5.3

· Screen resolution 800x600x32bits

· Test 1 using 'directx' engine.
 -> Number of sprites: 100
 -> Screen is at 32 bits per pixel
 -> Screen is in video memory
 -> Screen has double-buffering enabled
 -> Sprite is in video memory
 -> Sprite blit uses hardware acceleration
 -> 81.60 frames per second

· Test 2 using 'directx' engine.
 -> Number of sprites: 1000
 -> Screen is at 32 bits per pixel
 -> Screen is in video memory
 -> Screen has double-buffering enabled
 -> Sprite is in video memory
 -> Sprite blit uses hardware acceleration
 -> 82.08 frames per second

· Test 3 using 'directx' engine.
 -> Number of sprites: 100
 -> Screen is at 32 bits per pixel
 -> Screen is in video memory
 -> Sprite is in video memory
 -> Sprite blit uses hardware acceleration
 -> 614.82 frames per second

· Test 4 using 'directx' engine.
 -> Number of sprites: 1000
 -> Screen is at 32 bits per pixel
 -> Screen is in video memory
 -> Sprite is in video memory
 -> Sprite blit uses hardware acceleration
 -> 101.17 frames per second

· Test 5 using 'glSDL' engine.
 -> Number of sprites: 100
 -> Screen is at 32 bits per pixel
 -> Screen is in video memory
 -> Screen has double-buffering enabled
 -> Sprite is in video memory
 -> 60.29 frames per second

· Test 6 using 'glSDL' engine.
 -> Number of sprites: 1000
 -> Screen is at 32 bits per pixel
 -> Screen is in video memory
 -> Screen has double-buffering enabled
 -> Sprite is in video memory
 -> 59.22 frames per second

· Test 7 using 'glSDL' engine.
 -> Number of sprites: 100
 -> Screen is at 32 bits per pixel
 -> Screen is in video memory
 -> Sprite is in video memory
 -> 219.80 frames per second

· Test 8 using 'glSDL' engine.
 -> Number of sprites: 1000
 -> Screen is at 32 bits per pixel
 -> Screen is in video memory
 -> Sprite is in video memory
 -> 65.81 frames per second


            |   Fullscreen   |   Full+doublebuf   |
 -------------------------------------------------|
   DirectX  |                |                    |
 ( 100/1000)|   614 /   101  |      81 /    82    |
   sprites  |                |                    |
 -------------------------------------------------|
   OpenGL   |                |                    |
 ( 100/1000)|   219 /    65  |      60 /    59    |
   sprites  |                |                    |
 -------------------------------------------------|

· End of execution

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

zupervaca

 es raro, tengo tres ordenadores y en los tres me va bien y estos son muy diferentes, eso si, tuve que instalar el ultimo sdk de directx tambien, estaria bien que alguien mas probara a ver si le funciona o no

en el SDL_FillRect() estoy seguro que hacen una llamada al gdi de toda la vida de windows y eso peta muchisimo

TheAzazel

 joer, si te funciona en 3...me da q va a ser algo con el mio...he actualizado los drivers de la grafica q eran los catalyst 4.12 y me he puesto los 5.6 y pasa lo mismo...voy a meterlo al resto de equipos q tengo por aqui a ver.

sobre el SDL_fillrect()... no creo q haga eso..seria LENTISIMO jeje, voy a ver como lo hace y si no lo veo muy bien , se lo digo a los q han hecho glSDL q lo echen un ojo.. si puedo, hasta hago un patch je.

a ver si lo prueba alguien mas por ahi...

zupervaca

 aqui estan los ultimos redistribuibles de directx9c por si no quieres meter el sdk completo:

http://www.microsoft.com/downloads/details...en&Hash=D6D34S4

me imagino que el problema sera este aunque no estoy seguro

saludos

pd: 34mb!!!! pa llorar
pd2: en mi web estan los dos redistribuibles que hacen faltan para que funcionen todo lo de c-sharp y directx managed

TheAzazel

 Me baje el dx9c ese...aunq yo juraria q ya lo tenia puesto... el caso es q ni siquiera instalo nada..tardo poquisimo! solo digo : "updating components" y en un plis termino... pense q no habia hecho nada pero.. ahora si funciona, asik aunq no instalara muchas cosas...algo si actualizo....

pos mira, te cuento dos cosillas, la primera mira la imagen:


me aparecen los conejos recortados abajo y a la derecha, si es normal q pase eso.. nop! pq hay hara un clip de un monton de conejos y no los pintara :), cuando calculas las coordenadas del rebote...ponle como condicion con la parte drecha e inferior... el ancho/alto de pantalla mas el ancho/alto del konejo.

y lo segundo...me da pikos de 450fps y en ventana se mantiene a 350 mas o menos que esta mas en consonancia con lo que obtenia con otro test por ahi de d3d en modo2d... tu pc es mas potente que el mio pero.... mas de 8 veces mas potente?? algo sucede con los konejos lokos jejeje

ah, lo compilaria yo mismo pero tengo el net 2003 y tu creo q has usado el 2005 express verdad? el perro no me lee los proyectos :S

dime algo q esto esta interesante :) MODO FREAKY ON

PD: con tanto conejo..seguro q hay algun fan de los monty..."¿como detras del conejo? NO NO, el conejo!!"
jajaja
(uoh)

PD2: acabo de ver esto en tu code:

if ((uint)Position.X > 800-32) Dir.X *= -1;
if ((uint)Position.Y > 600-32) Dir.Y *= -1;

luego q esta pasando pues??

TheAzazel

 Y para los OpenGl-eros...asi es como hace un SDL_FillRect() cuando utilizas glSDL:


 dx1 = dstrect->x;
 dy1 = dstrect->y;
 dx2 = dx1 + dstrect->w;
 dy2 = dy1 + dstrect->h;
 
 this->glBegin(GL_TRIANGLE_FAN);
 this->glColor3ub(br, bg, bb);
 this->glVertex2i(dx1, dy1);
 this->glVertex2i(dx2, dy1);
 this->glVertex2i(dx2, dy2);
 this->glVertex2i(dx1, dy2);
 this->glEnd();


y probe a hacer un glClearColor() y despues un glClear() y es bastante mas lento... luego parece que por lo que he mirado por el google y demas.. glSDL ya incorpora una forma muy optima de rellenar una textura con un color... y he mirado y quizas sea la forma mas rapida...alguna makina por ahi sabe algo mejor?

Unas pruebas rapidas sobre el SDL_FillRect():
Citar
- Sin Fill:                          2658 FPS
- Con glClear:                 1271 FPS
- Con metodo de arriba: 1508 FPS

weno, pos de momento..asi estan las cosas :)

_Grey

 
Citary probe a hacer un glClearColor() y despues un glClear() y es bastante mas lento... luego parece que por lo que he mirado por el google y demas.. glSDL ya incorpora una forma muy optima de rellenar una textura con un color... y he mirado y quizas sea la forma mas rapida...alguna makina por ahi sabe algo mejor?

Pues me llama la atención, no me habría extrañado nada que lo hicieran por soft y se quedaran tan anchos.

Lo mejor es no limpiar el buffer de color, el zbuffer y el stencil buffer puede ser combeniente limpiarlos si se usan, pero el de color no, mas que nada por que en un juego "normal" se repinta todo el gráfico aunque sea solo por las imágenes de fondo.

Saludos.

TheAzazel

Cita de: "_Grey"
Citary probe a hacer un glClearColor() y despues un glClear() y es bastante mas lento... luego parece que por lo que he mirado por el google y demas.. glSDL ya incorpora una forma muy optima de rellenar una textura con un color... y he mirado y quizas sea la forma mas rapida...alguna makina por ahi sabe algo mejor?

Pues me llama la atención, no me habría extrañado nada que lo hicieran por soft y se quedaran tan anchos.

Lo mejor es no limpiar el buffer de color, el zbuffer y el stencil buffer puede ser combeniente limpiarlos si se usan, pero el de color no, mas que nada por que en un juego "normal" se repinta todo el gráfico aunque sea solo por las imágenes de fondo.

Saludos.
Llevan varios años con glSDL asi que en general esta bastante bien... lo unico que queria comprobar es estabilidad y funcionamiento en varios equipos y gracias a vosotros... lo estoy haciendo :).

sip, lo de limpiar todo el buffer aqui porque es un benchmark y se repinta el fondo de negro y luego se dibujan todos los bichos, vamos, q casi tiene un redibujado del doble... luego en un juego por ejemplo... salvo raras excepciones, no llega la cosa a tanto.. pero con esto, estamos probando uno de los casos mas desfavorables... :)

zupervaca

 forma de entender el codigo de rebote es sencillo, cuando un numero con signo (ej: -10) lo pasas a numero sin signo este queda positivo, como el bit mas significativo es el que decide el signo del numero este se vuelve superior a 800 o 600 que es el ancho y alto de la pantalla, esto se hacia mucho cuando todos teniamos un 486 por que a 33mhz teniamos que optimizar todo jeje

si quieres que no hay recorte pon en vez de -32 a -100 y en los aleatorios que salen pon de 0 a 500, de esta manera los tendras todos en pantalla, rebotando como locos

en otro ordenador p3 1200 con una ati 7500 me da 90 fps con los 1000 conejos, osea que con una geforce 6800 que de 50 veces mas es de lo mas normal, a ver si luego lo compilo cambiando las coordenadas para que salgan todos los bichos en pantalla sin que se recorten y ver si es algo de eso, aunque lo mejor es que te bajas el c-sharp ultimo que es un plis y modificas lo que tu quieras

¿como hacen el SDL_FillRect en directx?

saludos

TheAzazel

 Lo instalare (el visual C# 2005) el martes en el pc del curro, es que si lo meto aqui con el .net 2003 lo mismo se arma el pifostio :)

uhmmm... y en ese PC q tienes con la radeon 7500 q te da 90fps... cuanto te da via ddraw y via gl? seria interesante... pruebalo si quieres ya mejor si haces lo del recorte y lo de q esten todos como lokos :).

anda, q vaya vara te estoy dando :) muchas gracias  (ole)

lo del directx...ahora mismo te lo digo:


LPDIRECTDRAWSURFACE3 dst_surface;
RECT area;
DDBLTFX bltfx;
HRESULT result;

dst_surface = dst->hwdata->dd_writebuf;
area.top    = (LONG)dstrect->y;
area.bottom = (LONG)dstrect->y+dstrect->h;
area.left   = (LONG)dstrect->x;
area.right  = (LONG)dstrect->x+dstrect->w;
bltfx.dwSize = sizeof(bltfx);
bltfx.dwFillColor = color;

result = IDirectDrawSurface3_Blt(dst_surface,
  &area, NULL, NULL, DDBLT_COLORFILL|DDBLT_WAIT, &bltfx);
if ( result == DDERR_SURFACELOST ) {
 IDirectDrawSurface3_Restore(dst_surface);
 result = IDirectDrawSurface3_Blt(dst_surface,
  &area, NULL, NULL, DDBLT_COLORFILL|DDBLT_WAIT, &bltfx);
}
if ( result != DD_OK ) {
 SetDDerror("IDirectDrawSurface3::Blt", result);
 return(-1);
}
return(0);

zupervaca

 en el que me da 90fps con 1000 conejos el resultado del test de sdl es este
· Intel(R) Pentium(R) III Mobile CPU      1200MHz (x86 Family 6 Model 11 Stepping 1)
· CPU Speed: 797 Mhz
· System memory total/available: 511Mb / 338Mb
· ATI Technologies Inc. - Radeon 7500 DDR x86/SSE - 1.3.3143 WinXP Release

            |   Fullscreen   |   Full+doublebuf   |
 -------------------------------------------------|
   DirectX  |                |                    |
 ( 100/1000)|   470 /    59  |      60 /    30    |
   sprites  |                |                    |
 -------------------------------------------------|
   OpenGL   |                |                    |
 ( 100/1000)|   355 /    52  |     374 /    55    |
   sprites  |                |                    |
 -------------------------------------------------|


na tu tranki que vara no es, si necesitais mas test los hago  ;)

saludos

editado: loz mhz son inferiores a los del micro ya que es un portatil y esta en modo "no calientes que te quemas" jeje, en principio el micro no importaria mucho ya que se usa para cuatro operaciones de nada en el test de sdl y en el mio

editado2: le quite el vsync que no me di cuenta que estaba puesto
            |   Fullscreen   |   Full+doublebuf   |
 -------------------------------------------------|
   DirectX  |                |                    |
 ( 100/1000)|   469 /    59  |     452 /    59    |
   sprites  |                |                    |
 -------------------------------------------------|
   OpenGL   |                |                    |
 ( 100/1000)|   354 /    51  |     372 /    55    |
   sprites  |                |                    |
 -------------------------------------------------|

Pogacha

 
Citar
· Intel® Pentium® 4 CPU 2.40GHz 4 CPU 2.40GHz (x86 Family 15 Model 2 Stepping 9)
· CPU Speed: 2394 Mhz // me enganiaron me faltan unos 6 mhz ( me robaron un sega megadrive)
· System memory total/available: 510Mb / 225Mb // dual channel
· ATI Technologies Inc. - RADEON 9800 Pro x86/SSE2 - 2.0.5147 WinXP Release // nueva placa en el laburo

· Screen resolution 800x600x32bits


             |   Fullscreen   |   Full+doublebuf   |
  -------------------------------------------------|
    DirectX  |                |                    |
  ( 100/1000)|   727 /    73  |      60 /    60    |  // aca tengo el vsyn pero no lo pude sacar!!!
    sprites  |                |                    |
  -------------------------------------------------|
    OpenGL   |                |                    |
  ( 100/1000)|  1561 /   344  |    1354 /   335    |
    sprites  |                |                    |
  -------------------------------------------------|






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.