<div dir="ltr">On 6 August 2013 10:29, Nicholas Mack <span dir="ltr"><<a href="mailto:nichmack@gmail.com" target="_blank">nichmack@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">Three tests: Vertex input, vertex output, fragment output<br></div></div></blockquote><div><br></div><div>The commit subject is a little long.  I'd recommend something like "GLSL 1.50: test disallowed layouts in VS and FS".<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
---<br>
 tests/spec/glsl-1.50/compiler/layout-fs-no-output.frag | 17 +++++++++++++++++<br>
 tests/spec/glsl-1.50/compiler/layout-vs-no-input.vert  | 17 +++++++++++++++++<br>
 tests/spec/glsl-1.50/compiler/layout-vs-no-output.vert | 17 +++++++++++++++++<br>
 3 files changed, 51 insertions(+)<br>
 create mode 100644 tests/spec/glsl-1.50/compiler/layout-fs-no-output.frag<br>
 create mode 100644 tests/spec/glsl-1.50/compiler/layout-vs-no-input.vert<br>
 create mode 100644 tests/spec/glsl-1.50/compiler/layout-vs-no-output.vert<br>
<br>
diff --git a/tests/spec/glsl-1.50/compiler/layout-fs-no-output.frag b/tests/spec/glsl-1.50/compiler/layout-fs-no-output.frag<br>
new file mode 100644<br>
index 0000000..39e0862<br>
--- /dev/null<br>
+++ b/tests/spec/glsl-1.50/compiler/layout-fs-no-output.frag<br>
@@ -0,0 +1,17 @@<br>
+// [config]<br>
+// expect_result: fail<br>
+// glsl_version: 1.50<br>
+// check_link: true<br>
+// [end config]<br>
+//<br>
+// Section 4.3.8.2(Output Layout Qualifiers) of the GLSL 1.50 spec says:<br>
+// "Vertex and fragment shaders cannot have output layout qualifiers."<br>
+<br>
+#version 150<br>
+<br>
+layout(origin_upper_left) out vec4 b;<br></div></div></blockquote><div><br></div><div>This declaration wouldn't be valid in any type of shader.  To make sure that the implementation is performing the proper check, I'd recommend using an output layout specifier that would be allowed in a geometry shader, such as:<br>
<br></div><div>layout(points) out;<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = vec4(0., 1., 0., 1.);<br>
+}<br>
diff --git a/tests/spec/glsl-1.50/compiler/layout-vs-no-input.vert b/tests/spec/glsl-1.50/compiler/layout-vs-no-input.vert<br>
new file mode 100644<br>
index 0000000..bb7958d<br>
--- /dev/null<br>
+++ b/tests/spec/glsl-1.50/compiler/layout-vs-no-input.vert<br>
@@ -0,0 +1,17 @@<br>
+// [config]<br>
+// expect_result: fail<br>
+// glsl_version: 1.50<br>
+// check_link: true<br>
+// [end config]<br>
+//<br>
+// Section 4.3.8.1(Input Layout Qualifiers) of the GLSL 1.50 spec says:<br>
+// "Vertex shaders do not have any input layout qualifiers."<br>
+<br>
+#version 150<br>
+<br>
+layout(pixel_center_integer) in vec4 b;<br></div></div></blockquote><div><br></div><div>Similarly, this should be something like:<br><br></div><div>layout(points) in;<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">
+<br>
+void main()<br>
+{<br>
+       gl_Position = b;<br>
+}<br>
diff --git a/tests/spec/glsl-1.50/compiler/layout-vs-no-output.vert b/tests/spec/glsl-1.50/compiler/layout-vs-no-output.vert<br>
new file mode 100644<br>
index 0000000..a98a3b3<br>
--- /dev/null<br>
+++ b/tests/spec/glsl-1.50/compiler/layout-vs-no-output.vert<br>
@@ -0,0 +1,17 @@<br>
+// [config]<br>
+// expect_result: fail<br>
+// glsl_version: 1.50<br>
+// check_link: true<br>
+// [end config]<br>
+//<br>
+// Section 4.3.8.2(Output Layout Qualifiers) of the GLSL 1.50 spec says:<br>
+// "Vertex and fragment shaders cannot have output layout qualifiers."<br>
+<br>
+#version 150<br>
+<br>
+layout(origin_upper_left) out vec4 b;<br></div></div></blockquote><div><br></div><div>And this should be something like<br><br>layout(points) out;<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">
+<br>
+void main()<br>
+{<br>
+       b = vec4(2.);<br>
+}<br>
--<br>
1.8.3.1<br>
<br></div></div></blockquote><br></div><div class="gmail_quote">With those changes, this patch is:<br><br>Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br></div></div>
</div>