[Piglit] [PATCH] arb_shader_storage_buffer_object: More readonly/writeonly qualifier tests

Eduardo Lima Mitev elima at igalia.com
Thu May 5 11:47:42 UTC 2016


There are missing tests to check for readonly and writeonly memory qualifiers
on a named interface block. And Mesa is actually failing to apply these
qualifiers right now.
---
 .../compiler/block-memory-qualifier-readonly.vert    | 20 ++++++++++++++++++++
 .../compiler/block-memory-qualifier-writeonly.vert   | 19 +++++++++++++++++++
 2 files changed, 39 insertions(+)
 create mode 100644 tests/spec/arb_shader_storage_buffer_object/compiler/block-memory-qualifier-readonly.vert
 create mode 100644 tests/spec/arb_shader_storage_buffer_object/compiler/block-memory-qualifier-writeonly.vert

diff --git a/tests/spec/arb_shader_storage_buffer_object/compiler/block-memory-qualifier-readonly.vert b/tests/spec/arb_shader_storage_buffer_object/compiler/block-memory-qualifier-readonly.vert
new file mode 100644
index 0000000..2b9528f
--- /dev/null
+++ b/tests/spec/arb_shader_storage_buffer_object/compiler/block-memory-qualifier-readonly.vert
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 3.30
+// require_extensions: GL_ARB_shader_storage_buffer_object
+// [end config]
+
+#version 330
+#extension GL_ARB_shader_storage_buffer_object: require
+readonly buffer Buffer {
+	float foo;
+} buf;
+
+buffer Buffer1 {
+	readonly float bar;
+} buf1;
+
+void main() {
+	buf.foo = 1.0;
+	buf1.bar = 1.0;
+}
diff --git a/tests/spec/arb_shader_storage_buffer_object/compiler/block-memory-qualifier-writeonly.vert b/tests/spec/arb_shader_storage_buffer_object/compiler/block-memory-qualifier-writeonly.vert
new file mode 100644
index 0000000..0a17d97
--- /dev/null
+++ b/tests/spec/arb_shader_storage_buffer_object/compiler/block-memory-qualifier-writeonly.vert
@@ -0,0 +1,19 @@
+// [config]
+// expect_result: fail
+// glsl_version: 3.30
+// require_extensions: GL_ARB_shader_storage_buffer_object
+// [end config]
+
+#version 330
+#extension GL_ARB_shader_storage_buffer_object: require
+writeonly buffer Buffer {
+	float foo;
+} buf;
+
+buffer Buffer1 {
+	writeonly float bar;
+} buf1;
+
+void main(void) {
+	float result = buf.foo * buf1.bar;
+}
-- 
2.7.0



More information about the Piglit mailing list