Alpha-to-one only makes sense when used with alpha-to-coverage.  This
patch adds a flag to the alpha-to-coverage test to exercise alpha-to-one.
This will fail with drivers which emulate alpha-to-one in the FS.
---
 tests/all.py                                                  |  4 ++++
 .../ext_framebuffer_multisample/sample-alpha-to-coverage.cpp  | 11 ++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/tests/all.py b/tests/all.py
index ae55425..abe6185 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -3044,6 +3044,10 @@ with profile.test_list.group_manager(
                sample_count, buffer_type],
               'sample-alpha-to-coverage {} {}'.format(
                   sample_count, buffer_type))
+            g(['ext_framebuffer_multisample-sample-alpha-to-coverage',
+               sample_count, buffer_type, '--alpha-to-one'],
+              'sample-alpha-to-coverage-alpha-to-one {} {}'.format(
+                  sample_count, buffer_type))
 
         for test in ['line-smooth', 'point-smooth', 'polygon-smooth',
                      'sample-alpha-to-one',
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 7b756ba..32b4161 100644
--- a/tests/spec/ext_framebuffer_multisample/sample-alpha-to-coverage.cpp
+++ b/tests/spec/ext_framebuffer_multisample/sample-alpha-to-coverage.cpp
@@ -54,11 +54,12 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
 PIGLIT_GL_TEST_CONFIG_END
 
 static GLenum buffer_to_test;
+static bool alpha_to_one = false;
 
 void
 print_usage_and_exit(char *prog_name)
 {
-       printf("Usage: %s <num_samples> <test_type>\n"
+       printf("Usage: %s <num_samples> <test_type> [--alpha-to-one]\n"
               "  where <test_type> is one of:\n"
               "    color\n"
               "    depth\n",
@@ -93,6 +94,10 @@ piglit_init(int argc, char **argv)
        } else
                print_usage_and_exit(argv[0]);
 
+       if (argc == 4 && strcmp(argv[3], "--alpha-to-one") == 0) {
+               alpha_to_one = true;
+       }
+
        int pattern_width = piglit_width / 2;
        int pattern_height = piglit_height / num_attachments;
 
@@ -133,10 +138,10 @@ piglit_display()
         */
        if(buffer_to_test == GL_COLOR_BUFFER_BIT)
                draw_reference_image(true /* sample_alpha_to_coverage */,
-                                    false /* sample_alpha_to_one */);
+                                    alpha_to_one);
 
        draw_test_image(true /* sample_alpha_to_coverage */,
-                       false /* sample_alpha_to_one */);
+                       alpha_to_one);
 
        pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
 
-- 
1.9.1

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to