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);