[Piglit] [PATCH] Add a test for instanced GS inputs.

Timothy Arceri tarceri at itsqueeze.com
Wed Jun 27 03:18:43 UTC 2018


On 22/06/18 18:36, andrii.simiklit wrote:
> Hello,
> 
> It would be great If somebody could take a look this test)
> This test against following bug:
> https://bugs.freedesktop.org/show_bug.cgi?id=96354

I've clean up the description, removed some trailing spaces and pushed 
this test.

Thanks!

> 
> Regards,
> Andrii.
> 
> On 05.06.18 16:33, Andrii Simiklit wrote:
> 
>>     All of our other tests for instanced geometry shaders don't actually
>>     transfer the vertices to the geometry shader
>>     from the vertex shader using gl_Position.
>>     This used to be broken with the i965 driver's in Mesa 12.1.0
>>     on revision d10ae20b9678f1a5b8a81716c68e612662665277.
>>     This test should give us ability to detect
>>     such kind of bugs like 96354 bug in future.
>>
>> Signed-off-by: Andrii Simiklit <andrii.simiklit at globallogic.com>
>> ---
>>   .../instanced-inputs-built-in-variable.shader_test | 68 
>> ++++++++++++++++++++++
>>   1 file changed, 68 insertions(+)
>>   create mode 100644 
>> tests/spec/arb_gpu_shader5/execution/instanced-inputs-built-in-variable.shader_test 
>>
>>
>> diff --git 
>> a/tests/spec/arb_gpu_shader5/execution/instanced-inputs-built-in-variable.shader_test 
>> b/tests/spec/arb_gpu_shader5/execution/instanced-inputs-built-in-variable.shader_test 
>>
>> new file mode 100644
>> index 0000000..86b2bbd
>> --- /dev/null
>> +++ 
>> b/tests/spec/arb_gpu_shader5/execution/instanced-inputs-built-in-variable.shader_test 
>>
>> @@ -0,0 +1,68 @@
>> +#It seems as duplicate of the "instanced-inputs.shader_test" test but 
>> it could not detect the bug 96354.
>> +#It could detect the 96354 bug if and only if vertices are transferred
>> +#from vertex shader into geometry shader through built-in variable 
>> gl_Position.
>> +#
>> +#Specification permits us to do it "11.3.4.4 Geometry Shader Inputs:
>> +#    Structure member gl_Position holds the per-vertex position, as 
>> written
>> +#    by the vertex shader to its built-in output variable gl_Position.
>> +#    Note that writing to gl_Position from either the vertex or 
>> geometry shader is
>> +#    optional (also see section 7.1(“Built-In Variables”) of the 
>> OpenGL Shading Language Specification)"
>> +
>> +[require]
>> +GL >= 2.0
>> +GLSL >= 1.50
>> +GL_ARB_gpu_shader5
>> +
>> +[vertex shader]
>> +in vec4 vertex;
>> +
>> +void main()
>> +{
>> +   gl_Position = vertex;
>> +}
>> +
>> +[geometry shader]
>> +#extension GL_ARB_gpu_shader5 : require
>> +layout(triangles) in;
>> +layout(triangle_strip, max_vertices = 3) out;
>> +layout(invocations = 4) in;
>> +
>> +void main()
>> +{
>> +   vec2 offset;
>> +   if (gl_InvocationID == 0)
>> +      offset.xy = vec2(-0.5, -0.5);
>> +   else if (gl_InvocationID == 1)
>> +      offset.xy = vec2( 0.5, -0.5);
>> +   else if (gl_InvocationID == 2)
>> +      offset.xy = vec2(-0.5,  0.5);
>> +   else if (gl_InvocationID == 3)
>> +      offset.xy = vec2( 0.5,  0.5);
>> +
>> +   for (int i = 0; i < 3; i++) {
>> +       gl_Position = gl_in[i].gl_Position;
>> +       gl_Position.xy += offset;
>> +       EmitVertex();
>> +   }
>> +}
>> +
>> +[fragment shader]
>> +void main()
>> +{
>> +   gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
>> +}
>> +
>> +[vertex data]
>> +vertex/float/2
>> +-0.5 -0.5
>> + 0.5 -0.5
>> +-0.5  0.0
>> + 0.5  0.0
>> +-0.5  0.5
>> + 0.5  0.5
>> +
>> +[test]
>> +clear color 0.0 0.0 0.0 0.0
>> +clear
>> +draw arrays GL_TRIANGLE_STRIP 0 6
>> +probe all rgba 0.0 1.0 0.0 1.0
>> \ No newline at end of file
> 
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list