mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
progs/util: added GetShaderCompile/LinkTime() to get compilation/link times
This commit is contained in:
parent
8a883d1657
commit
f300db379e
2 changed files with 39 additions and 0 deletions
|
|
@ -14,6 +14,12 @@
|
|||
#include <GL/glut.h>
|
||||
#include "shaderutil.h"
|
||||
|
||||
/** time to compile previous shader */
|
||||
static GLdouble CompileTime = 0.0;
|
||||
|
||||
/** time to linke previous program */
|
||||
static GLdouble LinkTime = 0.0;
|
||||
|
||||
|
||||
GLboolean
|
||||
ShadersSupported(void)
|
||||
|
|
@ -37,10 +43,17 @@ CompileShaderText(GLenum shaderType, const char *text)
|
|||
{
|
||||
GLuint shader;
|
||||
GLint stat;
|
||||
GLdouble t0, t1;
|
||||
|
||||
shader = glCreateShader(shaderType);
|
||||
glShaderSource(shader, 1, (const GLchar **) &text, NULL);
|
||||
|
||||
t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
|
||||
glCompileShader(shader);
|
||||
t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
|
||||
|
||||
CompileTime = t1 - t0;
|
||||
|
||||
glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
|
||||
if (!stat) {
|
||||
GLchar log[1000];
|
||||
|
|
@ -95,6 +108,7 @@ GLuint
|
|||
LinkShaders(GLuint vertShader, GLuint fragShader)
|
||||
{
|
||||
GLuint program = glCreateProgram();
|
||||
GLdouble t0, t1;
|
||||
|
||||
assert(vertShader || fragShader);
|
||||
|
||||
|
|
@ -102,7 +116,12 @@ LinkShaders(GLuint vertShader, GLuint fragShader)
|
|||
glAttachShader(program, fragShader);
|
||||
if (vertShader)
|
||||
glAttachShader(program, vertShader);
|
||||
|
||||
t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
|
||||
glLinkProgram(program);
|
||||
t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
|
||||
|
||||
LinkTime = t1 - t0;
|
||||
|
||||
/* check link */
|
||||
{
|
||||
|
|
@ -121,6 +140,20 @@ LinkShaders(GLuint vertShader, GLuint fragShader)
|
|||
}
|
||||
|
||||
|
||||
GLdouble
|
||||
GetShaderCompileTime(void)
|
||||
{
|
||||
return CompileTime;
|
||||
}
|
||||
|
||||
|
||||
GLdouble
|
||||
GetShaderLinkTime(void)
|
||||
{
|
||||
return LinkTime;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SetUniformValues(GLuint program, struct uniform_info uniforms[])
|
||||
{
|
||||
|
|
|
|||
|
|
@ -36,6 +36,12 @@ CompileShaderFile(GLenum shaderType, const char *filename);
|
|||
extern GLuint
|
||||
LinkShaders(GLuint vertShader, GLuint fragShader);
|
||||
|
||||
extern GLdouble
|
||||
GetShaderCompileTime(void);
|
||||
|
||||
extern GLdouble
|
||||
GetShaderLinkTime(void);
|
||||
|
||||
extern void
|
||||
SetUniformValues(GLuint program, struct uniform_info uniforms[]);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue