[Piglit] [PATCH] arb_fragment_layer_viewport: simple write tests
Chris Forbes
chrisf at ijw.co.nz
Mon Jun 23 13:11:51 PDT 2014
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>
On Tue, Jun 24, 2014 at 7:18 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Mon, Jun 23, 2014 at 3:02 PM, Ian Romanick <idr at freedesktop.org> wrote:
>> On 06/23/2014 06:52 AM, Ilia Mirkin wrote:
>>> With no layered fb and unconfigured viewports, the values of
>>> gl_Layer/gl_ViewportIndex shouldn't matter for rendering. Make sure that
>>> they're being passed through correctly from GS to FS.
>>
>> This test is
>>
>> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
>
> Thanks!
>
>>
>> It would be really good to have a separate shader objects version of the
>> test too. I suspect Mesa may have some additional difficulties with
>> that case...
>
> Unfortunately that's beyond my abilities, unless shader_runner can do
> it and you can point me at some examples.
>
>>
>>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>>> ---
>>>
>>> These apply on top of ChrisF's series.
>>>
>>> .../layer-gs-write-simple.shader_test | 70 +++++++++++++++++++++
>>> .../viewport-gs-write-simple.shader_test | 72 ++++++++++++++++++++++
>>> 2 files changed, 142 insertions(+)
>>> create mode 100644 tests/spec/arb_fragment_layer_viewport/layer-gs-write-simple.shader_test
>>> create mode 100644 tests/spec/arb_fragment_layer_viewport/viewport-gs-write-simple.shader_test
>>>
>>> diff --git a/tests/spec/arb_fragment_layer_viewport/layer-gs-write-simple.shader_test b/tests/spec/arb_fragment_layer_viewport/layer-gs-write-simple.shader_test
>>> new file mode 100644
>>> index 0000000..1d27dde
>>> --- /dev/null
>>> +++ b/tests/spec/arb_fragment_layer_viewport/layer-gs-write-simple.shader_test
>>> @@ -0,0 +1,70 @@
>>> +[require]
>>> +GLSL >= 1.50
>>> +GL_ARB_fragment_layer_viewport
>>> +
>>> +[vertex shader]
>>> +#version 150
>>> +in vec4 piglit_vertex;
>>> +
>>> +void main()
>>> +{
>>> + gl_Position = piglit_vertex;
>>> +}
>>> +
>>> +[geometry shader]
>>> +#version 150
>>> +
>>> +layout(triangles) in;
>>> +layout(triangle_strip, max_vertices=3) out;
>>> +uniform int layer;
>>> +
>>> +void main()
>>> +{
>>> + for (int i = 0; i < 3; i++) {
>>> + gl_Position = gl_in[i].gl_Position;
>>> + gl_Layer = layer;
>>> + EmitVertex();
>>> + }
>>> +}
>>> +
>>> +[fragment shader]
>>> +#version 150
>>> +#extension GL_ARB_fragment_layer_viewport: require
>>> +
>>> +uniform int layer;
>>> +
>>> +void main()
>>> +{
>>> + if (gl_Layer == layer)
>>> + gl_FragColor = vec4(0,1,0,0);
>>> + else
>>> + gl_FragColor = vec4(1,0,0,0);
>>> +}
>>> +
>>> +[test]
>>> +clear color 0.0 0.0 0.0 0.0
>>> +
>>> +clear
>>> +uniform int layer 0
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> +
>>> +clear
>>> +uniform int layer 1
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> +
>>> +clear
>>> +uniform int layer 10
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> +
>>> +clear
>>> +uniform int layer 100
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> +
>>> +clear
>>> +uniform int layer -1
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> diff --git a/tests/spec/arb_fragment_layer_viewport/viewport-gs-write-simple.shader_test b/tests/spec/arb_fragment_layer_viewport/viewport-gs-write-simple.shader_test
>>> new file mode 100644
>>> index 0000000..06abd96
>>> --- /dev/null
>>> +++ b/tests/spec/arb_fragment_layer_viewport/viewport-gs-write-simple.shader_test
>>> @@ -0,0 +1,72 @@
>>> +[require]
>>> +GLSL >= 1.50
>>> +GL_ARB_fragment_layer_viewport
>>> +GL_ARB_viewport_array
>>> +
>>> +[vertex shader]
>>> +#version 150
>>> +in vec4 piglit_vertex;
>>> +
>>> +void main()
>>> +{
>>> + gl_Position = piglit_vertex;
>>> +}
>>> +
>>> +[geometry shader]
>>> +#version 150
>>> +#extension GL_ARB_viewport_array: enable
>>> +
>>> +layout(triangles) in;
>>> +layout(triangle_strip, max_vertices=3) out;
>>> +uniform int viewport;
>>> +
>>> +void main()
>>> +{
>>> + for (int i = 0; i < 3; i++) {
>>> + gl_Position = gl_in[i].gl_Position;
>>> + gl_ViewportIndex = viewport;
>>> + EmitVertex();
>>> + }
>>> +}
>>> +
>>> +[fragment shader]
>>> +#version 150
>>> +#extension GL_ARB_fragment_layer_viewport: require
>>> +
>>> +uniform int viewport;
>>> +
>>> +void main()
>>> +{
>>> + if (gl_ViewportIndex == viewport)
>>> + gl_FragColor = vec4(0,1,0,0);
>>> + else
>>> + gl_FragColor = vec4(1,0,0,0);
>>> +}
>>> +
>>> +[test]
>>> +clear color 0.0 0.0 0.0 0.0
>>> +
>>> +clear
>>> +uniform int viewport 0
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> +
>>> +clear
>>> +uniform int viewport 1
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> +
>>> +clear
>>> +uniform int viewport 10
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> +
>>> +clear
>>> +uniform int viewport 100
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>> +
>>> +clear
>>> +uniform int viewport -1
>>> +draw rect -1 -1 2 2
>>> +probe all rgb 0.0 1.0 0.0
>>>
>>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
More information about the Piglit
mailing list