Ping?

Am 09.11.2017 um 19:11 schrieb srol...@vmware.com:
> From: Roland Scheidegger <srol...@vmware.com>
> 
> We expect non-nan results for these (according to d3d10 rules, and at least
> for min/max, also according to ieee rules). The tests will not actually fail
> with other results (since GL's NaN behavior is all undefined), albeit some
> apps may rely on this.
> (We'll use clamp to 0/1 on purpose, which may get optimized to a saturate
> modifier on some hw, and ideally we'd see a non-nan result there too. The
> expected result there is really zero (d3d10 would require this), so if
> it gets decomposed into min/max combo the order is actually important.)
> On r600, right now all 3 give undesired (NaN) results (pending fixes),
> albeit all legal.
> ---
>  tests/spec/glsl-1.30/execution/isinf-and-isnan.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/tests/spec/glsl-1.30/execution/isinf-and-isnan.c 
> b/tests/spec/glsl-1.30/execution/isinf-and-isnan.c
> index 099b5c2..77a7591 100644
> --- a/tests/spec/glsl-1.30/execution/isinf-and-isnan.c
> +++ b/tests/spec/glsl-1.30/execution/isinf-and-isnan.c
> @@ -340,6 +340,7 @@ enum behavior
>       B_FINITE = 1, /* Expected to evaluate to a finite value */
>       B_POSINF = 2, /* Expected to evaluate to +Infinity */
>       B_NEGINF = 3, /* Expected to evaluate to -Infinity */
> +     B_FINITE_NANOK = 4, /* Expected finite value, but NaN ok */
>  };
>  
>  struct expression_table_element
> @@ -369,6 +370,10 @@ static struct expression_table_element expressions[] = {
>       { "log(-1.0+z)", B_NAN },
>       { "sqrt(-1.0)", B_NAN },
>       { "sqrt(-1.0+z)", B_NAN },
> +     { "clamp(u_nan, 0.0, 1.0)", B_FINITE_NANOK },
> +     { "min(u_two, u_nan)", B_FINITE_NANOK },
> +     { "max(u_two, u_nan)", B_FINITE_NANOK },
> +
>  };
>  
>  /**
> @@ -446,6 +451,7 @@ test_expr(char *expression, int expected_behavior)
>               "uniform float u_inf;\n" /* Always == +infinity */
>               "uniform float u_minus_inf;\n" /* Always == -infinity */
>               "uniform float u_nan;\n" /* Always == NaN */
> +             "uniform float u_two = 2.0;\n" /* To defeat constant folding */
>               "float compute_value() {\n"
>               "  return %s;\n"
>               "}\n",
> @@ -523,6 +529,9 @@ test_expr(char *expression, int expected_behavior)
>                       pass = false;
>               }
>               break;
> +     case B_FINITE_NANOK:
> +             expected_behavior_string = "finite";
> +             break;
>       default:
>               expected_behavior_string = "NaN";
>               break;
> 

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

Reply via email to