Because EmitVertex() will invalidate all previous output writes, we need to set the value of the output variables for every vertex
Signed-off-by: Andres Gomez <[email protected]> --- .../templates/gen_conversion_fp64/shader-zero-sign.geom.mako | 2 +- .../arb_gpu_shader_fp64/execution/gs-isinf-dvec.shader_test | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/generated_tests/templates/gen_conversion_fp64/shader-zero-sign.geom.mako b/generated_tests/templates/gen_conversion_fp64/shader-zero-sign.geom.mako index a4f82ba..05a4cbb 100644 --- a/generated_tests/templates/gen_conversion_fp64/shader-zero-sign.geom.mako +++ b/generated_tests/templates/gen_conversion_fp64/shader-zero-sign.geom.mako @@ -18,9 +18,9 @@ void main() ${to_type} pre_converted = ${converted_from}; ${to_type} converted = ONE / pre_converted; bool match = converted == to; - fs_color = match ? GREEN : RED; for (int i = 0; i < 3; i++) { + fs_color = match ? GREEN : RED; gl_Position = vertex_to_gs[i]; EmitVertex(); } diff --git a/tests/spec/arb_gpu_shader_fp64/execution/gs-isinf-dvec.shader_test b/tests/spec/arb_gpu_shader_fp64/execution/gs-isinf-dvec.shader_test index c8552ea..b7a904c 100644 --- a/tests/spec/arb_gpu_shader_fp64/execution/gs-isinf-dvec.shader_test +++ b/tests/spec/arb_gpu_shader_fp64/execution/gs-isinf-dvec.shader_test @@ -38,29 +38,30 @@ out vec4 fs_color; void main() { - fs_color = vec4(0.0); + vec4 gs_color = vec4(0.0); dvec4 r4 = multiplier*exp(exponent); dvec4 bl4 = dvec4(isinf(r4)); if (distance(bl4, expected) > tolerance) - fs_color.x = 1.0; + gs_color.x = 1.0; dvec3 r3 = multiplier.xyz*exp(exponent.xyz); dvec3 bl3 = dvec3(isinf(r3)); if (distance(bl3, expected.xyz) > tolerance) - fs_color.y = 1.0; + gs_color.y = 1.0; dvec2 r2 = multiplier.zw*exp(exponent.zw); dvec2 bl2 = dvec2(isinf(r2)); if (distance(bl2, expected.zw) > tolerance) - fs_color.z = 1.0; + gs_color.z = 1.0; double r1 = multiplier.x*exp(exponent.x); double bl1 = double(isinf(r1)); if (distance(bl1, expected.x) > tolerance) - fs_color.w = 1.0; + gs_color.w = 1.0; for (int i = 0; i < 3; i++) { + fs_color = gs_color; gl_Position = vertex_to_gs[i]; EmitVertex(); } -- 2.8.1 _______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
