All pastes #976802 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-04-08 13:06 UTC
rendered paste body
diff --git a/include/compiz-core.h b/include/compiz-core.h
index 9e4e29f..1ebbc99 100644
--- a/include/compiz-core.h
+++ b/include/compiz-core.h
@@ -28,7 +28,7 @@
 
 #include <compiz-plugin.h>
 
-#define CORE_ABIVERSION 20080401
+#define CORE_ABIVERSION 20080408
 
 #include <stdio.h>
 #include <sys/time.h>
@@ -1824,6 +1824,9 @@ typedef void (*GLProgramParameter4fProc) (GLenum  target,
 					  GLfloat y,
 					  GLfloat z,
 					  GLfloat w);
+typedef void (*GLGetProgramivProc) (GLenum target,
+				    GLenum pname,
+				    int    *params);
 
 typedef void (*GLGenFramebuffersProc) (GLsizei n,
 				       GLuint  *framebuffers);
@@ -2179,6 +2182,7 @@ struct _CompScreen {
     GLProgramStringProc	     programString;
     GLProgramParameter4fProc programEnvParameter4f;
     GLProgramParameter4fProc programLocalParameter4f;
+    GLGetProgramivProc       getProgramiv;
 
     GLGenFramebuffersProc        genFramebuffers;
     GLDeleteFramebuffersProc     deleteFramebuffers;
diff --git a/plugins/blur.c b/plugins/blur.c
index 620a5fa..faa3185 100644
--- a/plugins/blur.c
+++ b/plugins/blur.c
@@ -2944,6 +2944,40 @@ blurInitScreen (CompPlugin *p,
     else
 	bs->alphaBlur = FALSE;
 
+    if (s->fragmentProgram)
+    {
+	int tmp[4];
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_INSTRUCTIONS_ARB, tmp);
+	printf("Max instructions : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_TEMPORARIES_ARB, tmp);
+	printf("Max temporaries  : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_PARAMETERS_ARB, tmp);
+	printf("Max parameters   : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_ATTRIBS_ARB, tmp);
+	printf("Max attribs      : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB, tmp);
+	printf("Max alu instr.   : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB, tmp);
+	printf("Max tex instr.   : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB, tmp);
+	printf("Max tex indirect : %d\n", tmp[0]);
+
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB, tmp);
+	printf("Native Max instructions : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB, tmp);
+	printf("Native Max temporaries  : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB, tmp);
+	printf("Native Max parameters   : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB, tmp);
+	printf("Native Max attribs      : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB, tmp);
+	printf("Native Max alu instr.   : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB, tmp);
+	printf("Native Max tex instr.   : %d\n", tmp[0]);
+	s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB, tmp);
+	printf("Native Max tex indirect : %d\n", tmp[0]);
+    }
+
     WRAP (bs, s, preparePaintScreen, blurPreparePaintScreen);
     WRAP (bs, s, donePaintScreen, blurDonePaintScreen);
     WRAP (bs, s, paintOutput, blurPaintOutput);
diff --git a/src/screen.c b/src/screen.c
index a033da5..6b91423 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2026,13 +2026,16 @@ addScreen (CompDisplay *display,
 	    getProcAddress (s, "glProgramEnvParameter4fARB");
 	s->programLocalParameter4f = (GLProgramParameter4fProc)
 	    getProcAddress (s, "glProgramLocalParameter4fARB");
-
-	if (s->genPrograms	     &&
-	    s->deletePrograms	     &&
-	    s->bindProgram	     &&
-	    s->programString	     &&
-	    s->programEnvParameter4f &&
-	    s->programLocalParameter4f)
+	s->getProgramiv = (GLGetProgramivProc)
+	    getProcAddress (s, "glGetProgramivARB");
+
+	if (s->genPrograms	       &&
+	    s->deletePrograms	       &&
+	    s->bindProgram	       &&
+	    s->programString	       &&
+	    s->programEnvParameter4f   &&
+	    s->programLocalParameter4f &&
+	    s->getProgramiv)
 	    s->fragmentProgram = 1;
     }