[Piglit] [PATCH 1/3] fbo-blending-formats: Enable testing for channels with 0 bits of data.

Marek Olšák maraeo at gmail.com
Mon Jan 14 17:13:16 PST 2013


The series is: Reviewed-by: Marek Olšák <maraeo at gmail.com>

I hope other tests are not broken by this change in the util code.

Marek

On Mon, Jan 14, 2013 at 11:30 PM, Carl Worth <cworth at cworth.org> wrote:
> The existing code is intentionally disabling testing for channels with
> 1 bit of data, (since the ambiguity in rounding makes it infeasible to
> test). But the disabling of testing for 0-bit channels was
> unintentional collateral damage.
>
> In particular, for RGB-only formats it's important to test that
> results always provide a value of 1.0 for alpha.
>
> So we change the condition to disable tests only when the number of
> bits is equal to 1, (as opposed to less then 2). We also just fudge in
> a tolerance value corresponding to 8 bits for channels with 0 bits of
> storage. (The tolerance probably doesn't matter at all here since we
> should really only be doing exact comparisons of values of 0.0 or
> 1.0).
> ---
>  tests/util/piglit-util-gl-common.c |   10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/tests/util/piglit-util-gl-common.c b/tests/util/piglit-util-gl-common.c
> index 7674d4e..25098b8 100644
> --- a/tests/util/piglit-util-gl-common.c
> +++ b/tests/util/piglit-util-gl-common.c
> @@ -297,9 +297,15 @@ piglit_set_tolerance_for_bits(int rbits, int gbits, int bbits, int abits)
>         int i;
>
>         for (i = 0; i < 4; i++) {
> -               if (bits[i] < 2) {
> +               if (bits[i] == 0) {
> +                       /* With 0 bits of storage, we still want to
> +                        * validate expected results, (such as
> +                        * alpha==1.0 when targeting storage with no
> +                        * alpha bits). */
> +                       piglit_tolerance[i] = 3.0 / (1 << 8);
> +               } else if (bits[i] == 1) {
>                         /* Don't try to validate channels when there's only 1
> -                        * bit of precision (or none).
> +                        * bit of precision.
>                          */
>                         piglit_tolerance[i] = 1.0;
>                 } else {
> --
> 1.7.10.4
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list