Utilizator:
Parola:
Am uitat parola... | Cont nou!


Articole Resurse Echipe Competiții Proiecte Forum DevBlogs Locuri de muncă GDROMag Issue#1 GDROCon 2007

 
Forum » Programare » Grafică » Interogari GPU in OpenGL




Pagina 1 din 1 [ 1 ]

Mesaj Info autor
    Postat la 07 Aug 2009 20:31:06    Subiect: Interogari GPU in OpenGL
adimirea info:

adimirea:

Salut,

Stie careva cum pot sa interoghez in opengl gpu-ul pentru a obtine diverse informatii?
M-ar interesa altceva decat glGetString, care are din cate stiu eu doar 4 parametrii posibili:


Cod sursă:

#define GL_VENDOR                               0x1F00
#define GL_RENDERER                            0x1F01
#define GL_VERSION                              0x1F02
#define GL_EXTENSIONS                         0x1F03
 


si se foloseste asa:

Cod sursă:

     const GLubyte* sExtensions = glGetString(GL_VENDOR);
     printf("%s n", sExtensions);
 


De exemplu, vreau sa aflu cata memorie vram are GPU-ul pe care rulez disponibil. Eventual daca se poate si realtime, nu doar cat e maximul de memorie.
Am impresia ca se pot afla multe lucruri, fapt dovedit de altfel de aplicatii gen Gpu Caps viewer si altele.

De exemplu eu mai stiu ca poti afla cat dureaza un anume bloc de randare, in nanosecunde, cu api-ul glGenQueries:

Cod sursă:

GLuint query;
GLint available;
GLuint64EXT time;

glGenQueries(1, &query);

glBeginQuery(GL_TIME_ELAPSED_EXT, query);

   Randeaza_Ceva();

glEndQuery(GL_TIME_ELAPSED_EXT);
    
while (!available)
    {
          glGetQueryObjectiv(frameQuery, GL_QUERY_RESULT_AVAILABLE, &available);
    }
         
    glGetQueryObjectui64vEXT(query, GL_QUERY_RESULT, &time);     

printf("time = %ldn", time);


 



Status:
Înregistrat pe:
15 Jul 2009 18:24:27
Vârsta: 27 ani
Mesaje: 5
Locatie: Bucuresti
Programator

 
    Postat la 08 Aug 2009 11:23:08    Subiect: < fara subiect >
Pintea info:

Pintea:

VRAM-ul nu se afla pe GPU, ci pe placa video. Ca sa afli cat video ram are placa video cel mai "safe" e sa folosesti functiile SO-ului.

Pentru alte "functii" GPU in OpenGL uita-te pe extensiile disponibile, altele nu pot exista :
http://www.opengl.org/registry/

Sunt multe extensii ATI/NVidia only - de exemplu doar ATI are GL_ATI_meminfo ce intoarce memoria video ramasa libera.


PS: in DirectX exista mai multe metode : http://msdn.microsoft.com/en-us/library/cc308070 (VS.85).aspx



Status:
Înregistrat pe:
05 May 2007 14:50:45
Vârsta: 29 ani
Mesaje: 301
Locatie:
Programator

 
    Postat la 21 Oct 2009 17:09:48    Subiect: < fara subiect >
adimirea info:

adimirea:

Eu m-am uitat pe extensii si am mai si cautat, chiar inainte sa intreb initial si nu am gasit nimic.

Iar functii WINAPI nu prea am cautat, recunosc. Stie cineva cum as putea face sa aflu macar cat VRAM total e disponibil?

Ideal ar fi sa aflu si cat e folosit, dar se poate face un sistem care tine minte cat am alocat, deci asta nu e esential.


Status:
Înregistrat pe:
15 Jul 2009 18:24:27
Vârsta: 27 ani
Mesaje: 5
Locatie: Bucuresti
Programator

 
    Postat la 21 Oct 2009 17:51:55    Subiect: < fara subiect >
Dark info:

Dark:

Uite-te in DirectX SDK in samples/c++/misc/VideoMemory. Cu OpenGL nu poti sa afli cit RAM video ai. in D3D ai IDirect3DDevice9::GetAvailableTextureMem() (care zice cit ai in momentul de fata, nu cit ai in total). Daca nu vrei sa faci un device D3D, poti incerca sa vorbesti cu DxDiag prin COM (o placere), sa vorbesti cu WMI tot prin COM (o placere si mai mare), sa-l intrebi pe DXGI (nu merge decit de la Vista in sus) sau sa vorbesti cu DirectDraw. Daca nu esti pe Windows, ghinion.

LE: mai exista si ATI performance metrics si NVPerfKit, dar nu-i o idee buna sa le folosesti in production code. De exemplu, NVPerfKit nu merge pe XP decit cu drivere speciale.

Ultima editare efectuată de Dark pe 21 Oct 2009 17:54:12; 1 editări în total

"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D.
Autobaza


Status:
Înregistrat pe:
12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 740
Locatie:
Programator

 

Pagina 1 din 1 [ 1 ]


Server time: 09:34:03 19.05.2012



[ Termeni si conditii | Contact | F.A.Q. | Funny Pictures ]

© 2006 - 2012 Copyright 7thFACTOR Entertainment - All rights reserved