150 lines
9.7 KiB
C
150 lines
9.7 KiB
C
#include <stdint.h>
|
|
|
|
#if 0
|
|
../cube.vert
|
|
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
|
|
Linked vertex stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 55
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4 "main" 9 21 28
|
|
Source GLSL 400
|
|
SourceExtension "GL_ARB_separate_shader_objects"
|
|
SourceExtension "GL_ARB_shading_language_420pack"
|
|
Name 4 "main"
|
|
Name 9 "texcoord"
|
|
Name 15 "buf"
|
|
MemberName 15(buf) 0 "MVP"
|
|
MemberName 15(buf) 1 "position"
|
|
MemberName 15(buf) 2 "attr"
|
|
Name 17 "ubuf"
|
|
Name 21 "gl_VertexIndex"
|
|
Name 26 "gl_PerVertex"
|
|
MemberName 26(gl_PerVertex) 0 "gl_Position"
|
|
Name 28 ""
|
|
Decorate 9(texcoord) Location 0
|
|
Decorate 13 ArrayStride 16
|
|
Decorate 14 ArrayStride 16
|
|
MemberDecorate 15(buf) 0 ColMajor
|
|
MemberDecorate 15(buf) 0 Offset 0
|
|
MemberDecorate 15(buf) 0 MatrixStride 16
|
|
MemberDecorate 15(buf) 1 Offset 64
|
|
MemberDecorate 15(buf) 2 Offset 640
|
|
Decorate 15(buf) Block
|
|
Decorate 17(ubuf) DescriptorSet 0
|
|
Decorate 17(ubuf) Binding 0
|
|
Decorate 21(gl_VertexIndex) BuiltIn VertexIndex
|
|
MemberDecorate 26(gl_PerVertex) 0 BuiltIn Position
|
|
Decorate 26(gl_PerVertex) Block
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypePointer Output 7(fvec4)
|
|
9(texcoord): 8(ptr) Variable Output
|
|
10: TypeMatrix 7(fvec4) 4
|
|
11: TypeInt 32 0
|
|
12: 11(int) Constant 36
|
|
13: TypeArray 7(fvec4) 12
|
|
14: TypeArray 7(fvec4) 12
|
|
15(buf): TypeStruct 10 13 14
|
|
16: TypePointer Uniform 15(buf)
|
|
17(ubuf): 16(ptr) Variable Uniform
|
|
18: TypeInt 32 1
|
|
19: 18(int) Constant 2
|
|
20: TypePointer Input 18(int)
|
|
21(gl_VertexIndex): 20(ptr) Variable Input
|
|
23: TypePointer Uniform 7(fvec4)
|
|
26(gl_PerVertex): TypeStruct 7(fvec4)
|
|
27: TypePointer Output 26(gl_PerVertex)
|
|
28: 27(ptr) Variable Output
|
|
29: 18(int) Constant 0
|
|
30: TypePointer Uniform 10
|
|
33: 18(int) Constant 1
|
|
39: 11(int) Constant 1
|
|
40: TypePointer Output 6(float)
|
|
45: 11(int) Constant 2
|
|
48: 11(int) Constant 3
|
|
52: 6(float) Constant 1073741824
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
22: 18(int) Load 21(gl_VertexIndex)
|
|
24: 23(ptr) AccessChain 17(ubuf) 19 22
|
|
25: 7(fvec4) Load 24
|
|
Store 9(texcoord) 25
|
|
31: 30(ptr) AccessChain 17(ubuf) 29
|
|
32: 10 Load 31
|
|
34: 18(int) Load 21(gl_VertexIndex)
|
|
35: 23(ptr) AccessChain 17(ubuf) 33 34
|
|
36: 7(fvec4) Load 35
|
|
37: 7(fvec4) MatrixTimesVector 32 36
|
|
38: 8(ptr) AccessChain 28 29
|
|
Store 38 37
|
|
41: 40(ptr) AccessChain 28 29 39
|
|
42: 6(float) Load 41
|
|
43: 6(float) FNegate 42
|
|
44: 40(ptr) AccessChain 28 29 39
|
|
Store 44 43
|
|
46: 40(ptr) AccessChain 28 29 45
|
|
47: 6(float) Load 46
|
|
49: 40(ptr) AccessChain 28 29 48
|
|
50: 6(float) Load 49
|
|
51: 6(float) FAdd 47 50
|
|
53: 6(float) FDiv 51 52
|
|
54: 40(ptr) AccessChain 28 29 45
|
|
Store 54 53
|
|
Return
|
|
FunctionEnd
|
|
#endif
|
|
|
|
static const uint32_t cube_vert[396] = {
|
|
0x07230203, 0x00010000, 0x00080001, 0x00000037, 0x00000000, 0x00020011, 0x00000001, 0x0006000b, 0x00000001, 0x4c534c47,
|
|
0x6474732e, 0x3035342e, 0x00000000, 0x0003000e, 0x00000000, 0x00000001, 0x0008000f, 0x00000000, 0x00000004, 0x6e69616d,
|
|
0x00000000, 0x00000009, 0x00000015, 0x0000001c, 0x00030003, 0x00000002, 0x00000190, 0x00090004, 0x415f4c47, 0x735f4252,
|
|
0x72617065, 0x5f657461, 0x64616873, 0x6f5f7265, 0x63656a62, 0x00007374, 0x00090004, 0x415f4c47, 0x735f4252, 0x69646168,
|
|
0x6c5f676e, 0x75676e61, 0x5f656761, 0x70303234, 0x006b6361, 0x00040005, 0x00000004, 0x6e69616d, 0x00000000, 0x00050005,
|
|
0x00000009, 0x63786574, 0x64726f6f, 0x00000000, 0x00030005, 0x0000000f, 0x00667562, 0x00040006, 0x0000000f, 0x00000000,
|
|
0x0050564d, 0x00060006, 0x0000000f, 0x00000001, 0x69736f70, 0x6e6f6974, 0x00000000, 0x00050006, 0x0000000f, 0x00000002,
|
|
0x72747461, 0x00000000, 0x00040005, 0x00000011, 0x66756275, 0x00000000, 0x00060005, 0x00000015, 0x565f6c67, 0x65747265,
|
|
0x646e4978, 0x00007865, 0x00060005, 0x0000001a, 0x505f6c67, 0x65567265, 0x78657472, 0x00000000, 0x00060006, 0x0000001a,
|
|
0x00000000, 0x505f6c67, 0x7469736f, 0x006e6f69, 0x00030005, 0x0000001c, 0x00000000, 0x00040047, 0x00000009, 0x0000001e,
|
|
0x00000000, 0x00040047, 0x0000000d, 0x00000006, 0x00000010, 0x00040047, 0x0000000e, 0x00000006, 0x00000010, 0x00040048,
|
|
0x0000000f, 0x00000000, 0x00000005, 0x00050048, 0x0000000f, 0x00000000, 0x00000023, 0x00000000, 0x00050048, 0x0000000f,
|
|
0x00000000, 0x00000007, 0x00000010, 0x00050048, 0x0000000f, 0x00000001, 0x00000023, 0x00000040, 0x00050048, 0x0000000f,
|
|
0x00000002, 0x00000023, 0x00000280, 0x00030047, 0x0000000f, 0x00000002, 0x00040047, 0x00000011, 0x00000022, 0x00000000,
|
|
0x00040047, 0x00000011, 0x00000021, 0x00000000, 0x00040047, 0x00000015, 0x0000000b, 0x0000002a, 0x00050048, 0x0000001a,
|
|
0x00000000, 0x0000000b, 0x00000000, 0x00030047, 0x0000001a, 0x00000002, 0x00020013, 0x00000002, 0x00030021, 0x00000003,
|
|
0x00000002, 0x00030016, 0x00000006, 0x00000020, 0x00040017, 0x00000007, 0x00000006, 0x00000004, 0x00040020, 0x00000008,
|
|
0x00000003, 0x00000007, 0x0004003b, 0x00000008, 0x00000009, 0x00000003, 0x00040018, 0x0000000a, 0x00000007, 0x00000004,
|
|
0x00040015, 0x0000000b, 0x00000020, 0x00000000, 0x0004002b, 0x0000000b, 0x0000000c, 0x00000024, 0x0004001c, 0x0000000d,
|
|
0x00000007, 0x0000000c, 0x0004001c, 0x0000000e, 0x00000007, 0x0000000c, 0x0005001e, 0x0000000f, 0x0000000a, 0x0000000d,
|
|
0x0000000e, 0x00040020, 0x00000010, 0x00000002, 0x0000000f, 0x0004003b, 0x00000010, 0x00000011, 0x00000002, 0x00040015,
|
|
0x00000012, 0x00000020, 0x00000001, 0x0004002b, 0x00000012, 0x00000013, 0x00000002, 0x00040020, 0x00000014, 0x00000001,
|
|
0x00000012, 0x0004003b, 0x00000014, 0x00000015, 0x00000001, 0x00040020, 0x00000017, 0x00000002, 0x00000007, 0x0003001e,
|
|
0x0000001a, 0x00000007, 0x00040020, 0x0000001b, 0x00000003, 0x0000001a, 0x0004003b, 0x0000001b, 0x0000001c, 0x00000003,
|
|
0x0004002b, 0x00000012, 0x0000001d, 0x00000000, 0x00040020, 0x0000001e, 0x00000002, 0x0000000a, 0x0004002b, 0x00000012,
|
|
0x00000021, 0x00000001, 0x0004002b, 0x0000000b, 0x00000027, 0x00000001, 0x00040020, 0x00000028, 0x00000003, 0x00000006,
|
|
0x0004002b, 0x0000000b, 0x0000002d, 0x00000002, 0x0004002b, 0x0000000b, 0x00000030, 0x00000003, 0x0004002b, 0x00000006,
|
|
0x00000034, 0x40000000, 0x00050036, 0x00000002, 0x00000004, 0x00000000, 0x00000003, 0x000200f8, 0x00000005, 0x0004003d,
|
|
0x00000012, 0x00000016, 0x00000015, 0x00060041, 0x00000017, 0x00000018, 0x00000011, 0x00000013, 0x00000016, 0x0004003d,
|
|
0x00000007, 0x00000019, 0x00000018, 0x0003003e, 0x00000009, 0x00000019, 0x00050041, 0x0000001e, 0x0000001f, 0x00000011,
|
|
0x0000001d, 0x0004003d, 0x0000000a, 0x00000020, 0x0000001f, 0x0004003d, 0x00000012, 0x00000022, 0x00000015, 0x00060041,
|
|
0x00000017, 0x00000023, 0x00000011, 0x00000021, 0x00000022, 0x0004003d, 0x00000007, 0x00000024, 0x00000023, 0x00050091,
|
|
0x00000007, 0x00000025, 0x00000020, 0x00000024, 0x00050041, 0x00000008, 0x00000026, 0x0000001c, 0x0000001d, 0x0003003e,
|
|
0x00000026, 0x00000025, 0x00060041, 0x00000028, 0x00000029, 0x0000001c, 0x0000001d, 0x00000027, 0x0004003d, 0x00000006,
|
|
0x0000002a, 0x00000029, 0x0004007f, 0x00000006, 0x0000002b, 0x0000002a, 0x00060041, 0x00000028, 0x0000002c, 0x0000001c,
|
|
0x0000001d, 0x00000027, 0x0003003e, 0x0000002c, 0x0000002b, 0x00060041, 0x00000028, 0x0000002e, 0x0000001c, 0x0000001d,
|
|
0x0000002d, 0x0004003d, 0x00000006, 0x0000002f, 0x0000002e, 0x00060041, 0x00000028, 0x00000031, 0x0000001c, 0x0000001d,
|
|
0x00000030, 0x0004003d, 0x00000006, 0x00000032, 0x00000031, 0x00050081, 0x00000006, 0x00000033, 0x0000002f, 0x00000032,
|
|
0x00050088, 0x00000006, 0x00000035, 0x00000033, 0x00000034, 0x00060041, 0x00000028, 0x00000036, 0x0000001c, 0x0000001d,
|
|
0x0000002d, 0x0003003e, 0x00000036, 0x00000035, 0x000100fd, 0x00010038,
|
|
};
|