[Piglit] [PATCH 4/5] fbo-drawbuffers-none: Add a sub test for fragment shader out variables
Anuj Phogat
anuj.phogat at gmail.com
Mon May 19 13:51:40 PDT 2014
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
tests/all.py | 1 +
.../arb_framebuffer_object/fbo-drawbuffers-none.c | 22 +++++++++++++++++++++-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/tests/all.py b/tests/all.py
index c841110..0cb8f2e 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -1706,6 +1706,7 @@ add_concurrent_test(arb_framebuffer_object, 'fbo-drawbuffers-none glClear')
add_concurrent_test(arb_framebuffer_object, 'fbo-drawbuffers-none glClearBuffer')
add_concurrent_test(arb_framebuffer_object, 'fbo-drawbuffers-none gl_FragColor')
add_concurrent_test(arb_framebuffer_object, 'fbo-drawbuffers-none gl_FragData')
+add_concurrent_test(arb_framebuffer_object, 'fbo-drawbuffers-none frag_out')
add_concurrent_test(arb_framebuffer_object, 'fbo-drawbuffers-none glColorMaskIndexed')
add_concurrent_test(arb_framebuffer_object, 'fbo-drawbuffers-none glBlendFunci')
add_concurrent_test(arb_framebuffer_object, 'fbo-drawbuffers-none glDrawPixels')
diff --git a/tests/spec/arb_framebuffer_object/fbo-drawbuffers-none.c b/tests/spec/arb_framebuffer_object/fbo-drawbuffers-none.c
index 10cc133..ee97247 100644
--- a/tests/spec/arb_framebuffer_object/fbo-drawbuffers-none.c
+++ b/tests/spec/arb_framebuffer_object/fbo-drawbuffers-none.c
@@ -107,6 +107,7 @@ static const char *fs_write_red =
"}\n";
static const char *fs_template_write_different =
+ "%s \n"
"#define OUTVAR %s \n"
"void main() \n"
"{ \n"
@@ -124,13 +125,17 @@ static GLuint fb, prog_write_all_red, prog_write_all_different;
static void
create_shaders(void)
{
+ bool fs_uses_out_variables = streq(test_name, "use_frag_out");
+
prog_write_all_red = piglit_build_simple_program_multiple_shaders(
GL_VERTEX_SHADER, vs,
GL_FRAGMENT_SHADER, fs_write_red,
0);
asprintf(&fs_write_different, fs_template_write_different,
- "gl_FragData");
+ fs_uses_out_variables ?
+ "#version 130 \nout vec4[4] color;" : "",
+ fs_uses_out_variables ? "color" : "gl_FragData");
prog_write_all_different = piglit_build_simple_program_multiple_shaders(
GL_VERTEX_SHADER, vs,
@@ -267,6 +272,16 @@ test_fragcolor(const GLenum drawbufs[4])
}
static bool
+test_fragout(const GLenum drawbufs[4])
+{
+ glUseProgram(prog_write_all_different);
+ piglit_draw_rect(-1, -1, 2, 2);
+ glUseProgram(0);
+
+ return probe_buffers(drawbufs, colors_all_different);
+}
+
+static bool
test_fragdata(const GLenum drawbufs[4])
{
glUseProgram(prog_write_all_different);
@@ -395,6 +410,7 @@ print_usage_and_exit(void)
" glClearBuffer\n"
" gl_FragColor\n"
" gl_FragData\n"
+ " use_frag_out\n"
" glColorMaskIndexed\n"
" glBlendFunci\n"
" glDrawPixels\n"
@@ -456,6 +472,10 @@ piglit_display(void)
else if (strcmp(test_name, "gl_FragData") == 0) {
pass = test_fragdata(drawbuf_config[i]) && pass;
}
+ else if (strcmp(test_name, "use_frag_out") == 0) {
+ piglit_require_GLSL_version(130);
+ pass = test_fragout(drawbuf_config[i]) && pass;
+ }
else if (strcmp(test_name, "glColorMaskIndexed") == 0) {
piglit_require_extension("GL_EXT_draw_buffers2");
pass = test_glColorMaskIndexed(drawbuf_config[i]) && pass;
--
1.8.3.1
More information about the Piglit
mailing list