[Piglit] [PATCH 2/4] glsl-1.10: Test if samplers in nested structs can be passed as function parameters.

Fabian Bieler fabianbieler at fastmail.fm
Wed May 29 01:58:19 PDT 2013


Signed-off-by: Fabian Bieler <fabianbieler at fastmail.fm>
---
 .../in-parameter-nested-struct.shader_test         | 44 ++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 tests/spec/glsl-1.10/execution/samplers/in-parameter-nested-struct.shader_test

diff --git a/tests/spec/glsl-1.10/execution/samplers/in-parameter-nested-struct.shader_test b/tests/spec/glsl-1.10/execution/samplers/in-parameter-nested-struct.shader_test
new file mode 100644
index 0000000..094785e
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/samplers/in-parameter-nested-struct.shader_test
@@ -0,0 +1,44 @@
+[require]
+GLSL >= 1.10
+
+[vertex shader]
+varying vec4 texcoords;
+
+void main()
+{
+	gl_Position = gl_Vertex;
+	texcoords = (gl_Vertex + 1.0) / 2.0;
+}
+
+[fragment shader]
+varying vec4 texcoords;
+struct S1 {
+	float f;
+	sampler2D tex;
+};
+struct S2 {
+	float f;
+	S1 s;
+};
+uniform S2 s;
+
+vec4 foo(in S2 foo_s, vec4 foo_texcoords)
+{
+	return texture2D(foo_s.s.tex, foo_texcoords.xy) * foo_s.s.f * foo_s.f;
+}
+
+void main()
+{
+	gl_FragColor = foo(s, texcoords);
+}
+
+[test]
+uniform int s.s.tex 1
+uniform float s.s.f 1.0
+uniform float s.f 1.0
+texture rgbw 1 (8, 8)
+draw rect -1 -1 2 2
+relative probe rgb (0.25, 0.25) (1.0, 0.0, 0.0)
+relative probe rgb (0.75, 0.25) (0.0, 1.0, 0.0)
+relative probe rgb (0.25, 0.75) (0.0, 0.0, 1.0)
+relative probe rgb (0.75, 0.75) (1.0, 1.0, 1.0)
-- 
1.8.1.2



More information about the Piglit mailing list