[Piglit] [PATCH] ext_framebuffer_multisample: add --alpha-to-one option to coverage test
Brian Paul
brianp at vmware.com
Fri Aug 4 17:28:50 UTC 2017
It passes here for me w/ NVIDIA's driver but I'll hold off on this until
I can take a closer look.
-Brina
On 08/04/2017 11:11 AM, Roland Scheidegger wrote:
> I think should mention that the reference probably isn't quite right (if
> I try it here, the reference is the same with or without alpha-to-one,
> but with nvidia with alpha-to-one it's a bit different (darker) than
> without). I think it's because the reference drawing doesn't really take
> into account that the samples which get written thanks to
> coverage-to-alpha also had their alpha values changed to 1.0, but I
> could be wrong and maybe it is correct after all...
>
> In any case,
> Reviewed-by: Roland Scheidegger <sroland at vmware.com>
>
> Am 04.08.2017 um 19:03 schrieb Brian Paul:
>> 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;
>>
>>
>
More information about the Piglit
mailing list