Re: [Piglit] [PATCH] EXT_framebuffer_multisample: Make supersample_factor a constant.

2015-06-23 Thread Matt Turner
Looks fine to me.

Reviewed-by: Matt Turner 
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH] EXT_framebuffer_multisample: Make supersample_factor a constant.

2015-06-23 Thread Eric Anholt
This gives drivers without support for loops a chance to run these
tests, since the compiler can now unroll the loops.  The shader never
had the uniform changed from its initial value.
---
 tests/spec/ext_framebuffer_multisample/common.cpp | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/tests/spec/ext_framebuffer_multisample/common.cpp 
b/tests/spec/ext_framebuffer_multisample/common.cpp
index 310dcf4..d7be84f 100644
--- a/tests/spec/ext_framebuffer_multisample/common.cpp
+++ b/tests/spec/ext_framebuffer_multisample/common.cpp
@@ -126,13 +126,13 @@ DownsampleProg::compile(int supersample_factor)
"  texCoordVarying = texCoord;\n"
"}\n";
 
-   static const char *frag =
+   static const char *frag_template =
"#version 120\n"
"uniform sampler2DRect samp;\n"
-   "uniform int supersample_factor;\n"
"varying vec2 texCoordVarying;\n"
"void main()\n"
"{\n"
+   "  int supersample_factor = %d;\n"
"  vec4 sum = vec4(0.0);\n"
"  vec2 pixel = floor(texCoordVarying);\n"
"  for (int i = 0; i < supersample_factor; ++i) {\n"
@@ -143,9 +143,14 @@ DownsampleProg::compile(int supersample_factor)
"  }\n"
"  gl_FragColor = sum / (supersample_factor * 
supersample_factor);\n"
"}\n";
+   char *frag;
+
+   if (asprintf(&frag, frag_template, supersample_factor) == -1)
+   piglit_report_result(PIGLIT_FAIL);
 
/* Compile program */
prog = piglit_build_simple_program_unlinked(vert, frag);
+   free(frag);
glBindAttribLocation(prog, 0, "pos");
glBindAttribLocation(prog, 1, "texCoord");
glLinkProgram(prog);
@@ -155,8 +160,6 @@ DownsampleProg::compile(int supersample_factor)
 
/* Set up uniforms */
glUseProgram(prog);
-   glUniform1i(glGetUniformLocation(prog, "supersample_factor"),
-   supersample_factor);
glUniform1i(glGetUniformLocation(prog, "samp"), 0);
 
/* Set up vertex array object */
-- 
2.1.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit