forked from KhronosGroup/glslang
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
HLSL: Accept SV_Cull/ClipDistanceN, by refactoring the way semantics …
…are mapped.
- Loading branch information
1 parent
229a6f7
commit 6e1d50a
Showing
13 changed files
with
757 additions
and
117 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,246 @@ | ||
hlsl.semantic.geom | ||
Shader version: 450 | ||
invocations = -1 | ||
max_vertices = 4 | ||
input primitive = triangles | ||
output primitive = line_strip | ||
0:? Sequence | ||
0:12 Function Definition: @main(u1[3];struct-S-f1-f1-u1-u1-i11; (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Function Parameters: | ||
0:12 'VertexID' (in 3-element array of uint) | ||
0:12 'OutputStream' (out structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:? Sequence | ||
0:14 Branch: Return with expression | ||
0:14 's' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Function Definition: main( (temp void) | ||
0:12 Function Parameters: | ||
0:? Sequence | ||
0:12 move second child to first child (temp 3-element array of uint) | ||
0:? 'VertexID' (temp 3-element array of uint) | ||
0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) | ||
0:12 Sequence | ||
0:12 move second child to first child (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Function Call: @main(u1[3];struct-S-f1-f1-u1-u1-i11; (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:? 'VertexID' (temp 3-element array of uint) | ||
0:? 'OutputStream' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 move second child to first child (temp float) | ||
0:? '@entryPointOutput_clip0' (out float ClipDistance) | ||
0:12 clip0: direct index for structure (temp float) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 0 (const int) | ||
0:12 move second child to first child (temp float) | ||
0:? '@entryPointOutput_cull0' (out float CullDistance) | ||
0:12 cull0: direct index for structure (temp float) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 1 (const int) | ||
0:12 move second child to first child (temp uint) | ||
0:? '@entryPointOutput_vpai' (out uint ViewportIndex) | ||
0:12 vpai: direct index for structure (temp uint) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 2 (const int) | ||
0:12 move second child to first child (temp uint) | ||
0:? '@entryPointOutput_rtai' (out uint Layer) | ||
0:12 rtai: direct index for structure (temp uint) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 3 (const int) | ||
0:12 move second child to first child (temp int) | ||
0:12 ii: direct index for structure (temp int) | ||
0:12 '@entryPointOutput' (layout(location=0 ) out structure{temp int ii}) | ||
0:12 Constant: | ||
0:12 0 (const int) | ||
0:12 ii: direct index for structure (temp int) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 4 (const int) | ||
0:? Linker Objects | ||
0:? '@entryPointOutput' (layout(location=0 ) out structure{temp int ii}) | ||
0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) | ||
0:? '@entryPointOutput_vpai' (out uint ViewportIndex) | ||
|
||
|
||
Linked geometry stage: | ||
|
||
|
||
Shader version: 450 | ||
invocations = 1 | ||
max_vertices = 4 | ||
input primitive = triangles | ||
output primitive = line_strip | ||
0:? Sequence | ||
0:12 Function Definition: @main(u1[3];struct-S-f1-f1-u1-u1-i11; (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Function Parameters: | ||
0:12 'VertexID' (in 3-element array of uint) | ||
0:12 'OutputStream' (out structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:? Sequence | ||
0:14 Branch: Return with expression | ||
0:14 's' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Function Definition: main( (temp void) | ||
0:12 Function Parameters: | ||
0:? Sequence | ||
0:12 move second child to first child (temp 3-element array of uint) | ||
0:? 'VertexID' (temp 3-element array of uint) | ||
0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) | ||
0:12 Sequence | ||
0:12 move second child to first child (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Function Call: @main(u1[3];struct-S-f1-f1-u1-u1-i11; (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:? 'VertexID' (temp 3-element array of uint) | ||
0:? 'OutputStream' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 move second child to first child (temp float) | ||
0:? '@entryPointOutput_clip0' (out float ClipDistance) | ||
0:12 clip0: direct index for structure (temp float) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 0 (const int) | ||
0:12 move second child to first child (temp float) | ||
0:? '@entryPointOutput_cull0' (out float CullDistance) | ||
0:12 cull0: direct index for structure (temp float) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 1 (const int) | ||
0:12 move second child to first child (temp uint) | ||
0:? '@entryPointOutput_vpai' (out uint ViewportIndex) | ||
0:12 vpai: direct index for structure (temp uint) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 2 (const int) | ||
0:12 move second child to first child (temp uint) | ||
0:? '@entryPointOutput_rtai' (out uint Layer) | ||
0:12 rtai: direct index for structure (temp uint) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 3 (const int) | ||
0:12 move second child to first child (temp int) | ||
0:12 ii: direct index for structure (temp int) | ||
0:12 '@entryPointOutput' (layout(location=0 ) out structure{temp int ii}) | ||
0:12 Constant: | ||
0:12 0 (const int) | ||
0:12 ii: direct index for structure (temp int) | ||
0:12 'flattenTemp' (temp structure{temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) | ||
0:12 Constant: | ||
0:12 4 (const int) | ||
0:? Linker Objects | ||
0:? '@entryPointOutput' (layout(location=0 ) out structure{temp int ii}) | ||
0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) | ||
0:? '@entryPointOutput_vpai' (out uint ViewportIndex) | ||
|
||
// Module Version 10000 | ||
// Generated by (magic number): 80001 | ||
// Id's are bound by 62 | ||
|
||
Capability Geometry | ||
Capability ClipDistance | ||
Capability CullDistance | ||
Capability MultiViewport | ||
1: ExtInstImport "GLSL.std.450" | ||
MemoryModel Logical GLSL450 | ||
EntryPoint Geometry 4 "main" 25 34 39 44 49 55 | ||
ExecutionMode 4 Triangles | ||
ExecutionMode 4 Invocations 1 | ||
ExecutionMode 4 OutputLineStrip | ||
ExecutionMode 4 OutputVertices 4 | ||
Name 4 "main" | ||
Name 12 "S" | ||
MemberName 12(S) 0 "clip0" | ||
MemberName 12(S) 1 "cull0" | ||
MemberName 12(S) 2 "vpai" | ||
MemberName 12(S) 3 "rtai" | ||
MemberName 12(S) 4 "ii" | ||
Name 17 "@main(u1[3];struct-S-f1-f1-u1-u1-i11;" | ||
Name 15 "VertexID" | ||
Name 16 "OutputStream" | ||
Name 19 "s" | ||
Name 23 "VertexID" | ||
Name 25 "VertexID" | ||
Name 27 "flattenTemp" | ||
Name 28 "OutputStream" | ||
Name 29 "param" | ||
Name 31 "param" | ||
Name 34 "@entryPointOutput_clip0" | ||
Name 39 "@entryPointOutput_cull0" | ||
Name 44 "@entryPointOutput_vpai" | ||
Name 49 "@entryPointOutput_rtai" | ||
Name 53 "S" | ||
MemberName 53(S) 0 "ii" | ||
Name 55 "@entryPointOutput" | ||
Decorate 25(VertexID) Location 0 | ||
Decorate 34(@entryPointOutput_clip0) BuiltIn ClipDistance | ||
Decorate 39(@entryPointOutput_cull0) BuiltIn CullDistance | ||
Decorate 44(@entryPointOutput_vpai) BuiltIn ViewportIndex | ||
Decorate 49(@entryPointOutput_rtai) BuiltIn Layer | ||
Decorate 55(@entryPointOutput) Location 0 | ||
2: TypeVoid | ||
3: TypeFunction 2 | ||
6: TypeInt 32 0 | ||
7: 6(int) Constant 3 | ||
8: TypeArray 6(int) 7 | ||
9: TypePointer Function 8 | ||
10: TypeFloat 32 | ||
11: TypeInt 32 1 | ||
12(S): TypeStruct 10(float) 10(float) 6(int) 6(int) 11(int) | ||
13: TypePointer Function 12(S) | ||
14: TypeFunction 12(S) 9(ptr) 13(ptr) | ||
24: TypePointer Input 8 | ||
25(VertexID): 24(ptr) Variable Input | ||
33: TypePointer Output 10(float) | ||
34(@entryPointOutput_clip0): 33(ptr) Variable Output | ||
35: 11(int) Constant 0 | ||
36: TypePointer Function 10(float) | ||
39(@entryPointOutput_cull0): 33(ptr) Variable Output | ||
40: 11(int) Constant 1 | ||
43: TypePointer Output 6(int) | ||
44(@entryPointOutput_vpai): 43(ptr) Variable Output | ||
45: 11(int) Constant 2 | ||
46: TypePointer Function 6(int) | ||
49(@entryPointOutput_rtai): 43(ptr) Variable Output | ||
50: 11(int) Constant 3 | ||
53(S): TypeStruct 11(int) | ||
54: TypePointer Output 53(S) | ||
55(@entryPointOutput): 54(ptr) Variable Output | ||
56: 11(int) Constant 4 | ||
57: TypePointer Function 11(int) | ||
60: TypePointer Output 11(int) | ||
4(main): 2 Function None 3 | ||
5: Label | ||
23(VertexID): 9(ptr) Variable Function | ||
27(flattenTemp): 13(ptr) Variable Function | ||
28(OutputStream): 13(ptr) Variable Function | ||
29(param): 9(ptr) Variable Function | ||
31(param): 13(ptr) Variable Function | ||
26: 8 Load 25(VertexID) | ||
Store 23(VertexID) 26 | ||
30: 8 Load 23(VertexID) | ||
Store 29(param) 30 | ||
32: 12(S) FunctionCall 17(@main(u1[3];struct-S-f1-f1-u1-u1-i11;) 29(param) 31(param) | ||
Store 27(flattenTemp) 32 | ||
37: 36(ptr) AccessChain 27(flattenTemp) 35 | ||
38: 10(float) Load 37 | ||
Store 34(@entryPointOutput_clip0) 38 | ||
41: 36(ptr) AccessChain 27(flattenTemp) 40 | ||
42: 10(float) Load 41 | ||
Store 39(@entryPointOutput_cull0) 42 | ||
47: 46(ptr) AccessChain 27(flattenTemp) 45 | ||
48: 6(int) Load 47 | ||
Store 44(@entryPointOutput_vpai) 48 | ||
51: 46(ptr) AccessChain 27(flattenTemp) 50 | ||
52: 6(int) Load 51 | ||
Store 49(@entryPointOutput_rtai) 52 | ||
58: 57(ptr) AccessChain 27(flattenTemp) 56 | ||
59: 11(int) Load 58 | ||
61: 60(ptr) AccessChain 55(@entryPointOutput) 35 | ||
Store 61 59 | ||
Return | ||
FunctionEnd | ||
17(@main(u1[3];struct-S-f1-f1-u1-u1-i11;): 12(S) Function None 14 | ||
15(VertexID): 9(ptr) FunctionParameter | ||
16(OutputStream): 13(ptr) FunctionParameter | ||
18: Label | ||
19(s): 13(ptr) Variable Function | ||
20: 12(S) Load 19(s) | ||
ReturnValue 20 | ||
FunctionEnd |
Oops, something went wrong.