[Piglit] [PATCH] arb_gpu_shader_fp64: emit GS output for every vertex

Andres Gomez agomez at igalia.com
Mon Jun 13 16:04:20 UTC 2016


On Tue, 2016-06-07 at 00:21 +0200, Samuel Pitoiset wrote:
> Because EmitVertex() will invalidate all previous output writes, we
> need to emit the output for every vertex. This fixes is similar to
> the one in the GS tests generator.
> 
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>  .../execution/gs-isnan-dvec.shader_test            | 36 +++++++++++-


[snip]


> diff --git a/tests/spec/arb_gpu_shader_fp64/execution/gs-isnan-
> dvec.shader_test b/tests/spec/arb_gpu_shader_fp64/execution/gs-isnan-
> dvec.shader_test
> index 28f7505..314a87c 100644
> --- a/tests/spec/arb_gpu_shader_fp64/execution/gs-isnan-
> dvec.shader_test
> +++ b/tests/spec/arb_gpu_shader_fp64/execution/gs-isnan-
> dvec.shader_test
> @@ -38,29 +38,29 @@ out vec4 fs_color;
>  
>  void main()
>  {
> -	fs_color = vec4(0.0);
> +	for (int i = 0; i < 3; i++) {
> +		fs_color = vec4(0.0);
>  
> -	dvec4 r4 = numerator/denominator;
> -	dvec4 bl4 = dvec4(isnan(r4));
> -	if (distance(bl4, expected) > tolerance)
> -		fs_color.x = 1.0;
> +		dvec4 r4 = numerator/denominator;
> +		dvec4 bl4 = dvec4(isnan(r4));
> +		if (distance(bl4, expected) > tolerance)
> +			fs_color.x = 1.0;
>  
> -	dvec3 r3 = numerator.xyz/denominator.xyz;
> -	dvec3 bl3 = dvec3(isnan(r3));
> -	if (distance(bl3, expected.xyz) > tolerance)
> -		fs_color.y = 1.0;
> +		dvec3 r3 = numerator.xyz/denominator.xyz;
> +		dvec3 bl3 = dvec3(isnan(r3));
> +		if (distance(bl3, expected.xyz) > tolerance)
> +			fs_color.y = 1.0;
>  
> -	dvec2 r2 = numerator.zw/denominator.zw;
> -	dvec2 bl2 = dvec2(isnan(r2));
> -	if (distance(bl2, expected.zw) > tolerance)
> -		fs_color.z = 1.0;
> +		dvec2 r2 = numerator.zw/denominator.zw;
> +		dvec2 bl2 = dvec2(isnan(r2));
> +		if (distance(bl2, expected.zw) > tolerance)
> +			fs_color.z = 1.0;
>  
> -	double r1 = numerator.x/denominator.x;
> -	double bl1 = double(isnan(r1));
> -	if (distance(bl1, expected.x) > tolerance)
> -		fs_color.w = 1.0;
> +		double r1 = numerator.x/denominator.x;
> +		double bl1 = double(isnan(r1));
> +		if (distance(bl1, expected.x) > tolerance)
> +			fs_color.w = 1.0;
>  
> -	for (int i = 0; i < 3; i++) {
>  		gl_Position = vertex_to_gs[i];
>  		EmitVertex();
>  	}

I'd rather have just the "if" parts that modify fs_color in the "for"
loop and not the whole code.

In any case, this is a minor thing so feel free to ignore.

Other than that, this is:

Reviewed-by: Andres Gomez <agomez at igalia.com>
-- 
Br,

Andres




More information about the Piglit mailing list