Signed-off-by: Topi Pohjolainen <[email protected]>
---
 .../sample-alpha-to-coverage.cpp                   | 41 +++++++++++++++-------
 1 file changed, 28 insertions(+), 13 deletions(-)

diff --git 
a/tests/spec/ext_framebuffer_multisample/sample-alpha-to-coverage.cpp 
b/tests/spec/ext_framebuffer_multisample/sample-alpha-to-coverage.cpp
index 7b756ba83..2b4b3f735 100644
--- a/tests/spec/ext_framebuffer_multisample/sample-alpha-to-coverage.cpp
+++ b/tests/spec/ext_framebuffer_multisample/sample-alpha-to-coverage.cpp
@@ -53,7 +53,10 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
 
 PIGLIT_GL_TEST_CONFIG_END
 
+const unsigned num_attachments = 1;
+static int samples;
 static GLenum buffer_to_test;
+static unsigned pattern_width, pattern_height;
 
 void
 print_usage_and_exit(char *prog_name)
@@ -69,9 +72,6 @@ print_usage_and_exit(char *prog_name)
 void
 piglit_init(int argc, char **argv)
 {
-       const int num_attachments = 1;
-       int samples;
-
        piglit_require_gl_version(21);
        piglit_require_extension("GL_ARB_framebuffer_object");
        piglit_require_extension("GL_ARB_vertex_array_object");
@@ -93,8 +93,8 @@ piglit_init(int argc, char **argv)
        } else
                print_usage_and_exit(argv[0]);
 
-       int pattern_width = piglit_width / 2;
-       int pattern_height = piglit_height / num_attachments;
+       pattern_width = piglit_width / 2;
+       pattern_height = piglit_height / num_attachments;
 
        piglit_ortho_projection(pattern_width,
                                pattern_height,
@@ -107,21 +107,23 @@ piglit_init(int argc, char **argv)
        if (samples > max_samples)
                piglit_report_result(PIGLIT_SKIP);
 
-       ms_fbo_and_draw_buffers_setup(samples,
-                                     pattern_width,
-                                     pattern_height,
-                                     num_attachments,
-                                     buffer_to_test,
-                                     GL_RGBA);
        shader_compile(true /* sample_alpha_to_coverage */,
                       false /* dual_src_blend */,
                       true /* frag_out_zero_write */);
 }
 
-enum piglit_result
-piglit_display()
+static bool
+test_format(GLenum color_internal_format)
 {
        bool pass = true;
+
+       ms_fbo_and_draw_buffers_setup(samples,
+                                     pattern_width,
+                                     pattern_height,
+                                     num_attachments,
+                                     buffer_to_test,
+                                     color_internal_format);
+
        glBindFramebuffer(GL_DRAW_FRAMEBUFFER, piglit_winsys_fbo);
        glClearColor(0.0, 0.0, 0.0, 1.0);
        glClear(GL_COLOR_BUFFER_BIT);
@@ -155,6 +157,19 @@ piglit_display()
        /* Free the memory allocated for data arrays */
        free_data_arrays();
 
+       return pass;
+}
+
+enum piglit_result
+piglit_display()
+{
+       bool pass = test_format(GL_RGBA);
+
+       if (buffer_to_test == GL_COLOR_BUFFER_BIT) {
+              pass &= test_format(GL_RGBA16F);
+              pass &= test_format(GL_RGBA32F);
+       }
+
        if (!piglit_automatic && buffer_to_test == GL_COLOR_BUFFER_BIT)
                piglit_present_results();
 
-- 
2.11.0

_______________________________________________
Piglit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to