Merge pull request #1262 from KhronosGroup/json-reflection-improvements
Reflection: Various improvements
This commit is contained in:
commit
79700d5412
@ -34,6 +34,9 @@
|
||||
"type" : "float",
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -41,6 +44,9 @@
|
||||
"type" : "float",
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -38,7 +42,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -38,7 +42,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -22,7 +22,8 @@
|
||||
{
|
||||
"name" : "m",
|
||||
"type" : "mat4",
|
||||
"offset" : 0
|
||||
"offset" : 0,
|
||||
"matrix_stride" : 16
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -35,7 +36,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 64
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -48,7 +53,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 64
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,7 +25,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 8
|
||||
},
|
||||
{
|
||||
"name" : "b",
|
||||
@ -58,7 +62,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "b",
|
||||
@ -101,7 +109,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "m1s",
|
||||
@ -109,7 +121,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 16
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 16,
|
||||
"array_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "m2s",
|
||||
@ -117,7 +133,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 32
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 32,
|
||||
"array_stride" : 32
|
||||
},
|
||||
{
|
||||
"name" : "m0",
|
||||
@ -150,7 +170,11 @@
|
||||
"array" : [
|
||||
8
|
||||
],
|
||||
"offset" : 152
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 152,
|
||||
"array_stride" : 8
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -168,7 +192,11 @@
|
||||
"array" : [
|
||||
2
|
||||
],
|
||||
"offset" : 224
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 224,
|
||||
"array_stride" : 224
|
||||
},
|
||||
{
|
||||
"name" : "content2",
|
||||
@ -178,12 +206,14 @@
|
||||
{
|
||||
"name" : "m0",
|
||||
"type" : "mat2",
|
||||
"offset" : 896
|
||||
"offset" : 896,
|
||||
"matrix_stride" : 8
|
||||
},
|
||||
{
|
||||
"name" : "m1",
|
||||
"type" : "mat2",
|
||||
"offset" : 912
|
||||
"offset" : 912,
|
||||
"matrix_stride" : 8
|
||||
},
|
||||
{
|
||||
"name" : "m2",
|
||||
@ -191,43 +221,62 @@
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"offset" : 928
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 928,
|
||||
"array_stride" : 32,
|
||||
"matrix_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "m3",
|
||||
"type" : "mat3x2",
|
||||
"offset" : 1056
|
||||
"offset" : 1056,
|
||||
"matrix_stride" : 8
|
||||
},
|
||||
{
|
||||
"name" : "m4",
|
||||
"type" : "mat2",
|
||||
"row_major" : true,
|
||||
"offset" : 1080
|
||||
"offset" : 1080,
|
||||
"matrix_stride" : 8,
|
||||
"row_major" : true
|
||||
},
|
||||
{
|
||||
"name" : "m5",
|
||||
"type" : "mat2",
|
||||
"row_major" : true,
|
||||
"array" : [
|
||||
9
|
||||
],
|
||||
"offset" : 1096
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 1096,
|
||||
"array_stride" : 16,
|
||||
"matrix_stride" : 8,
|
||||
"row_major" : true
|
||||
},
|
||||
{
|
||||
"name" : "m6",
|
||||
"type" : "mat2x3",
|
||||
"row_major" : true,
|
||||
"array" : [
|
||||
2,
|
||||
4
|
||||
],
|
||||
"offset" : 1240
|
||||
"array_size_is_literal" : [
|
||||
true,
|
||||
true
|
||||
],
|
||||
"offset" : 1240,
|
||||
"array_stride" : 48,
|
||||
"matrix_stride" : 8,
|
||||
"row_major" : true
|
||||
},
|
||||
{
|
||||
"name" : "m7",
|
||||
"type" : "mat3x2",
|
||||
"row_major" : true,
|
||||
"offset" : 1440
|
||||
"offset" : 1440,
|
||||
"matrix_stride" : 16,
|
||||
"row_major" : true
|
||||
},
|
||||
{
|
||||
"name" : "array",
|
||||
@ -235,7 +284,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 1472
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 1472,
|
||||
"array_stride" : 4
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -248,7 +301,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "b",
|
||||
@ -281,7 +338,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "b",
|
||||
@ -324,7 +385,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 32
|
||||
},
|
||||
{
|
||||
"name" : "m1s",
|
||||
@ -332,7 +397,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 32
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 32,
|
||||
"array_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "m2s",
|
||||
@ -340,7 +409,11 @@
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"offset" : 48
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 48,
|
||||
"array_stride" : 32
|
||||
},
|
||||
{
|
||||
"name" : "m0",
|
||||
@ -373,7 +446,11 @@
|
||||
"array" : [
|
||||
8
|
||||
],
|
||||
"offset" : 192
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 192,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -391,7 +468,11 @@
|
||||
"array" : [
|
||||
2
|
||||
],
|
||||
"offset" : 320
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 320,
|
||||
"array_stride" : 320
|
||||
},
|
||||
{
|
||||
"name" : "content2",
|
||||
@ -401,12 +482,14 @@
|
||||
{
|
||||
"name" : "m0",
|
||||
"type" : "mat2",
|
||||
"offset" : 1280
|
||||
"offset" : 1280,
|
||||
"matrix_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "m1",
|
||||
"type" : "mat2",
|
||||
"offset" : 1312
|
||||
"offset" : 1312,
|
||||
"matrix_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "m2",
|
||||
@ -414,43 +497,62 @@
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"offset" : 1344
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 1344,
|
||||
"array_stride" : 32,
|
||||
"matrix_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "m3",
|
||||
"type" : "mat3x2",
|
||||
"offset" : 1472
|
||||
"offset" : 1472,
|
||||
"matrix_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "m4",
|
||||
"type" : "mat2",
|
||||
"row_major" : true,
|
||||
"offset" : 1520
|
||||
"offset" : 1520,
|
||||
"matrix_stride" : 16,
|
||||
"row_major" : true
|
||||
},
|
||||
{
|
||||
"name" : "m5",
|
||||
"type" : "mat2",
|
||||
"row_major" : true,
|
||||
"array" : [
|
||||
9
|
||||
],
|
||||
"offset" : 1552
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 1552,
|
||||
"array_stride" : 32,
|
||||
"matrix_stride" : 16,
|
||||
"row_major" : true
|
||||
},
|
||||
{
|
||||
"name" : "m6",
|
||||
"type" : "mat2x3",
|
||||
"row_major" : true,
|
||||
"array" : [
|
||||
2,
|
||||
4
|
||||
],
|
||||
"offset" : 1840
|
||||
"array_size_is_literal" : [
|
||||
true,
|
||||
true
|
||||
],
|
||||
"offset" : 1840,
|
||||
"array_stride" : 96,
|
||||
"matrix_stride" : 16,
|
||||
"row_major" : true
|
||||
},
|
||||
{
|
||||
"name" : "m7",
|
||||
"type" : "mat3x2",
|
||||
"row_major" : true,
|
||||
"offset" : 2224
|
||||
"offset" : 2224,
|
||||
"matrix_stride" : 16,
|
||||
"row_major" : true
|
||||
},
|
||||
{
|
||||
"name" : "array",
|
||||
@ -458,7 +560,11 @@
|
||||
"array" : [
|
||||
0
|
||||
],
|
||||
"offset" : 2256
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 2256,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -40,16 +40,19 @@
|
||||
{
|
||||
"id" : 10,
|
||||
"type" : "uint",
|
||||
"variable_id" : 18,
|
||||
"default_value" : 1
|
||||
},
|
||||
{
|
||||
"id" : 40,
|
||||
"type" : "uint",
|
||||
"variable_id" : 19,
|
||||
"default_value" : 1
|
||||
},
|
||||
{
|
||||
"id" : 60,
|
||||
"type" : "uint",
|
||||
"variable_id" : 20,
|
||||
"default_value" : 1
|
||||
}
|
||||
]
|
||||
|
@ -31,6 +31,9 @@
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"set" : 0,
|
||||
"binding" : 1
|
||||
},
|
||||
@ -40,6 +43,9 @@
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"set" : 0,
|
||||
"binding" : 4
|
||||
},
|
||||
@ -49,6 +55,9 @@
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"set" : 0,
|
||||
"binding" : 3
|
||||
},
|
||||
@ -58,6 +67,9 @@
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"set" : 0,
|
||||
"binding" : 2
|
||||
}
|
||||
|
@ -14,6 +14,9 @@
|
||||
"type" : "float",
|
||||
"array" : [
|
||||
135
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -30,41 +33,49 @@
|
||||
{
|
||||
"id" : 1,
|
||||
"type" : "float",
|
||||
"variable_id" : 9,
|
||||
"default_value" : 1.5
|
||||
},
|
||||
{
|
||||
"id" : 2,
|
||||
"type" : "float",
|
||||
"variable_id" : 11,
|
||||
"default_value" : 2.5
|
||||
},
|
||||
{
|
||||
"id" : 3,
|
||||
"type" : "int",
|
||||
"variable_id" : 16,
|
||||
"default_value" : 3
|
||||
},
|
||||
{
|
||||
"id" : 4,
|
||||
"type" : "int",
|
||||
"variable_id" : 25,
|
||||
"default_value" : 4
|
||||
},
|
||||
{
|
||||
"id" : 5,
|
||||
"type" : "uint",
|
||||
"variable_id" : 34,
|
||||
"default_value" : 5
|
||||
},
|
||||
{
|
||||
"id" : 6,
|
||||
"type" : "uint",
|
||||
"variable_id" : 35,
|
||||
"default_value" : 6
|
||||
},
|
||||
{
|
||||
"id" : 7,
|
||||
"type" : "bool",
|
||||
"variable_id" : 56,
|
||||
"default_value" : false
|
||||
},
|
||||
{
|
||||
"id" : 8,
|
||||
"type" : "bool",
|
||||
"variable_id" : 57,
|
||||
"default_value" : true
|
||||
}
|
||||
]
|
||||
|
@ -0,0 +1,77 @@
|
||||
{
|
||||
"entryPoints" : [
|
||||
{
|
||||
"name" : "main",
|
||||
"mode" : "vert"
|
||||
}
|
||||
],
|
||||
"types" : {
|
||||
"_11" : {
|
||||
"name" : "gl_PerVertex",
|
||||
"members" : [
|
||||
{
|
||||
"name" : "gl_Position",
|
||||
"type" : "vec4"
|
||||
},
|
||||
{
|
||||
"name" : "gl_PointSize",
|
||||
"type" : "float"
|
||||
},
|
||||
{
|
||||
"name" : "gl_ClipDistance",
|
||||
"type" : "float",
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "gl_CullDistance",
|
||||
"type" : "float",
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_18" : {
|
||||
"name" : "u_",
|
||||
"members" : [
|
||||
{
|
||||
"name" : "u_0",
|
||||
"type" : "vec4",
|
||||
"array" : [
|
||||
16
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
false
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ubos" : [
|
||||
{
|
||||
"type" : "_18",
|
||||
"name" : "u_",
|
||||
"block_size" : 16,
|
||||
"set" : 1,
|
||||
"binding" : 0
|
||||
}
|
||||
],
|
||||
"specialization_constants" : [
|
||||
{
|
||||
"id" : 0,
|
||||
"type" : "int",
|
||||
"variable_id" : 16,
|
||||
"default_value" : 1
|
||||
}
|
||||
]
|
||||
}
|
@ -25,12 +25,18 @@
|
||||
{
|
||||
"name" : "var",
|
||||
"type" : "mat2x3",
|
||||
"row_major" : true,
|
||||
"array" : [
|
||||
4,
|
||||
3
|
||||
],
|
||||
"offset" : 0
|
||||
"array_size_is_literal" : [
|
||||
true,
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 192,
|
||||
"matrix_stride" : 16,
|
||||
"row_major" : true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -0,0 +1,96 @@
|
||||
{
|
||||
"entryPoints" : [
|
||||
{
|
||||
"name" : "main",
|
||||
"mode" : "vert"
|
||||
}
|
||||
],
|
||||
"types" : {
|
||||
"_11" : {
|
||||
"name" : "gl_PerVertex",
|
||||
"members" : [
|
||||
{
|
||||
"name" : "gl_Position",
|
||||
"type" : "vec4"
|
||||
},
|
||||
{
|
||||
"name" : "gl_PointSize",
|
||||
"type" : "float"
|
||||
},
|
||||
{
|
||||
"name" : "gl_ClipDistance",
|
||||
"type" : "float",
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "gl_CullDistance",
|
||||
"type" : "float",
|
||||
"array" : [
|
||||
1
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_21" : {
|
||||
"name" : "U",
|
||||
"members" : [
|
||||
{
|
||||
"name" : "v",
|
||||
"type" : "vec4",
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 0,
|
||||
"array_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "c",
|
||||
"type" : "mat4",
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 64,
|
||||
"array_stride" : 64,
|
||||
"matrix_stride" : 16
|
||||
},
|
||||
{
|
||||
"name" : "r",
|
||||
"type" : "mat4",
|
||||
"array" : [
|
||||
4
|
||||
],
|
||||
"array_size_is_literal" : [
|
||||
true
|
||||
],
|
||||
"offset" : 320,
|
||||
"array_stride" : 64,
|
||||
"matrix_stride" : 16,
|
||||
"row_major" : true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ubos" : [
|
||||
{
|
||||
"type" : "_21",
|
||||
"name" : "U",
|
||||
"block_size" : 576,
|
||||
"set" : 0,
|
||||
"binding" : 0
|
||||
}
|
||||
]
|
||||
}
|
13
shaders-reflection/vert/array-size-reflection.vert
Normal file
13
shaders-reflection/vert/array-size-reflection.vert
Normal file
@ -0,0 +1,13 @@
|
||||
#version 450
|
||||
layout(constant_id = 0) const int ARR_SIZE = 1;
|
||||
|
||||
layout(binding = 0, set = 1, std140) uniform u_
|
||||
{
|
||||
vec4 u_0[ARR_SIZE];
|
||||
};
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = u_0[0];
|
||||
}
|
||||
|
14
shaders-reflection/vert/stride-reflection.vert
Normal file
14
shaders-reflection/vert/stride-reflection.vert
Normal file
@ -0,0 +1,14 @@
|
||||
#version 450
|
||||
|
||||
layout(binding = 0, set = 0, std140) uniform U
|
||||
{
|
||||
vec4 v[4];
|
||||
mat4 c[4];
|
||||
layout(row_major) mat4 r[4];
|
||||
};
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = v[0];
|
||||
}
|
||||
|
@ -358,15 +358,16 @@ void CompilerReflection::emit_type_array(const SPIRType &type)
|
||||
for (const auto &value : type.array)
|
||||
json_stream->emit_json_array_value(value);
|
||||
json_stream->end_json_array();
|
||||
|
||||
json_stream->emit_json_key_array("array_size_is_literal");
|
||||
for (const auto &value : type.array_size_literal)
|
||||
json_stream->emit_json_array_value(value);
|
||||
json_stream->end_json_array();
|
||||
}
|
||||
}
|
||||
|
||||
void CompilerReflection::emit_type_member_qualifiers(const SPIRType &type, uint32_t index)
|
||||
{
|
||||
auto flags = combined_decoration_for_member(type, index);
|
||||
if (flags.get(DecorationRowMajor))
|
||||
json_stream->emit_json_key_value("row_major", true);
|
||||
|
||||
auto &membertype = get<SPIRType>(type.member_types[index]);
|
||||
emit_type_array(membertype);
|
||||
auto &memb = ir.meta[type.self].members;
|
||||
@ -377,6 +378,15 @@ void CompilerReflection::emit_type_member_qualifiers(const SPIRType &type, uint3
|
||||
json_stream->emit_json_key_value("location", dec.location);
|
||||
if (dec.decoration_flags.get(DecorationOffset))
|
||||
json_stream->emit_json_key_value("offset", dec.offset);
|
||||
|
||||
// Array stride is a property of the array type, not the struct.
|
||||
if (has_decoration(type.member_types[index], DecorationArrayStride))
|
||||
json_stream->emit_json_key_value("array_stride", get_decoration(type.member_types[index], DecorationArrayStride));
|
||||
|
||||
if (dec.decoration_flags.get(DecorationMatrixStride))
|
||||
json_stream->emit_json_key_value("matrix_stride", dec.matrix_stride);
|
||||
if (dec.decoration_flags.get(DecorationRowMajor))
|
||||
json_stream->emit_json_key_value("row_major", true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -592,6 +602,7 @@ void CompilerReflection::emit_specialization_constants()
|
||||
json_stream->begin_json_object();
|
||||
json_stream->emit_json_key_value("id", spec_const.constant_id);
|
||||
json_stream->emit_json_key_value("type", type_to_glsl(type));
|
||||
json_stream->emit_json_key_value("variable_id", spec_const.id);
|
||||
switch (type.basetype)
|
||||
{
|
||||
case SPIRType::UInt:
|
||||
|
Loading…
Reference in New Issue
Block a user