summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/spv.layoutNested.vert
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/spv.layoutNested.vert')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.layoutNested.vert76
1 files changed, 76 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.layoutNested.vert b/3rdparty/bgfx/3rdparty/glslang/Test/spv.layoutNested.vert
new file mode 100644
index 00000000000..f0dc389803a
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.layoutNested.vert
@@ -0,0 +1,76 @@
+#version 450
+
+// should get 3 SPV types for S: no layout, 140, and 430, plus extras for interpolation or invariant differences
+struct S
+{
+ highp uvec3 a;
+ mediump mat2 b[4];
+ lowp uint c;
+};
+
+layout(set = 0, binding = 0, std140) uniform Block140
+{
+ mediump int u;
+ S s[2][3];
+ mediump vec2 v;
+} inst140;
+
+layout(set = 0, binding = 1, std430) buffer Block430
+{
+ mediump int u;
+ S s[2][3];
+ mediump vec2 v;
+} inst430;
+
+S s;
+
+// should get 5 SPV types for T: no layout, 140/row, 140/col, 430/row, and 430/col
+struct T {
+ mat2 m;
+ int a;
+};
+
+T t;
+
+struct Nestor {
+ T nestorT;
+};
+
+layout(set = 1, binding = 0, std140) uniform Bt1
+{
+ layout(row_major) Nestor nt;
+} Btn1;
+
+layout(set = 1, binding = 0, std140) uniform Bt2
+{
+ layout(column_major) Nestor nt;
+} Btn2;
+
+layout(row_major, set = 1, binding = 0, std140) uniform Bt3
+{
+ layout(column_major) Nestor ntcol;
+ Nestor ntrow; // should be row major decoration version of Nestor
+} Btn3;
+
+layout(set = 1, binding = 0, std430) buffer bBt1
+{
+ layout(row_major) Nestor nt;
+} bBtn1;
+
+layout(set = 1, binding = 0, std430) buffer bBt2
+{
+ layout(column_major) Nestor nt;
+} bBtn2;
+
+layout(set = 1, binding = 0, std430) buffer bBt3
+{
+ layout(row_major) Nestor ntcol;
+ Nestor ntrow; // should be col major decoration version of Nestor
+} bBtn3;
+
+void main()
+{
+}
+
+flat out S sout;
+invariant out S soutinv;