Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Texturas En Memoria De Video

Iniciado por Lord Trancos 2, 12 de Julio de 2005, 10:50:36 PM

« anterior - próximo »

Pogacha

 En realidad OpenGL no guarda copia, esto lo decide el driver o implementación, en la savage 4 creo o no se que placa de la que tenia antes, OpenGL subia la textura a video y cuando no la usaba mas la bajaba a memoria ram, dejando solo una copia ... pero tal vez por optimización o algo así se ha cambiado para estas placas.
Saludos

_Grey

 Que yo sepa OpenGL no tiene forma de saber cuando pierde el device, entre otras cosas por que nunca lo pierde, OpenGL siempre esta "ahi".

Por otro lado no creo que gurade una copia de la textura en memoria siempre, probablemente se limite a subirla de la Ram de video y a bajarla cuando sea necesario, no veo por que tener una copia, por si acaso, si el driver puede controlar cuando ocurre eso.

Saludos.

PD: A veces los programas consumen mucha memoria y punto, usa menos texturas u optimiza por otro lado, quiza usar DirectX te permita controlar mejor este aspecto, por que te deja mas cerca del "metal", pero para gustos los colores.

Zaelsius

 http://oss.sgi.com/projects/ogl-sample/reg...ent_storage.txt

CitarGL implementations normally maintain a copy of texture image
   data supplied clients when any of the various texturing commands, such as
   TexImage2D, are invoked.

Eso es lo que dice SGI, por supuesto, cada implementación luego hará lo que quiera. Supongo que mantener la copia hace que que el descarte de texturas sea más rápido, al no tener que moverlas de nuevo a la memoria del sistema.

Es posible que incluso se sigan diferentes políticas para texturas pequeñas o grandes, quien sabe..

El enlace en cuestión habla sobre una extensión de Apple B) :
CitarThis extension eliminates GL's internal copy of
   the texture image data and allows a client to maintain this data locally for
   textures when the UNPACK_CLIENT_STORAGE_APPLE pixel storage parameter is
   TRUE at the time of texture specification.  Local texture data storage is
   especially useful in cases where clients maintain internal copies of
   textures used in any case.
Que es útil por ejemplo a la hora de renderizar vídeo con OpenGL.

PD: Alguien con mucho tiempo que se mire los sources de los drivers OpenGL de ATI para Linux, a ver qué hacen :lol:

Xam

 Según la información aportada por ZaelSiuS en :

Citar
http://oss.sgi.com/projects/ogl-sample/reg...ent_storage.txt

Parece ser que los drivers sí mantienen en la memoria de sistema una copia de las texturas que tienen en la memoria de video. De hecho la extensión a la que hace referencia (GL_APPLE_client_storage) le permite al cliente hacerse responsable de esa copia en la memoria de sistema de las texturas almacenadas en la memoria de video. Pero vamos, sea memoria gestionada por el driver o memoria gestionada por el cliente la copia seguiría ahí.

No sé hasta que punto puede resultar útil mantener en memoria de sistema una copia de una textura ya almacenada en la memoria de video. En el caso de tener que hacer algún intercambio de texturas podría tener algún sentido (aunque tampoco mucho, si vas a sacar una textura de la memoria de video para meter otra en su lugar se podría reutilizar el espacio en memoria de sistema de esta útlima - por supuesto ambas deberían tener el mismo tamaño- y sólo tendrías que utilizar memoria de sistema para las texturas que no entrasen en la memoria de video. De hecho yo siempre he asumido que el driver de OpenGl funcionaba así), pero en el caso de no tener que hacer ningún intercambio de texturas no tiene ninguno. Si una aplicación requiere 100 Megas de texturas, y la tarjeta de video puede almacenarlas todas para qué mantener una copia de éstas en la memoria de sistema.  En todo caso debería ser algo parametrizable.


zupervaca

 el sistema de texturas en opengl no se como va, pero desde directx si le dices que la quieres en la memoria de video, la memoria ram no crece (por lo menos en mi ordenador), con lo que yo veo que es mas de opengl que de otra cosa

saludos






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.