Merge pull request #997 from LoopDawg/clipcull-semantic
HLSL: handle multiple clip/cull semantic IDs
This commit is contained in:
commit
f1f5058a3c
@ -130,6 +130,7 @@ Shader version: 500
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? 'Position' (layout( location=0) in 4-component vector of float)
|
||||
0:? '@entryPointOutput_ClipRect' ( out 4-element array of float ClipDistance)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
@ -266,6 +267,7 @@ Shader version: 500
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? 'Position' (layout( location=0) in 4-component vector of float)
|
||||
0:? '@entryPointOutput_ClipRect' ( out 4-element array of float ClipDistance)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
|
||||
@ -154,6 +154,7 @@ Shader version: 500
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? 'Position' (layout( location=0) in 4-component vector of float)
|
||||
0:? '@entryPointOutput_ClipRect' ( out 4-element array of float ClipDistance)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
@ -314,6 +315,7 @@ Shader version: 500
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? 'Position' (layout( location=0) in 4-component vector of float)
|
||||
0:? '@entryPointOutput_ClipRect' ( out 4-element array of float ClipDistance)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
|
||||
562
Test/baseResults/hlsl.clipdistance-6.vert.out
Normal file
562
Test/baseResults/hlsl.clipdistance-6.vert.out
Normal file
@ -0,0 +1,562 @@
|
||||
hlsl.clipdistance-6.vert
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of float)
|
||||
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:12 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 move second child to first child ( temp float)
|
||||
0:13 direct index ( temp float)
|
||||
0:13 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1.000000
|
||||
0:14 move second child to first child ( temp float)
|
||||
0:14 direct index ( temp float)
|
||||
0:14 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2.000000
|
||||
0:15 move second child to first child ( temp float)
|
||||
0:15 direct index ( temp float)
|
||||
0:15 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:15 Constant:
|
||||
0:15 3 (const int)
|
||||
0:15 Constant:
|
||||
0:15 3.000000
|
||||
0:17 move second child to first child ( temp float)
|
||||
0:17 direct index ( temp float)
|
||||
0:17 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:17 Constant:
|
||||
0:17 2 (const int)
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 Constant:
|
||||
0:17 4.000000
|
||||
0:18 move second child to first child ( temp float)
|
||||
0:18 direct index ( temp float)
|
||||
0:18 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Constant:
|
||||
0:18 5.000000
|
||||
0:19 move second child to first child ( temp float)
|
||||
0:19 direct index ( temp float)
|
||||
0:19 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:19 Constant:
|
||||
0:19 2 (const int)
|
||||
0:19 Constant:
|
||||
0:19 2 (const int)
|
||||
0:19 Constant:
|
||||
0:19 6.000000
|
||||
0:20 move second child to first child ( temp float)
|
||||
0:20 direct index ( temp float)
|
||||
0:20 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:20 Constant:
|
||||
0:20 2 (const int)
|
||||
0:20 Constant:
|
||||
0:20 3 (const int)
|
||||
0:20 Constant:
|
||||
0:20 7.000000
|
||||
0:22 Branch: Return with expression
|
||||
0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Definition: main( ( temp void)
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:8 Sequence
|
||||
0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput_Position' ( out 4-component vector of float Position)
|
||||
0:8 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 4 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 5 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 6 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 7 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of float)
|
||||
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:12 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 move second child to first child ( temp float)
|
||||
0:13 direct index ( temp float)
|
||||
0:13 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1.000000
|
||||
0:14 move second child to first child ( temp float)
|
||||
0:14 direct index ( temp float)
|
||||
0:14 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2.000000
|
||||
0:15 move second child to first child ( temp float)
|
||||
0:15 direct index ( temp float)
|
||||
0:15 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:15 Constant:
|
||||
0:15 3 (const int)
|
||||
0:15 Constant:
|
||||
0:15 3.000000
|
||||
0:17 move second child to first child ( temp float)
|
||||
0:17 direct index ( temp float)
|
||||
0:17 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:17 Constant:
|
||||
0:17 2 (const int)
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 Constant:
|
||||
0:17 4.000000
|
||||
0:18 move second child to first child ( temp float)
|
||||
0:18 direct index ( temp float)
|
||||
0:18 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Constant:
|
||||
0:18 5.000000
|
||||
0:19 move second child to first child ( temp float)
|
||||
0:19 direct index ( temp float)
|
||||
0:19 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:19 Constant:
|
||||
0:19 2 (const int)
|
||||
0:19 Constant:
|
||||
0:19 2 (const int)
|
||||
0:19 Constant:
|
||||
0:19 6.000000
|
||||
0:20 move second child to first child ( temp float)
|
||||
0:20 direct index ( temp float)
|
||||
0:20 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:20 Constant:
|
||||
0:20 2 (const int)
|
||||
0:20 Constant:
|
||||
0:20 3 (const int)
|
||||
0:20 Constant:
|
||||
0:20 7.000000
|
||||
0:22 Branch: Return with expression
|
||||
0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Definition: main( ( temp void)
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:8 Sequence
|
||||
0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput_Position' ( out 4-component vector of float Position)
|
||||
0:8 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 4 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 5 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 6 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 7 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 89
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 49 55 88
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 8 "VS_OUTPUT"
|
||||
MemberName 8(VS_OUTPUT) 0 "Position"
|
||||
MemberName 8(VS_OUTPUT) 1 "clip0"
|
||||
MemberName 8(VS_OUTPUT) 2 "clip1"
|
||||
Name 10 "@main("
|
||||
Name 13 "Output"
|
||||
Name 46 "flattenTemp"
|
||||
Name 49 "@entryPointOutput_Position"
|
||||
Name 55 "@entryPointOutput_clip1"
|
||||
Name 86 "VS_OUTPUT"
|
||||
Name 88 "@entryPointOutput"
|
||||
Decorate 49(@entryPointOutput_Position) BuiltIn Position
|
||||
Decorate 55(@entryPointOutput_clip1) BuiltIn ClipDistance
|
||||
Decorate 88(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4)
|
||||
9: TypeFunction 8(VS_OUTPUT)
|
||||
12: TypePointer Function 8(VS_OUTPUT)
|
||||
14: TypeInt 32 1
|
||||
15: 14(int) Constant 0
|
||||
16: 6(float) Constant 0
|
||||
17: 7(fvec4) ConstantComposite 16 16 16 16
|
||||
18: TypePointer Function 7(fvec4)
|
||||
20: 14(int) Constant 1
|
||||
21: TypeInt 32 0
|
||||
22: 21(int) Constant 0
|
||||
23: TypePointer Function 6(float)
|
||||
25: 6(float) Constant 1065353216
|
||||
26: 21(int) Constant 1
|
||||
28: 6(float) Constant 1073741824
|
||||
29: 21(int) Constant 2
|
||||
31: 6(float) Constant 1077936128
|
||||
32: 21(int) Constant 3
|
||||
34: 14(int) Constant 2
|
||||
35: 6(float) Constant 1082130432
|
||||
37: 6(float) Constant 1084227584
|
||||
39: 6(float) Constant 1086324736
|
||||
41: 6(float) Constant 1088421888
|
||||
48: TypePointer Output 7(fvec4)
|
||||
49(@entryPointOutput_Position): 48(ptr) Variable Output
|
||||
52: 21(int) Constant 8
|
||||
53: TypeArray 6(float) 52
|
||||
54: TypePointer Output 53
|
||||
55(@entryPointOutput_clip1): 54(ptr) Variable Output
|
||||
58: TypePointer Output 6(float)
|
||||
66: 14(int) Constant 3
|
||||
70: 14(int) Constant 4
|
||||
74: 14(int) Constant 5
|
||||
78: 14(int) Constant 6
|
||||
82: 14(int) Constant 7
|
||||
86(VS_OUTPUT): TypeStruct
|
||||
87: TypePointer Output 86(VS_OUTPUT)
|
||||
88(@entryPointOutput): 87(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
46(flattenTemp): 12(ptr) Variable Function
|
||||
47:8(VS_OUTPUT) FunctionCall 10(@main()
|
||||
Store 46(flattenTemp) 47
|
||||
50: 18(ptr) AccessChain 46(flattenTemp) 15
|
||||
51: 7(fvec4) Load 50
|
||||
Store 49(@entryPointOutput_Position) 51
|
||||
56: 23(ptr) AccessChain 46(flattenTemp) 20 22
|
||||
57: 6(float) Load 56
|
||||
59: 58(ptr) AccessChain 55(@entryPointOutput_clip1) 15
|
||||
Store 59 57
|
||||
60: 23(ptr) AccessChain 46(flattenTemp) 20 26
|
||||
61: 6(float) Load 60
|
||||
62: 58(ptr) AccessChain 55(@entryPointOutput_clip1) 20
|
||||
Store 62 61
|
||||
63: 23(ptr) AccessChain 46(flattenTemp) 20 29
|
||||
64: 6(float) Load 63
|
||||
65: 58(ptr) AccessChain 55(@entryPointOutput_clip1) 34
|
||||
Store 65 64
|
||||
67: 23(ptr) AccessChain 46(flattenTemp) 20 32
|
||||
68: 6(float) Load 67
|
||||
69: 58(ptr) AccessChain 55(@entryPointOutput_clip1) 66
|
||||
Store 69 68
|
||||
71: 23(ptr) AccessChain 46(flattenTemp) 34 22
|
||||
72: 6(float) Load 71
|
||||
73: 58(ptr) AccessChain 55(@entryPointOutput_clip1) 70
|
||||
Store 73 72
|
||||
75: 23(ptr) AccessChain 46(flattenTemp) 34 26
|
||||
76: 6(float) Load 75
|
||||
77: 58(ptr) AccessChain 55(@entryPointOutput_clip1) 74
|
||||
Store 77 76
|
||||
79: 23(ptr) AccessChain 46(flattenTemp) 34 29
|
||||
80: 6(float) Load 79
|
||||
81: 58(ptr) AccessChain 55(@entryPointOutput_clip1) 78
|
||||
Store 81 80
|
||||
83: 23(ptr) AccessChain 46(flattenTemp) 34 32
|
||||
84: 6(float) Load 83
|
||||
85: 58(ptr) AccessChain 55(@entryPointOutput_clip1) 82
|
||||
Store 85 84
|
||||
Return
|
||||
FunctionEnd
|
||||
10(@main():8(VS_OUTPUT) Function None 9
|
||||
11: Label
|
||||
13(Output): 12(ptr) Variable Function
|
||||
19: 18(ptr) AccessChain 13(Output) 15
|
||||
Store 19 17
|
||||
24: 23(ptr) AccessChain 13(Output) 20 22
|
||||
Store 24 16
|
||||
27: 23(ptr) AccessChain 13(Output) 20 26
|
||||
Store 27 25
|
||||
30: 23(ptr) AccessChain 13(Output) 20 29
|
||||
Store 30 28
|
||||
33: 23(ptr) AccessChain 13(Output) 20 32
|
||||
Store 33 31
|
||||
36: 23(ptr) AccessChain 13(Output) 34 22
|
||||
Store 36 35
|
||||
38: 23(ptr) AccessChain 13(Output) 34 26
|
||||
Store 38 37
|
||||
40: 23(ptr) AccessChain 13(Output) 34 29
|
||||
Store 40 39
|
||||
42: 23(ptr) AccessChain 13(Output) 34 32
|
||||
Store 42 41
|
||||
43:8(VS_OUTPUT) Load 13(Output)
|
||||
ReturnValue 43
|
||||
FunctionEnd
|
||||
511
Test/baseResults/hlsl.clipdistance-7.vert.out
Normal file
511
Test/baseResults/hlsl.clipdistance-7.vert.out
Normal file
@ -0,0 +1,511 @@
|
||||
hlsl.clipdistance-7.vert
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of float)
|
||||
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:12 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 move second child to first child ( temp float)
|
||||
0:13 direct index ( temp float)
|
||||
0:13 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1.000000
|
||||
0:14 move second child to first child ( temp float)
|
||||
0:14 direct index ( temp float)
|
||||
0:14 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2.000000
|
||||
0:17 move second child to first child ( temp float)
|
||||
0:17 direct index ( temp float)
|
||||
0:17 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:17 Constant:
|
||||
0:17 2 (const int)
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 Constant:
|
||||
0:17 4.000000
|
||||
0:18 move second child to first child ( temp float)
|
||||
0:18 direct index ( temp float)
|
||||
0:18 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Constant:
|
||||
0:18 5.000000
|
||||
0:19 move second child to first child ( temp float)
|
||||
0:19 direct index ( temp float)
|
||||
0:19 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:19 Constant:
|
||||
0:19 2 (const int)
|
||||
0:19 Constant:
|
||||
0:19 2 (const int)
|
||||
0:19 Constant:
|
||||
0:19 6.000000
|
||||
0:20 move second child to first child ( temp float)
|
||||
0:20 direct index ( temp float)
|
||||
0:20 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:20 Constant:
|
||||
0:20 2 (const int)
|
||||
0:20 Constant:
|
||||
0:20 3 (const int)
|
||||
0:20 Constant:
|
||||
0:20 7.000000
|
||||
0:22 Branch: Return with expression
|
||||
0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Definition: main( ( temp void)
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:8 Sequence
|
||||
0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput_Position' ( out 4-component vector of float Position)
|
||||
0:8 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 4 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 5 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 6 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 7 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of float)
|
||||
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:12 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 move second child to first child ( temp float)
|
||||
0:13 direct index ( temp float)
|
||||
0:13 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1.000000
|
||||
0:14 move second child to first child ( temp float)
|
||||
0:14 direct index ( temp float)
|
||||
0:14 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2.000000
|
||||
0:17 move second child to first child ( temp float)
|
||||
0:17 direct index ( temp float)
|
||||
0:17 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:17 Constant:
|
||||
0:17 2 (const int)
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 Constant:
|
||||
0:17 4.000000
|
||||
0:18 move second child to first child ( temp float)
|
||||
0:18 direct index ( temp float)
|
||||
0:18 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 Constant:
|
||||
0:18 1 (const int)
|
||||
0:18 Constant:
|
||||
0:18 5.000000
|
||||
0:19 move second child to first child ( temp float)
|
||||
0:19 direct index ( temp float)
|
||||
0:19 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:19 Constant:
|
||||
0:19 2 (const int)
|
||||
0:19 Constant:
|
||||
0:19 2 (const int)
|
||||
0:19 Constant:
|
||||
0:19 6.000000
|
||||
0:20 move second child to first child ( temp float)
|
||||
0:20 direct index ( temp float)
|
||||
0:20 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:20 Constant:
|
||||
0:20 2 (const int)
|
||||
0:20 Constant:
|
||||
0:20 3 (const int)
|
||||
0:20 Constant:
|
||||
0:20 7.000000
|
||||
0:22 Branch: Return with expression
|
||||
0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Definition: main( ( temp void)
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:8 Sequence
|
||||
0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput_Position' ( out 4-component vector of float Position)
|
||||
0:8 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 4 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 5 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 6 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 7 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip1: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 84
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 48 54 83
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 9 "VS_OUTPUT"
|
||||
MemberName 9(VS_OUTPUT) 0 "Position"
|
||||
MemberName 9(VS_OUTPUT) 1 "clip0"
|
||||
MemberName 9(VS_OUTPUT) 2 "clip1"
|
||||
Name 11 "@main("
|
||||
Name 14 "Output"
|
||||
Name 45 "flattenTemp"
|
||||
Name 48 "@entryPointOutput_Position"
|
||||
Name 54 "@entryPointOutput_clip1"
|
||||
Name 81 "VS_OUTPUT"
|
||||
Name 83 "@entryPointOutput"
|
||||
Decorate 48(@entryPointOutput_Position) BuiltIn Position
|
||||
Decorate 54(@entryPointOutput_clip1) BuiltIn ClipDistance
|
||||
Decorate 83(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeVector 6(float) 3
|
||||
9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 7(fvec4)
|
||||
10: TypeFunction 9(VS_OUTPUT)
|
||||
13: TypePointer Function 9(VS_OUTPUT)
|
||||
15: TypeInt 32 1
|
||||
16: 15(int) Constant 0
|
||||
17: 6(float) Constant 0
|
||||
18: 7(fvec4) ConstantComposite 17 17 17 17
|
||||
19: TypePointer Function 7(fvec4)
|
||||
21: 15(int) Constant 1
|
||||
22: TypeInt 32 0
|
||||
23: 22(int) Constant 0
|
||||
24: TypePointer Function 6(float)
|
||||
26: 6(float) Constant 1065353216
|
||||
27: 22(int) Constant 1
|
||||
29: 6(float) Constant 1073741824
|
||||
30: 22(int) Constant 2
|
||||
32: 15(int) Constant 2
|
||||
33: 6(float) Constant 1082130432
|
||||
35: 6(float) Constant 1084227584
|
||||
37: 6(float) Constant 1086324736
|
||||
39: 6(float) Constant 1088421888
|
||||
40: 22(int) Constant 3
|
||||
47: TypePointer Output 7(fvec4)
|
||||
48(@entryPointOutput_Position): 47(ptr) Variable Output
|
||||
51: 22(int) Constant 8
|
||||
52: TypeArray 6(float) 51
|
||||
53: TypePointer Output 52
|
||||
54(@entryPointOutput_clip1): 53(ptr) Variable Output
|
||||
57: TypePointer Output 6(float)
|
||||
65: 15(int) Constant 4
|
||||
69: 15(int) Constant 5
|
||||
73: 15(int) Constant 6
|
||||
77: 15(int) Constant 7
|
||||
81(VS_OUTPUT): TypeStruct
|
||||
82: TypePointer Output 81(VS_OUTPUT)
|
||||
83(@entryPointOutput): 82(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
45(flattenTemp): 13(ptr) Variable Function
|
||||
46:9(VS_OUTPUT) FunctionCall 11(@main()
|
||||
Store 45(flattenTemp) 46
|
||||
49: 19(ptr) AccessChain 45(flattenTemp) 16
|
||||
50: 7(fvec4) Load 49
|
||||
Store 48(@entryPointOutput_Position) 50
|
||||
55: 24(ptr) AccessChain 45(flattenTemp) 21 23
|
||||
56: 6(float) Load 55
|
||||
58: 57(ptr) AccessChain 54(@entryPointOutput_clip1) 16
|
||||
Store 58 56
|
||||
59: 24(ptr) AccessChain 45(flattenTemp) 21 27
|
||||
60: 6(float) Load 59
|
||||
61: 57(ptr) AccessChain 54(@entryPointOutput_clip1) 21
|
||||
Store 61 60
|
||||
62: 24(ptr) AccessChain 45(flattenTemp) 21 30
|
||||
63: 6(float) Load 62
|
||||
64: 57(ptr) AccessChain 54(@entryPointOutput_clip1) 32
|
||||
Store 64 63
|
||||
66: 24(ptr) AccessChain 45(flattenTemp) 32 23
|
||||
67: 6(float) Load 66
|
||||
68: 57(ptr) AccessChain 54(@entryPointOutput_clip1) 65
|
||||
Store 68 67
|
||||
70: 24(ptr) AccessChain 45(flattenTemp) 32 27
|
||||
71: 6(float) Load 70
|
||||
72: 57(ptr) AccessChain 54(@entryPointOutput_clip1) 69
|
||||
Store 72 71
|
||||
74: 24(ptr) AccessChain 45(flattenTemp) 32 30
|
||||
75: 6(float) Load 74
|
||||
76: 57(ptr) AccessChain 54(@entryPointOutput_clip1) 73
|
||||
Store 76 75
|
||||
78: 24(ptr) AccessChain 45(flattenTemp) 32 40
|
||||
79: 6(float) Load 78
|
||||
80: 57(ptr) AccessChain 54(@entryPointOutput_clip1) 77
|
||||
Store 80 79
|
||||
Return
|
||||
FunctionEnd
|
||||
11(@main():9(VS_OUTPUT) Function None 10
|
||||
12: Label
|
||||
14(Output): 13(ptr) Variable Function
|
||||
20: 19(ptr) AccessChain 14(Output) 16
|
||||
Store 20 18
|
||||
25: 24(ptr) AccessChain 14(Output) 21 23
|
||||
Store 25 17
|
||||
28: 24(ptr) AccessChain 14(Output) 21 27
|
||||
Store 28 26
|
||||
31: 24(ptr) AccessChain 14(Output) 21 30
|
||||
Store 31 29
|
||||
34: 24(ptr) AccessChain 14(Output) 32 23
|
||||
Store 34 33
|
||||
36: 24(ptr) AccessChain 14(Output) 32 27
|
||||
Store 36 35
|
||||
38: 24(ptr) AccessChain 14(Output) 32 30
|
||||
Store 38 37
|
||||
41: 24(ptr) AccessChain 14(Output) 32 40
|
||||
Store 41 39
|
||||
42:9(VS_OUTPUT) Load 14(Output)
|
||||
ReturnValue 42
|
||||
FunctionEnd
|
||||
342
Test/baseResults/hlsl.clipdistance-8.vert.out
Normal file
342
Test/baseResults/hlsl.clipdistance-8.vert.out
Normal file
@ -0,0 +1,342 @@
|
||||
hlsl.clipdistance-8.vert
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of float)
|
||||
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:12 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 move second child to first child ( temp float)
|
||||
0:13 direct index ( temp float)
|
||||
0:13 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1.000000
|
||||
0:14 move second child to first child ( temp float)
|
||||
0:14 direct index ( temp float)
|
||||
0:14 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2.000000
|
||||
0:17 move second child to first child ( temp float)
|
||||
0:17 clip1: direct index for structure ( temp float)
|
||||
0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:17 Constant:
|
||||
0:17 2 (const int)
|
||||
0:17 Constant:
|
||||
0:17 3.000000
|
||||
0:19 Branch: Return with expression
|
||||
0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Function Definition: main( ( temp void)
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:8 Sequence
|
||||
0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput_Position' ( out 4-component vector of float Position)
|
||||
0:8 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:8 clip1: direct index for structure ( temp float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of float)
|
||||
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:10 0.000000
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:12 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 move second child to first child ( temp float)
|
||||
0:13 direct index ( temp float)
|
||||
0:13 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 1.000000
|
||||
0:14 move second child to first child ( temp float)
|
||||
0:14 direct index ( temp float)
|
||||
0:14 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2 (const int)
|
||||
0:14 Constant:
|
||||
0:14 2.000000
|
||||
0:17 move second child to first child ( temp float)
|
||||
0:17 clip1: direct index for structure ( temp float)
|
||||
0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:17 Constant:
|
||||
0:17 2 (const int)
|
||||
0:17 Constant:
|
||||
0:17 3.000000
|
||||
0:19 Branch: Return with expression
|
||||
0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Function Definition: main( ( temp void)
|
||||
0:8 Function Parameters:
|
||||
0:? Sequence
|
||||
0:8 Sequence
|
||||
0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput_Position' ( out 4-component vector of float Position)
|
||||
0:8 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:8 direct index ( temp float)
|
||||
0:8 clip0: direct index for structure ( temp 3-component vector of float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:? Sequence
|
||||
0:8 move second child to first child ( temp float)
|
||||
0:8 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
0:8 Constant:
|
||||
0:8 3 (const int)
|
||||
0:8 clip1: direct index for structure ( temp float)
|
||||
0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
|
||||
0:8 Constant:
|
||||
0:8 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 65
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 41 47 64
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 9 "VS_OUTPUT"
|
||||
MemberName 9(VS_OUTPUT) 0 "Position"
|
||||
MemberName 9(VS_OUTPUT) 1 "clip0"
|
||||
MemberName 9(VS_OUTPUT) 2 "clip1"
|
||||
Name 11 "@main("
|
||||
Name 14 "Output"
|
||||
Name 38 "flattenTemp"
|
||||
Name 41 "@entryPointOutput_Position"
|
||||
Name 47 "@entryPointOutput_clip1"
|
||||
Name 62 "VS_OUTPUT"
|
||||
Name 64 "@entryPointOutput"
|
||||
Decorate 41(@entryPointOutput_Position) BuiltIn Position
|
||||
Decorate 47(@entryPointOutput_clip1) BuiltIn ClipDistance
|
||||
Decorate 64(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeVector 6(float) 3
|
||||
9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 6(float)
|
||||
10: TypeFunction 9(VS_OUTPUT)
|
||||
13: TypePointer Function 9(VS_OUTPUT)
|
||||
15: TypeInt 32 1
|
||||
16: 15(int) Constant 0
|
||||
17: 6(float) Constant 0
|
||||
18: 7(fvec4) ConstantComposite 17 17 17 17
|
||||
19: TypePointer Function 7(fvec4)
|
||||
21: 15(int) Constant 1
|
||||
22: TypeInt 32 0
|
||||
23: 22(int) Constant 0
|
||||
24: TypePointer Function 6(float)
|
||||
26: 6(float) Constant 1065353216
|
||||
27: 22(int) Constant 1
|
||||
29: 6(float) Constant 1073741824
|
||||
30: 22(int) Constant 2
|
||||
32: 15(int) Constant 2
|
||||
33: 6(float) Constant 1077936128
|
||||
40: TypePointer Output 7(fvec4)
|
||||
41(@entryPointOutput_Position): 40(ptr) Variable Output
|
||||
44: 22(int) Constant 4
|
||||
45: TypeArray 6(float) 44
|
||||
46: TypePointer Output 45
|
||||
47(@entryPointOutput_clip1): 46(ptr) Variable Output
|
||||
50: TypePointer Output 6(float)
|
||||
58: 15(int) Constant 3
|
||||
62(VS_OUTPUT): TypeStruct
|
||||
63: TypePointer Output 62(VS_OUTPUT)
|
||||
64(@entryPointOutput): 63(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
38(flattenTemp): 13(ptr) Variable Function
|
||||
39:9(VS_OUTPUT) FunctionCall 11(@main()
|
||||
Store 38(flattenTemp) 39
|
||||
42: 19(ptr) AccessChain 38(flattenTemp) 16
|
||||
43: 7(fvec4) Load 42
|
||||
Store 41(@entryPointOutput_Position) 43
|
||||
48: 24(ptr) AccessChain 38(flattenTemp) 21 23
|
||||
49: 6(float) Load 48
|
||||
51: 50(ptr) AccessChain 47(@entryPointOutput_clip1) 16
|
||||
Store 51 49
|
||||
52: 24(ptr) AccessChain 38(flattenTemp) 21 27
|
||||
53: 6(float) Load 52
|
||||
54: 50(ptr) AccessChain 47(@entryPointOutput_clip1) 21
|
||||
Store 54 53
|
||||
55: 24(ptr) AccessChain 38(flattenTemp) 21 30
|
||||
56: 6(float) Load 55
|
||||
57: 50(ptr) AccessChain 47(@entryPointOutput_clip1) 32
|
||||
Store 57 56
|
||||
59: 24(ptr) AccessChain 38(flattenTemp) 32
|
||||
60: 6(float) Load 59
|
||||
61: 50(ptr) AccessChain 47(@entryPointOutput_clip1) 58
|
||||
Store 61 60
|
||||
Return
|
||||
FunctionEnd
|
||||
11(@main():9(VS_OUTPUT) Function None 10
|
||||
12: Label
|
||||
14(Output): 13(ptr) Variable Function
|
||||
20: 19(ptr) AccessChain 14(Output) 16
|
||||
Store 20 18
|
||||
25: 24(ptr) AccessChain 14(Output) 21 23
|
||||
Store 25 17
|
||||
28: 24(ptr) AccessChain 14(Output) 21 27
|
||||
Store 28 26
|
||||
31: 24(ptr) AccessChain 14(Output) 21 30
|
||||
Store 31 29
|
||||
34: 24(ptr) AccessChain 14(Output) 32
|
||||
Store 34 33
|
||||
35:9(VS_OUTPUT) Load 14(Output)
|
||||
ReturnValue 35
|
||||
FunctionEnd
|
||||
305
Test/baseResults/hlsl.clipdistance-9.vert.out
Normal file
305
Test/baseResults/hlsl.clipdistance-9.vert.out
Normal file
@ -0,0 +1,305 @@
|
||||
hlsl.clipdistance-9.vert
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:7 Function Definition: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position})
|
||||
0:7 Function Parameters:
|
||||
0:7 'clip0' ( out 3-component vector of float)
|
||||
0:7 'clip1' ( out float)
|
||||
0:? Sequence
|
||||
0:9 move second child to first child ( temp 4-component vector of float)
|
||||
0:9 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:9 'Output' ( temp structure{ temp 4-component vector of float Position})
|
||||
0:9 Constant:
|
||||
0:9 0 (const int)
|
||||
0:9 Constant:
|
||||
0:9 0.000000
|
||||
0:9 0.000000
|
||||
0:9 0.000000
|
||||
0:9 0.000000
|
||||
0:11 move second child to first child ( temp float)
|
||||
0:11 direct index ( temp float)
|
||||
0:11 'clip0' ( out 3-component vector of float)
|
||||
0:11 Constant:
|
||||
0:11 0 (const int)
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:12 'clip0' ( out 3-component vector of float)
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 Constant:
|
||||
0:12 1.000000
|
||||
0:13 move second child to first child ( temp float)
|
||||
0:13 direct index ( temp float)
|
||||
0:13 'clip0' ( out 3-component vector of float)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2.000000
|
||||
0:16 move second child to first child ( temp float)
|
||||
0:16 'clip1' ( out float)
|
||||
0:16 Constant:
|
||||
0:16 3.000000
|
||||
0:18 Branch: Return with expression
|
||||
0:18 'Output' ( temp structure{ temp 4-component vector of float Position})
|
||||
0:7 Function Definition: main( ( temp void)
|
||||
0:7 Function Parameters:
|
||||
0:? Sequence
|
||||
0:7 Sequence
|
||||
0:7 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput_Position' ( out 4-component vector of float Position)
|
||||
0:7 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:7 Function Call: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position})
|
||||
0:? 'clip0' ( temp 3-component vector of float)
|
||||
0:? 'clip1' ( temp float)
|
||||
0:7 Constant:
|
||||
0:7 0 (const int)
|
||||
0:? Sequence
|
||||
0:7 move second child to first child ( temp float)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
0:7 Constant:
|
||||
0:7 0 (const int)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( temp 3-component vector of float)
|
||||
0:7 Constant:
|
||||
0:7 0 (const int)
|
||||
0:7 move second child to first child ( temp float)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
0:7 Constant:
|
||||
0:7 1 (const int)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( temp 3-component vector of float)
|
||||
0:7 Constant:
|
||||
0:7 1 (const int)
|
||||
0:7 move second child to first child ( temp float)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
0:7 Constant:
|
||||
0:7 2 (const int)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( temp 3-component vector of float)
|
||||
0:7 Constant:
|
||||
0:7 2 (const int)
|
||||
0:? Sequence
|
||||
0:7 move second child to first child ( temp float)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
0:7 Constant:
|
||||
0:7 3 (const int)
|
||||
0:? 'clip1' ( temp float)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:7 Function Definition: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position})
|
||||
0:7 Function Parameters:
|
||||
0:7 'clip0' ( out 3-component vector of float)
|
||||
0:7 'clip1' ( out float)
|
||||
0:? Sequence
|
||||
0:9 move second child to first child ( temp 4-component vector of float)
|
||||
0:9 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:9 'Output' ( temp structure{ temp 4-component vector of float Position})
|
||||
0:9 Constant:
|
||||
0:9 0 (const int)
|
||||
0:9 Constant:
|
||||
0:9 0.000000
|
||||
0:9 0.000000
|
||||
0:9 0.000000
|
||||
0:9 0.000000
|
||||
0:11 move second child to first child ( temp float)
|
||||
0:11 direct index ( temp float)
|
||||
0:11 'clip0' ( out 3-component vector of float)
|
||||
0:11 Constant:
|
||||
0:11 0 (const int)
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:12 'clip0' ( out 3-component vector of float)
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:12 Constant:
|
||||
0:12 1.000000
|
||||
0:13 move second child to first child ( temp float)
|
||||
0:13 direct index ( temp float)
|
||||
0:13 'clip0' ( out 3-component vector of float)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2.000000
|
||||
0:16 move second child to first child ( temp float)
|
||||
0:16 'clip1' ( out float)
|
||||
0:16 Constant:
|
||||
0:16 3.000000
|
||||
0:18 Branch: Return with expression
|
||||
0:18 'Output' ( temp structure{ temp 4-component vector of float Position})
|
||||
0:7 Function Definition: main( ( temp void)
|
||||
0:7 Function Parameters:
|
||||
0:? Sequence
|
||||
0:7 Sequence
|
||||
0:7 move second child to first child ( temp 4-component vector of float)
|
||||
0:? '@entryPointOutput_Position' ( out 4-component vector of float Position)
|
||||
0:7 Position: direct index for structure ( temp 4-component vector of float)
|
||||
0:7 Function Call: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position})
|
||||
0:? 'clip0' ( temp 3-component vector of float)
|
||||
0:? 'clip1' ( temp float)
|
||||
0:7 Constant:
|
||||
0:7 0 (const int)
|
||||
0:? Sequence
|
||||
0:7 move second child to first child ( temp float)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
0:7 Constant:
|
||||
0:7 0 (const int)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( temp 3-component vector of float)
|
||||
0:7 Constant:
|
||||
0:7 0 (const int)
|
||||
0:7 move second child to first child ( temp float)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
0:7 Constant:
|
||||
0:7 1 (const int)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( temp 3-component vector of float)
|
||||
0:7 Constant:
|
||||
0:7 1 (const int)
|
||||
0:7 move second child to first child ( temp float)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
0:7 Constant:
|
||||
0:7 2 (const int)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( temp 3-component vector of float)
|
||||
0:7 Constant:
|
||||
0:7 2 (const int)
|
||||
0:? Sequence
|
||||
0:7 move second child to first child ( temp float)
|
||||
0:7 direct index ( temp float)
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
0:7 Constant:
|
||||
0:7 3 (const int)
|
||||
0:? 'clip1' ( temp float)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{})
|
||||
0:? 'clip0' ( out 4-element array of float ClipDistance)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 70
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 39 51 69
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 11 "VS_OUTPUT"
|
||||
MemberName 11(VS_OUTPUT) 0 "Position"
|
||||
Name 15 "@main(vf3;f1;"
|
||||
Name 13 "clip0"
|
||||
Name 14 "clip1"
|
||||
Name 18 "Output"
|
||||
Name 39 "@entryPointOutput_Position"
|
||||
Name 40 "clip0"
|
||||
Name 41 "clip1"
|
||||
Name 42 "param"
|
||||
Name 43 "param"
|
||||
Name 51 "clip0"
|
||||
Name 67 "VS_OUTPUT"
|
||||
Name 69 "@entryPointOutput"
|
||||
Decorate 39(@entryPointOutput_Position) BuiltIn Position
|
||||
Decorate 51(clip0) BuiltIn ClipDistance
|
||||
Decorate 69(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 3
|
||||
8: TypePointer Function 7(fvec3)
|
||||
9: TypePointer Function 6(float)
|
||||
10: TypeVector 6(float) 4
|
||||
11(VS_OUTPUT): TypeStruct 10(fvec4)
|
||||
12: TypeFunction 11(VS_OUTPUT) 8(ptr) 9(ptr)
|
||||
17: TypePointer Function 11(VS_OUTPUT)
|
||||
19: TypeInt 32 1
|
||||
20: 19(int) Constant 0
|
||||
21: 6(float) Constant 0
|
||||
22: 10(fvec4) ConstantComposite 21 21 21 21
|
||||
23: TypePointer Function 10(fvec4)
|
||||
25: TypeInt 32 0
|
||||
26: 25(int) Constant 0
|
||||
28: 6(float) Constant 1065353216
|
||||
29: 25(int) Constant 1
|
||||
31: 6(float) Constant 1073741824
|
||||
32: 25(int) Constant 2
|
||||
34: 6(float) Constant 1077936128
|
||||
38: TypePointer Output 10(fvec4)
|
||||
39(@entryPointOutput_Position): 38(ptr) Variable Output
|
||||
48: 25(int) Constant 4
|
||||
49: TypeArray 6(float) 48
|
||||
50: TypePointer Output 49
|
||||
51(clip0): 50(ptr) Variable Output
|
||||
54: TypePointer Output 6(float)
|
||||
56: 19(int) Constant 1
|
||||
60: 19(int) Constant 2
|
||||
64: 19(int) Constant 3
|
||||
67(VS_OUTPUT): TypeStruct
|
||||
68: TypePointer Output 67(VS_OUTPUT)
|
||||
69(@entryPointOutput): 68(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
40(clip0): 8(ptr) Variable Function
|
||||
41(clip1): 9(ptr) Variable Function
|
||||
42(param): 8(ptr) Variable Function
|
||||
43(param): 9(ptr) Variable Function
|
||||
44:11(VS_OUTPUT) FunctionCall 15(@main(vf3;f1;) 42(param) 43(param)
|
||||
45: 7(fvec3) Load 42(param)
|
||||
Store 40(clip0) 45
|
||||
46: 6(float) Load 43(param)
|
||||
Store 41(clip1) 46
|
||||
47: 10(fvec4) CompositeExtract 44 0
|
||||
Store 39(@entryPointOutput_Position) 47
|
||||
52: 9(ptr) AccessChain 40(clip0) 26
|
||||
53: 6(float) Load 52
|
||||
55: 54(ptr) AccessChain 51(clip0) 20
|
||||
Store 55 53
|
||||
57: 9(ptr) AccessChain 40(clip0) 29
|
||||
58: 6(float) Load 57
|
||||
59: 54(ptr) AccessChain 51(clip0) 56
|
||||
Store 59 58
|
||||
61: 9(ptr) AccessChain 40(clip0) 32
|
||||
62: 6(float) Load 61
|
||||
63: 54(ptr) AccessChain 51(clip0) 60
|
||||
Store 63 62
|
||||
65: 6(float) Load 41(clip1)
|
||||
66: 54(ptr) AccessChain 51(clip0) 64
|
||||
Store 66 65
|
||||
Return
|
||||
FunctionEnd
|
||||
15(@main(vf3;f1;):11(VS_OUTPUT) Function None 12
|
||||
13(clip0): 8(ptr) FunctionParameter
|
||||
14(clip1): 9(ptr) FunctionParameter
|
||||
16: Label
|
||||
18(Output): 17(ptr) Variable Function
|
||||
24: 23(ptr) AccessChain 18(Output) 20
|
||||
Store 24 22
|
||||
27: 9(ptr) AccessChain 13(clip0) 26
|
||||
Store 27 21
|
||||
30: 9(ptr) AccessChain 13(clip0) 29
|
||||
Store 30 28
|
||||
33: 9(ptr) AccessChain 13(clip0) 32
|
||||
Store 33 31
|
||||
Store 14(clip1) 34
|
||||
35:11(VS_OUTPUT) Load 18(Output)
|
||||
ReturnValue 35
|
||||
FunctionEnd
|
||||
@ -69,6 +69,8 @@ output primitive = line_strip
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
||||
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||
0:? 'OutputStream' (layout( location=1) out structure{ temp int ii})
|
||||
0:? 'OutputStream_clip0' ( out 1-element array of float ClipDistance)
|
||||
0:? 'OutputStream_cull0' ( out 1-element array of float CullDistance)
|
||||
0:? 'OutputStream_vpai' ( out uint ViewportIndex)
|
||||
|
||||
|
||||
@ -145,6 +147,8 @@ output primitive = line_strip
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
||||
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||
0:? 'OutputStream' (layout( location=1) out structure{ temp int ii})
|
||||
0:? 'OutputStream_clip0' ( out 1-element array of float ClipDistance)
|
||||
0:? 'OutputStream_cull0' ( out 1-element array of float CullDistance)
|
||||
0:? 'OutputStream_vpai' ( out uint ViewportIndex)
|
||||
|
||||
// Module Version 10000
|
||||
|
||||
@ -1,141 +1,109 @@
|
||||
hlsl.semantic.vert
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:12 Function Definition: @main(struct-S-f1-f1-f1-f1-f1-f1-i11; ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Function Parameters:
|
||||
0:12 'ins' ( in structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:10 Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Function Parameters:
|
||||
0:10 'ins' ( in structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:? Sequence
|
||||
0:14 Branch: Return with expression
|
||||
0:14 's' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Function Definition: main( ( temp void)
|
||||
0:12 Function Parameters:
|
||||
0:12 Branch: Return with expression
|
||||
0:12 's' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Function Definition: main( ( temp void)
|
||||
0:10 Function Parameters:
|
||||
0:? Sequence
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 clip: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:? 'clip' (layout( location=0) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 clip0: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:? 'clip0' (layout( location=1) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 clip7: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 2 (const int)
|
||||
0:? 'clip7' (layout( location=2) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 cull: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 3 (const int)
|
||||
0:? 'cull' (layout( location=3) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 cull2: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 4 (const int)
|
||||
0:? 'cull2' (layout( location=4) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 cull5: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 5 (const int)
|
||||
0:? 'cull5' (layout( location=5) in float)
|
||||
0:12 move second child to first child ( temp int)
|
||||
0:12 ii: direct index for structure ( temp int)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 6 (const int)
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 clip0: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:? 'clip0' (layout( location=0) in float)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 clip1: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:? 'clip1' (layout( location=1) in float)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 cull0: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 2 (const int)
|
||||
0:? 'cull0' (layout( location=2) in float)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 cull1: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 3 (const int)
|
||||
0:? 'cull1' (layout( location=3) in float)
|
||||
0:10 move second child to first child ( temp int)
|
||||
0:10 ii: direct index for structure ( temp int)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 4 (const int)
|
||||
0:? 'ii' ( in int InstanceIndex)
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Function Call: @main(struct-S-f1-f1-f1-f1-f1-f1-i11; ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip7' ( out 1-element array of float ClipDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 clip: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 2-element array of float ClipDistance)
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 clip0: direct index for structure ( temp float)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip7' ( out 1-element array of float ClipDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 clip0: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 2-element array of float ClipDistance)
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:10 clip1: direct index for structure ( temp float)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip7' ( out 1-element array of float ClipDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 clip7: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 2 (const int)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull1' ( out 2-element array of float CullDistance)
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 cull0: direct index for structure ( temp float)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 2 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull5' ( out 1-element array of float CullDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 cull: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 3 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull5' ( out 1-element array of float CullDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 cull2: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 4 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull5' ( out 1-element array of float CullDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 cull5: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 5 (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 clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 6 (const int)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull1' ( out 2-element array of float CullDistance)
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:10 cull1: direct index for structure ( temp float)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 3 (const int)
|
||||
0:10 move second child to first child ( temp int)
|
||||
0:10 ii: direct index for structure ( temp int)
|
||||
0:10 '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 ii: direct index for structure ( temp int)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 4 (const int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
||||
0:? 'clip' (layout( location=0) in float)
|
||||
0:? 'clip0' (layout( location=1) in float)
|
||||
0:? 'clip7' (layout( location=2) in float)
|
||||
0:? 'cull' (layout( location=3) in float)
|
||||
0:? 'cull2' (layout( location=4) in float)
|
||||
0:? 'cull5' (layout( location=5) in float)
|
||||
0:? 'clip0' (layout( location=0) in float)
|
||||
0:? 'clip1' (layout( location=1) in float)
|
||||
0:? 'cull0' (layout( location=2) in float)
|
||||
0:? 'cull1' (layout( location=3) in float)
|
||||
0:? 'ii' ( in int InstanceIndex)
|
||||
0:? '@entryPointOutput_clip1' ( out 2-element array of float ClipDistance)
|
||||
0:? '@entryPointOutput_cull1' ( out 2-element array of float CullDistance)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
@ -143,287 +111,231 @@ Linked vertex stage:
|
||||
|
||||
Shader version: 500
|
||||
0:? Sequence
|
||||
0:12 Function Definition: @main(struct-S-f1-f1-f1-f1-f1-f1-i11; ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Function Parameters:
|
||||
0:12 'ins' ( in structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:10 Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Function Parameters:
|
||||
0:10 'ins' ( in structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:? Sequence
|
||||
0:14 Branch: Return with expression
|
||||
0:14 's' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Function Definition: main( ( temp void)
|
||||
0:12 Function Parameters:
|
||||
0:12 Branch: Return with expression
|
||||
0:12 's' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Function Definition: main( ( temp void)
|
||||
0:10 Function Parameters:
|
||||
0:? Sequence
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 clip: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:? 'clip' (layout( location=0) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 clip0: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:? 'clip0' (layout( location=1) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 clip7: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 2 (const int)
|
||||
0:? 'clip7' (layout( location=2) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 cull: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 3 (const int)
|
||||
0:? 'cull' (layout( location=3) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 cull2: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 4 (const int)
|
||||
0:? 'cull2' (layout( location=4) in float)
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 cull5: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 5 (const int)
|
||||
0:? 'cull5' (layout( location=5) in float)
|
||||
0:12 move second child to first child ( temp int)
|
||||
0:12 ii: direct index for structure ( temp int)
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 6 (const int)
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 clip0: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:? 'clip0' (layout( location=0) in float)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 clip1: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:? 'clip1' (layout( location=1) in float)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 cull0: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 2 (const int)
|
||||
0:? 'cull0' (layout( location=2) in float)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 cull1: direct index for structure ( temp float)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 3 (const int)
|
||||
0:? 'cull1' (layout( location=3) in float)
|
||||
0:10 move second child to first child ( temp int)
|
||||
0:10 ii: direct index for structure ( temp int)
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 4 (const int)
|
||||
0:? 'ii' ( in int InstanceIndex)
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Function Call: @main(struct-S-f1-f1-f1-f1-f1-f1-i11; ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:? 'ins' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip7' ( out 1-element array of float ClipDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 clip: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 2-element array of float ClipDistance)
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 clip0: direct index for structure ( temp float)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip7' ( out 1-element array of float ClipDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 clip0: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 1 (const int)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip1' ( out 2-element array of float ClipDistance)
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:10 clip1: direct index for structure ( temp float)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_clip7' ( out 1-element array of float ClipDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 clip7: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 2 (const int)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull1' ( out 2-element array of float CullDistance)
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 cull0: direct index for structure ( temp float)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 2 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull5' ( out 1-element array of float CullDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 cull: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 3 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull5' ( out 1-element array of float CullDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 cull2: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 4 (const int)
|
||||
0:? Sequence
|
||||
0:12 move second child to first child ( temp float)
|
||||
0:12 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull5' ( out 1-element array of float CullDistance)
|
||||
0:12 Constant:
|
||||
0:12 0 (const int)
|
||||
0:12 cull5: direct index for structure ( temp float)
|
||||
0:12 'flattenTemp' ( temp structure{ temp float clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 5 (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 clip, temp float clip0, temp float clip7, temp float cull, temp float cull2, temp float cull5, temp int ii})
|
||||
0:12 Constant:
|
||||
0:12 6 (const int)
|
||||
0:10 move second child to first child ( temp float)
|
||||
0:10 direct index ( temp float)
|
||||
0:? '@entryPointOutput_cull1' ( out 2-element array of float CullDistance)
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:10 cull1: direct index for structure ( temp float)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 3 (const int)
|
||||
0:10 move second child to first child ( temp int)
|
||||
0:10 ii: direct index for structure ( temp int)
|
||||
0:10 '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 ii: direct index for structure ( temp int)
|
||||
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
|
||||
0:10 Constant:
|
||||
0:10 4 (const int)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
||||
0:? 'clip' (layout( location=0) in float)
|
||||
0:? 'clip0' (layout( location=1) in float)
|
||||
0:? 'clip7' (layout( location=2) in float)
|
||||
0:? 'cull' (layout( location=3) in float)
|
||||
0:? 'cull2' (layout( location=4) in float)
|
||||
0:? 'cull5' (layout( location=5) in float)
|
||||
0:? 'clip0' (layout( location=0) in float)
|
||||
0:? 'clip1' (layout( location=1) in float)
|
||||
0:? 'cull0' (layout( location=2) in float)
|
||||
0:? 'cull1' (layout( location=3) in float)
|
||||
0:? 'ii' ( in int InstanceIndex)
|
||||
0:? '@entryPointOutput_clip1' ( out 2-element array of float ClipDistance)
|
||||
0:? '@entryPointOutput_cull1' ( out 2-element array of float CullDistance)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 87
|
||||
// Id's are bound by 73
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
Capability CullDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 21 26 30 34 38 42 47 59 70 82
|
||||
EntryPoint Vertex 4 "main" 21 26 30 34 39 51 59 68
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 8 "S"
|
||||
MemberName 8(S) 0 "clip"
|
||||
MemberName 8(S) 1 "clip0"
|
||||
MemberName 8(S) 2 "clip7"
|
||||
MemberName 8(S) 3 "cull"
|
||||
MemberName 8(S) 4 "cull2"
|
||||
MemberName 8(S) 5 "cull5"
|
||||
MemberName 8(S) 6 "ii"
|
||||
Name 12 "@main(struct-S-f1-f1-f1-f1-f1-f1-i11;"
|
||||
MemberName 8(S) 0 "clip0"
|
||||
MemberName 8(S) 1 "clip1"
|
||||
MemberName 8(S) 2 "cull0"
|
||||
MemberName 8(S) 3 "cull1"
|
||||
MemberName 8(S) 4 "ii"
|
||||
Name 12 "@main(struct-S-f1-f1-f1-f1-i11;"
|
||||
Name 11 "ins"
|
||||
Name 14 "s"
|
||||
Name 18 "ins"
|
||||
Name 21 "clip"
|
||||
Name 26 "clip0"
|
||||
Name 30 "clip7"
|
||||
Name 34 "cull"
|
||||
Name 38 "cull2"
|
||||
Name 42 "cull5"
|
||||
Name 47 "ii"
|
||||
Name 51 "flattenTemp"
|
||||
Name 52 "param"
|
||||
Name 59 "@entryPointOutput_clip7"
|
||||
Name 70 "@entryPointOutput_cull5"
|
||||
Name 80 "S"
|
||||
MemberName 80(S) 0 "ii"
|
||||
Name 82 "@entryPointOutput"
|
||||
Decorate 21(clip) Location 0
|
||||
Decorate 26(clip0) Location 1
|
||||
Decorate 30(clip7) Location 2
|
||||
Decorate 34(cull) Location 3
|
||||
Decorate 38(cull2) Location 4
|
||||
Decorate 42(cull5) Location 5
|
||||
Decorate 47(ii) BuiltIn InstanceIndex
|
||||
Decorate 59(@entryPointOutput_clip7) BuiltIn ClipDistance
|
||||
Decorate 70(@entryPointOutput_cull5) BuiltIn CullDistance
|
||||
Decorate 82(@entryPointOutput) Location 0
|
||||
Name 21 "clip0"
|
||||
Name 26 "clip1"
|
||||
Name 30 "cull0"
|
||||
Name 34 "cull1"
|
||||
Name 39 "ii"
|
||||
Name 43 "flattenTemp"
|
||||
Name 44 "param"
|
||||
Name 51 "@entryPointOutput_clip1"
|
||||
Name 59 "@entryPointOutput_cull1"
|
||||
Name 66 "S"
|
||||
MemberName 66(S) 0 "ii"
|
||||
Name 68 "@entryPointOutput"
|
||||
Decorate 21(clip0) Location 0
|
||||
Decorate 26(clip1) Location 1
|
||||
Decorate 30(cull0) Location 2
|
||||
Decorate 34(cull1) Location 3
|
||||
Decorate 39(ii) BuiltIn InstanceIndex
|
||||
Decorate 51(@entryPointOutput_clip1) BuiltIn ClipDistance
|
||||
Decorate 59(@entryPointOutput_cull1) BuiltIn CullDistance
|
||||
Decorate 68(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeInt 32 1
|
||||
8(S): TypeStruct 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 7(int)
|
||||
8(S): TypeStruct 6(float) 6(float) 6(float) 6(float) 7(int)
|
||||
9: TypePointer Function 8(S)
|
||||
10: TypeFunction 8(S) 9(ptr)
|
||||
19: 7(int) Constant 0
|
||||
20: TypePointer Input 6(float)
|
||||
21(clip): 20(ptr) Variable Input
|
||||
21(clip0): 20(ptr) Variable Input
|
||||
23: TypePointer Function 6(float)
|
||||
25: 7(int) Constant 1
|
||||
26(clip0): 20(ptr) Variable Input
|
||||
26(clip1): 20(ptr) Variable Input
|
||||
29: 7(int) Constant 2
|
||||
30(clip7): 20(ptr) Variable Input
|
||||
30(cull0): 20(ptr) Variable Input
|
||||
33: 7(int) Constant 3
|
||||
34(cull): 20(ptr) Variable Input
|
||||
34(cull1): 20(ptr) Variable Input
|
||||
37: 7(int) Constant 4
|
||||
38(cull2): 20(ptr) Variable Input
|
||||
41: 7(int) Constant 5
|
||||
42(cull5): 20(ptr) Variable Input
|
||||
45: 7(int) Constant 6
|
||||
46: TypePointer Input 7(int)
|
||||
47(ii): 46(ptr) Variable Input
|
||||
49: TypePointer Function 7(int)
|
||||
55: TypeInt 32 0
|
||||
56: 55(int) Constant 1
|
||||
57: TypeArray 6(float) 56
|
||||
58: TypePointer Output 57
|
||||
59(@entryPointOutput_clip7): 58(ptr) Variable Output
|
||||
62: TypePointer Output 6(float)
|
||||
70(@entryPointOutput_cull5): 58(ptr) Variable Output
|
||||
80(S): TypeStruct 7(int)
|
||||
81: TypePointer Output 80(S)
|
||||
82(@entryPointOutput): 81(ptr) Variable Output
|
||||
85: TypePointer Output 7(int)
|
||||
38: TypePointer Input 7(int)
|
||||
39(ii): 38(ptr) Variable Input
|
||||
41: TypePointer Function 7(int)
|
||||
47: TypeInt 32 0
|
||||
48: 47(int) Constant 2
|
||||
49: TypeArray 6(float) 48
|
||||
50: TypePointer Output 49
|
||||
51(@entryPointOutput_clip1): 50(ptr) Variable Output
|
||||
54: TypePointer Output 6(float)
|
||||
59(@entryPointOutput_cull1): 50(ptr) Variable Output
|
||||
66(S): TypeStruct 7(int)
|
||||
67: TypePointer Output 66(S)
|
||||
68(@entryPointOutput): 67(ptr) Variable Output
|
||||
71: TypePointer Output 7(int)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
18(ins): 9(ptr) Variable Function
|
||||
51(flattenTemp): 9(ptr) Variable Function
|
||||
52(param): 9(ptr) Variable Function
|
||||
22: 6(float) Load 21(clip)
|
||||
43(flattenTemp): 9(ptr) Variable Function
|
||||
44(param): 9(ptr) Variable Function
|
||||
22: 6(float) Load 21(clip0)
|
||||
24: 23(ptr) AccessChain 18(ins) 19
|
||||
Store 24 22
|
||||
27: 6(float) Load 26(clip0)
|
||||
27: 6(float) Load 26(clip1)
|
||||
28: 23(ptr) AccessChain 18(ins) 25
|
||||
Store 28 27
|
||||
31: 6(float) Load 30(clip7)
|
||||
31: 6(float) Load 30(cull0)
|
||||
32: 23(ptr) AccessChain 18(ins) 29
|
||||
Store 32 31
|
||||
35: 6(float) Load 34(cull)
|
||||
35: 6(float) Load 34(cull1)
|
||||
36: 23(ptr) AccessChain 18(ins) 33
|
||||
Store 36 35
|
||||
39: 6(float) Load 38(cull2)
|
||||
40: 23(ptr) AccessChain 18(ins) 37
|
||||
Store 40 39
|
||||
43: 6(float) Load 42(cull5)
|
||||
44: 23(ptr) AccessChain 18(ins) 41
|
||||
Store 44 43
|
||||
48: 7(int) Load 47(ii)
|
||||
50: 49(ptr) AccessChain 18(ins) 45
|
||||
Store 50 48
|
||||
53: 8(S) Load 18(ins)
|
||||
Store 52(param) 53
|
||||
54: 8(S) FunctionCall 12(@main(struct-S-f1-f1-f1-f1-f1-f1-i11;) 52(param)
|
||||
Store 51(flattenTemp) 54
|
||||
60: 23(ptr) AccessChain 51(flattenTemp) 19
|
||||
40: 7(int) Load 39(ii)
|
||||
42: 41(ptr) AccessChain 18(ins) 37
|
||||
Store 42 40
|
||||
45: 8(S) Load 18(ins)
|
||||
Store 44(param) 45
|
||||
46: 8(S) FunctionCall 12(@main(struct-S-f1-f1-f1-f1-i11;) 44(param)
|
||||
Store 43(flattenTemp) 46
|
||||
52: 23(ptr) AccessChain 43(flattenTemp) 19
|
||||
53: 6(float) Load 52
|
||||
55: 54(ptr) AccessChain 51(@entryPointOutput_clip1) 19
|
||||
Store 55 53
|
||||
56: 23(ptr) AccessChain 43(flattenTemp) 25
|
||||
57: 6(float) Load 56
|
||||
58: 54(ptr) AccessChain 51(@entryPointOutput_clip1) 25
|
||||
Store 58 57
|
||||
60: 23(ptr) AccessChain 43(flattenTemp) 29
|
||||
61: 6(float) Load 60
|
||||
63: 62(ptr) AccessChain 59(@entryPointOutput_clip7) 19
|
||||
Store 63 61
|
||||
64: 23(ptr) AccessChain 51(flattenTemp) 25
|
||||
65: 6(float) Load 64
|
||||
66: 62(ptr) AccessChain 59(@entryPointOutput_clip7) 19
|
||||
Store 66 65
|
||||
67: 23(ptr) AccessChain 51(flattenTemp) 29
|
||||
68: 6(float) Load 67
|
||||
69: 62(ptr) AccessChain 59(@entryPointOutput_clip7) 19
|
||||
Store 69 68
|
||||
71: 23(ptr) AccessChain 51(flattenTemp) 33
|
||||
72: 6(float) Load 71
|
||||
73: 62(ptr) AccessChain 70(@entryPointOutput_cull5) 19
|
||||
Store 73 72
|
||||
74: 23(ptr) AccessChain 51(flattenTemp) 37
|
||||
75: 6(float) Load 74
|
||||
76: 62(ptr) AccessChain 70(@entryPointOutput_cull5) 19
|
||||
Store 76 75
|
||||
77: 23(ptr) AccessChain 51(flattenTemp) 41
|
||||
78: 6(float) Load 77
|
||||
79: 62(ptr) AccessChain 70(@entryPointOutput_cull5) 19
|
||||
Store 79 78
|
||||
83: 49(ptr) AccessChain 51(flattenTemp) 45
|
||||
84: 7(int) Load 83
|
||||
86: 85(ptr) AccessChain 82(@entryPointOutput) 19
|
||||
Store 86 84
|
||||
62: 54(ptr) AccessChain 59(@entryPointOutput_cull1) 19
|
||||
Store 62 61
|
||||
63: 23(ptr) AccessChain 43(flattenTemp) 33
|
||||
64: 6(float) Load 63
|
||||
65: 54(ptr) AccessChain 59(@entryPointOutput_cull1) 25
|
||||
Store 65 64
|
||||
69: 41(ptr) AccessChain 43(flattenTemp) 37
|
||||
70: 7(int) Load 69
|
||||
72: 71(ptr) AccessChain 68(@entryPointOutput) 19
|
||||
Store 72 70
|
||||
Return
|
||||
FunctionEnd
|
||||
12(@main(struct-S-f1-f1-f1-f1-f1-f1-i11;): 8(S) Function None 10
|
||||
12(@main(struct-S-f1-f1-f1-f1-i11;): 8(S) Function None 10
|
||||
11(ins): 9(ptr) FunctionParameter
|
||||
13: Label
|
||||
14(s): 9(ptr) Variable Function
|
||||
|
||||
23
Test/hlsl.clipdistance-6.vert
Normal file
23
Test/hlsl.clipdistance-6.vert
Normal file
@ -0,0 +1,23 @@
|
||||
struct VS_OUTPUT {
|
||||
float4 Position : SV_Position;
|
||||
float4 clip0 : SV_ClipDistance0; // multiple semantic IDs, two vec4s (no extra packing)
|
||||
float4 clip1 : SV_ClipDistance1; // ...
|
||||
};
|
||||
|
||||
VS_OUTPUT main()
|
||||
{
|
||||
VS_OUTPUT Output;
|
||||
Output.Position = 0;
|
||||
|
||||
Output.clip0.x = 0;
|
||||
Output.clip0.y = 1;
|
||||
Output.clip0.z = 2;
|
||||
Output.clip0.w = 3;
|
||||
|
||||
Output.clip1.x = 4;
|
||||
Output.clip1.y = 5;
|
||||
Output.clip1.z = 6;
|
||||
Output.clip1.w = 7;
|
||||
|
||||
return Output;
|
||||
}
|
||||
23
Test/hlsl.clipdistance-7.vert
Normal file
23
Test/hlsl.clipdistance-7.vert
Normal file
@ -0,0 +1,23 @@
|
||||
struct VS_OUTPUT {
|
||||
float4 Position : SV_Position;
|
||||
float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+vec4 (skip)
|
||||
float4 clip1 : SV_ClipDistance1; // ...
|
||||
};
|
||||
|
||||
VS_OUTPUT main()
|
||||
{
|
||||
VS_OUTPUT Output;
|
||||
Output.Position = 0;
|
||||
|
||||
Output.clip0.x = 0;
|
||||
Output.clip0.y = 1;
|
||||
Output.clip0.z = 2;
|
||||
// Position 3 is skipped
|
||||
|
||||
Output.clip1.x = 4;
|
||||
Output.clip1.y = 5;
|
||||
Output.clip1.z = 6;
|
||||
Output.clip1.w = 7;
|
||||
|
||||
return Output;
|
||||
}
|
||||
20
Test/hlsl.clipdistance-8.vert
Normal file
20
Test/hlsl.clipdistance-8.vert
Normal file
@ -0,0 +1,20 @@
|
||||
struct VS_OUTPUT {
|
||||
float4 Position : SV_Position;
|
||||
float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+float (pack)
|
||||
float clip1 : SV_ClipDistance1; // ...
|
||||
};
|
||||
|
||||
VS_OUTPUT main()
|
||||
{
|
||||
VS_OUTPUT Output;
|
||||
Output.Position = 0;
|
||||
|
||||
Output.clip0.x = 0;
|
||||
Output.clip0.y = 1;
|
||||
Output.clip0.z = 2;
|
||||
|
||||
// Position 3 is packed from clip1's float
|
||||
Output.clip1 = 3;
|
||||
|
||||
return Output;
|
||||
}
|
||||
19
Test/hlsl.clipdistance-9.vert
Normal file
19
Test/hlsl.clipdistance-9.vert
Normal file
@ -0,0 +1,19 @@
|
||||
struct VS_OUTPUT {
|
||||
float4 Position : SV_Position;
|
||||
};
|
||||
|
||||
// Test packing 0 and 1 semantics into single array[4] output, from out fn params.
|
||||
VS_OUTPUT main(out float3 clip0 : SV_ClipDistance0, out float clip1 : SV_ClipDistance1)
|
||||
{
|
||||
VS_OUTPUT Output;
|
||||
Output.Position = 0;
|
||||
|
||||
clip0.x = 0;
|
||||
clip0.y = 1;
|
||||
clip0.z = 2;
|
||||
|
||||
// Position 3 is packed from clip1's float
|
||||
clip1 = 3;
|
||||
|
||||
return Output;
|
||||
}
|
||||
@ -1,10 +1,8 @@
|
||||
struct S {
|
||||
float clip : SV_ClipDistance;
|
||||
float clip0 : SV_ClipDistance0;
|
||||
float clip7 : SV_ClipDistance7;
|
||||
float cull : SV_CullDistance;
|
||||
float cull2 : SV_CullDistance2;
|
||||
float cull5 : SV_CullDistance5;
|
||||
float clip1 : SV_ClipDistance1;
|
||||
float cull0 : SV_CullDistance0;
|
||||
float cull1 : SV_CullDistance1;
|
||||
int ii : SV_InstanceID;
|
||||
};
|
||||
|
||||
|
||||
@ -102,6 +102,10 @@ INSTANTIATE_TEST_CASE_P(
|
||||
{"hlsl.clipdistance-3.vert", "main"},
|
||||
{"hlsl.clipdistance-4.vert", "main"},
|
||||
{"hlsl.clipdistance-5.vert", "main"},
|
||||
{"hlsl.clipdistance-6.vert", "main"},
|
||||
{"hlsl.clipdistance-7.vert", "main"},
|
||||
{"hlsl.clipdistance-8.vert", "main"},
|
||||
{"hlsl.clipdistance-9.vert", "main"},
|
||||
{"hlsl.comparison.vec.frag", "main"},
|
||||
{"hlsl.conditional.frag", "PixelShaderFunction"},
|
||||
{"hlsl.constantbuffer.frag", "main"},
|
||||
|
||||
@ -65,7 +65,9 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
|
||||
sourceEntryPointName(sourceEntryPointName),
|
||||
entryPointFunction(nullptr),
|
||||
entryPointFunctionBody(nullptr),
|
||||
gsStreamOutput(nullptr)
|
||||
gsStreamOutput(nullptr),
|
||||
clipDistanceOutput(nullptr),
|
||||
cullDistanceOutput(nullptr)
|
||||
{
|
||||
globalUniformDefaults.clear();
|
||||
globalUniformDefaults.layoutMatrix = ElmRowMajor;
|
||||
@ -78,6 +80,9 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
|
||||
globalInputDefaults.clear();
|
||||
globalOutputDefaults.clear();
|
||||
|
||||
clipSemanticNSize.fill(0);
|
||||
cullSemanticNSize.fill(0);
|
||||
|
||||
// "Shaders in the transform
|
||||
// feedback capturing mode have an initial global default of
|
||||
// layout(xfb_buffer = 0) out;"
|
||||
@ -1513,6 +1518,12 @@ void HlslParseContext::trackLinkage(TSymbol& symbol)
|
||||
}
|
||||
|
||||
|
||||
// Returns true if the builtin is a clip or cull distance variable.
|
||||
bool HlslParseContext::isClipOrCullDistance(TBuiltInVariable builtIn)
|
||||
{
|
||||
return builtIn == EbvClipDistance || builtIn == EbvCullDistance;
|
||||
}
|
||||
|
||||
// Some types require fixed array sizes in SPIR-V, but can be scalars or
|
||||
// arrays of sizes SPIR-V doesn't allow. For example, tessellation factors.
|
||||
// This creates the right size. A conversion is performed when the internal
|
||||
@ -1526,24 +1537,6 @@ void HlslParseContext::fixBuiltInIoType(TType& type)
|
||||
case EbvTessLevelOuter: requiredArraySize = 4; break;
|
||||
case EbvTessLevelInner: requiredArraySize = 2; break;
|
||||
|
||||
case EbvClipDistance:
|
||||
case EbvCullDistance:
|
||||
{
|
||||
// ClipDistance and CullDistance are handled specially in the entry point output
|
||||
// copy algorithm, because they may need to be unpacked from components of vectors
|
||||
// (or a scalar) into a float array. Here, we make the array the right size and type,
|
||||
// which is the number of components per vector times the array size (or 1 if not
|
||||
// an array). The copy itself is handled in assignClipCullDistance().
|
||||
requiredArraySize = type.getVectorSize() * (type.isArray() ? type.getOuterArraySize() : 1);
|
||||
|
||||
TType clipCullType(EbtFloat, type.getQualifier().storage, 1);
|
||||
|
||||
clipCullType.getQualifier() = type.getQualifier();
|
||||
type.shallowCopy(clipCullType);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case EbvTessCoord:
|
||||
{
|
||||
// tesscoord is always a vec3 for the IO variable, no matter the shader's
|
||||
@ -1556,6 +1549,14 @@ void HlslParseContext::fixBuiltInIoType(TType& type)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if (isClipOrCullDistance(type)) {
|
||||
if (type.getQualifier().builtIn == EbvClipDistance) {
|
||||
clipSemanticNSize[type.getQualifier().layoutLocation] = type.getVectorSize();
|
||||
} else {
|
||||
cullSemanticNSize[type.getQualifier().layoutLocation] = type.getVectorSize();
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2020,7 +2021,11 @@ TIntermNode* HlslParseContext::transformEntryPoint(const TSourceLoc& loc, TFunct
|
||||
split(variable);
|
||||
}
|
||||
|
||||
assignToInterface(variable);
|
||||
// For clip and cull distance, multiple output variables potentially get merged
|
||||
// into one in assignClipCullDistance. That code in assignClipCullDistance
|
||||
// handles the interface logic, so we avoid it here in that case.
|
||||
if (!isClipOrCullDistance(variable.getType()))
|
||||
assignToInterface(variable);
|
||||
};
|
||||
if (entryPointOutput != nullptr)
|
||||
makeVariableInOut(*entryPointOutput);
|
||||
@ -2350,12 +2355,98 @@ void HlslParseContext::handleFunctionArgument(TFunction* function,
|
||||
//
|
||||
// The values are assigned to sequential members of the output array. The inner dimension
|
||||
// is vector components. The outer dimension is array elements.
|
||||
TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc, TOperator op,
|
||||
TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc, TOperator op, int semanticId,
|
||||
TIntermTyped* left, TIntermTyped* right)
|
||||
{
|
||||
// ***
|
||||
// TODO: this does not yet handle the index coming from the semantic's ID, as in SV_ClipDistance[012345...]
|
||||
// ***
|
||||
TVariable** clipCullVar = nullptr;
|
||||
|
||||
const TBuiltInVariable builtInType = left->getQualifier().builtIn;
|
||||
|
||||
// array sizes, or 1 if it's not an array:
|
||||
const int rhsArraySize = (right->getType().isArray() ? right->getType().getOuterArraySize() : 1);
|
||||
// vector sizes:
|
||||
const int rhsVectorSize = right->getType().getVectorSize();
|
||||
|
||||
decltype(clipSemanticNSize)* semanticNSize = nullptr;
|
||||
|
||||
// Refer to either the clip or the cull distance, depending on semantic.
|
||||
switch (builtInType) {
|
||||
case EbvClipDistance:
|
||||
clipCullVar = &clipDistanceOutput;
|
||||
semanticNSize = &clipSemanticNSize;
|
||||
break;
|
||||
case EbvCullDistance:
|
||||
clipCullVar = &cullDistanceOutput;
|
||||
semanticNSize = &cullSemanticNSize;
|
||||
break;
|
||||
|
||||
// called invalidly: we expected a clip or a cull distance.
|
||||
// static compile time problem: should not happen.
|
||||
default: assert(0); return nullptr;
|
||||
}
|
||||
|
||||
// This is the offset in the destination array of a given semantic's data
|
||||
std::array<int, maxClipCullRegs> semanticOffset;
|
||||
|
||||
// Calculate offset of variable of semantic N in destination array
|
||||
int arrayLoc = 0;
|
||||
int vecItems = 0;
|
||||
|
||||
for (int x = 0; x < maxClipCullRegs; ++x) {
|
||||
// See if we overflowed the vec4 packing
|
||||
if ((vecItems + (*semanticNSize)[x]) > 4) {
|
||||
arrayLoc = (arrayLoc + 3) & (~0x3); // round up to next multiple of 4
|
||||
vecItems = 0;
|
||||
}
|
||||
|
||||
semanticOffset[x] = arrayLoc;
|
||||
vecItems += (*semanticNSize)[x];
|
||||
arrayLoc += (*semanticNSize)[x];
|
||||
}
|
||||
|
||||
|
||||
// If we haven't created the output arleady, create it now.
|
||||
if (*clipCullVar == nullptr) {
|
||||
// ClipDistance and CullDistance are handled specially in the entry point output
|
||||
// copy algorithm, because they may need to be unpacked from components of vectors
|
||||
// (or a scalar) into a float array. Here, we make the array the right size and type,
|
||||
// which depends on the incoming data, which has several potential dimensions:
|
||||
// Semantic ID
|
||||
// vector size
|
||||
// array size
|
||||
// Of those, semantic ID and array size cannot appear simultaneously.
|
||||
|
||||
const int requiredArraySize = arrayLoc * rhsArraySize;
|
||||
|
||||
TType clipCullType(EbtFloat, left->getType().getQualifier().storage, 1);
|
||||
clipCullType.getQualifier() = left->getType().getQualifier();
|
||||
|
||||
// Create required array dimension
|
||||
TArraySizes arraySizes;
|
||||
arraySizes.addInnerSize(requiredArraySize);
|
||||
clipCullType.newArraySizes(arraySizes);
|
||||
|
||||
// Obtain symbol name: we'll use that for the symbol we introduce.
|
||||
TIntermSymbol* sym = left->getAsSymbolNode();
|
||||
assert(sym != nullptr);
|
||||
|
||||
// We are moving the semantic ID from the layout location, so it is no longer needed or
|
||||
// desired there.
|
||||
clipCullType.getQualifier().layoutLocation = TQualifier::layoutLocationEnd;
|
||||
|
||||
// Create variable and track its linkage
|
||||
*clipCullVar = makeInternalVariable(sym->getName().c_str(), clipCullType);
|
||||
|
||||
trackLinkage(**clipCullVar);
|
||||
}
|
||||
|
||||
// Create symbol for the clip or cull variable.
|
||||
left = intermediate.addSymbol(**clipCullVar);
|
||||
|
||||
// array sizes, or 1 if it's not an array:
|
||||
const int lhsArraySize = (left->getType().isArray() ? left->getType().getOuterArraySize() : 1);
|
||||
// vector sizes:
|
||||
const int lhsVectorSize = left->getType().getVectorSize();
|
||||
|
||||
// left has got to be an array of scalar floats, per SPIR-V semantics.
|
||||
// fixBuiltInIoType() should have handled that upstream.
|
||||
@ -2363,13 +2454,6 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
||||
assert(left->getType().getVectorSize() == 1);
|
||||
assert(left->getType().getBasicType() == EbtFloat);
|
||||
|
||||
// array sizes, or 1 if it's not an array:
|
||||
const int lhsArraySize = (left->getType().isArray() ? left->getType().getOuterArraySize() : 1);
|
||||
const int rhsArraySize = (right->getType().isArray() ? right->getType().getOuterArraySize() : 1);
|
||||
// vector sizes:
|
||||
const int lhsVectorSize = left->getType().getVectorSize();
|
||||
const int rhsVectorSize = right->getType().getVectorSize();
|
||||
|
||||
// We may be creating multiple sub-assignments. This is an aggregate to hold them.
|
||||
// TODO: it would be possible to be clever sometimes and avoid the sequence node if not needed.
|
||||
TIntermAggregate* assignList = nullptr;
|
||||
@ -2386,7 +2470,8 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
||||
|
||||
// We are going to copy each component of the right (per array element if indicated) to sequential
|
||||
// array elements of the left. This tracks the lhs element we're writing to as we go along.
|
||||
int lhsArrayPos = 0;
|
||||
// We may be starting in the middle - e.g, for a non-zero semantic ID calculated above.
|
||||
int lhsArrayPos = semanticOffset[semanticId];
|
||||
|
||||
// Loop through every component of every element of the RHS, and copy to LHS elements in turn.
|
||||
for (int rhsArrayPos = 0; rhsArrayPos < rhsArraySize; ++rhsArrayPos) {
|
||||
@ -2477,9 +2562,10 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op
|
||||
// isn't, we fall back to a member-wise copy.
|
||||
if (! isFlattenLeft && ! isFlattenRight && !isSplitLeft && !isSplitRight) {
|
||||
// Clip and cull distance requires more processing. See comment above assignClipCullDistance.
|
||||
const TBuiltInVariable leftBuiltIn = left->getType().getQualifier().builtIn;
|
||||
if (leftBuiltIn == EbvClipDistance || leftBuiltIn == EbvCullDistance)
|
||||
return assignClipCullDistance(loc, op, left, right);
|
||||
if (isClipOrCullDistance(left->getType())) {
|
||||
const int semanticId = left->getType().getQualifier().layoutLocation;
|
||||
return assignClipCullDistance(loc, op, semanticId, left, right);
|
||||
}
|
||||
|
||||
return intermediate.addAssign(op, left, right, loc);
|
||||
}
|
||||
@ -2652,14 +2738,20 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op
|
||||
TIntermTyped* subSplitRight = isSplitRight ? getMember(false, right, member, splitRight, memberR)
|
||||
: subRight;
|
||||
|
||||
const TBuiltInVariable leftBuiltIn = subSplitLeft->getType().getQualifier().builtIn;
|
||||
|
||||
if (leftBuiltIn == EbvClipDistance || leftBuiltIn == EbvCullDistance) {
|
||||
|
||||
if (isClipOrCullDistance(subSplitLeft->getType())) {
|
||||
// Clip and cull distance builtin assignment is complex in its own right, and is handled in
|
||||
// a separate function dedicated to that task. See comment above assignClipCullDistance;
|
||||
assignList = intermediate.growAggregate(assignList, assignClipCullDistance(loc, op, subSplitLeft,
|
||||
subSplitRight), loc);
|
||||
|
||||
// Since all clip/cull semantics boil down to the same builtin type, we need to get the
|
||||
// semantic ID from the dereferenced type's layout location, to avoid an N-1 mapping.
|
||||
const TType derefType(left->getType(), member);
|
||||
const int semanticId = derefType.getQualifier().layoutLocation;
|
||||
|
||||
TIntermAggregate* clipCullAssign = assignClipCullDistance(loc, op, semanticId,
|
||||
subSplitLeft, subSplitRight);
|
||||
|
||||
assignList = intermediate.growAggregate(assignList, clipCullAssign, loc);
|
||||
|
||||
} else if (!isFlattenLeft && !isFlattenRight &&
|
||||
!typeL.containsBuiltInInterstageIO(language) &&
|
||||
!typeR.containsBuiltInInterstageIO(language)) {
|
||||
@ -5307,11 +5399,23 @@ TFunction* HlslParseContext::makeConstructorCall(const TSourceLoc& loc, const TT
|
||||
void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, TBuiltInVariable builtIn,
|
||||
const TString& upperCase)
|
||||
{
|
||||
const auto getSemanticNumber = [](const TString& semantic) -> unsigned int {
|
||||
// Parse and return semantic number. If limit is 0, it will be ignored. Otherwise, if the parsed
|
||||
// semantic number is >= limit, errorMsg is issued and 0 is returned.
|
||||
// TODO: it would be nicer if limit and errorMsg had default parameters, but some compilers don't yet
|
||||
// accept those in lambda functions.
|
||||
const auto getSemanticNumber = [this, loc](const TString& semantic, unsigned int limit, const char* errorMsg) -> unsigned int {
|
||||
size_t pos = semantic.find_last_not_of("0123456789");
|
||||
if (pos == std::string::npos)
|
||||
return 0u;
|
||||
return (unsigned int)atoi(semantic.c_str() + pos + 1);
|
||||
|
||||
unsigned int semanticNum = (unsigned int)atoi(semantic.c_str() + pos + 1);
|
||||
|
||||
if (limit != 0 && semanticNum >= limit) {
|
||||
error(loc, errorMsg, semantic.c_str(), "");
|
||||
return 0u;
|
||||
}
|
||||
|
||||
return semanticNum;
|
||||
};
|
||||
|
||||
switch(builtIn) {
|
||||
@ -5319,8 +5423,14 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, TBu
|
||||
// Get location numbers from fragment outputs, instead of
|
||||
// auto-assigning them.
|
||||
if (language == EShLangFragment && upperCase.compare(0, 9, "SV_TARGET") == 0) {
|
||||
qualifier.layoutLocation = getSemanticNumber(upperCase);
|
||||
qualifier.layoutLocation = getSemanticNumber(upperCase, 0, nullptr);
|
||||
nextOutLocation = std::max(nextOutLocation, qualifier.layoutLocation + 1u);
|
||||
} else if (upperCase.compare(0, 15, "SV_CLIPDISTANCE") == 0) {
|
||||
builtIn = EbvClipDistance;
|
||||
qualifier.layoutLocation = getSemanticNumber(upperCase, maxClipCullRegs, "invalid clip semantic");
|
||||
} else if (upperCase.compare(0, 15, "SV_CULLDISTANCE") == 0) {
|
||||
builtIn = EbvCullDistance;
|
||||
qualifier.layoutLocation = getSemanticNumber(upperCase, maxClipCullRegs, "invalid cull semantic");
|
||||
}
|
||||
break;
|
||||
case EbvPosition:
|
||||
@ -8748,6 +8858,9 @@ void HlslParseContext::correctInput(TQualifier& qualifier)
|
||||
qualifier.sample = false;
|
||||
}
|
||||
|
||||
if (isClipOrCullDistance(qualifier))
|
||||
qualifier.layoutLocation = TQualifier::layoutLocationEnd;
|
||||
|
||||
qualifier.clearStreamLayout();
|
||||
qualifier.clearXfbLayout();
|
||||
|
||||
|
||||
@ -39,6 +39,8 @@
|
||||
#include "../glslang/MachineIndependent/parseVersions.h"
|
||||
#include "../glslang/MachineIndependent/ParseHelper.h"
|
||||
|
||||
#include <array>
|
||||
|
||||
namespace glslang {
|
||||
|
||||
class TAttributeMap; // forward declare
|
||||
@ -91,7 +93,7 @@ public:
|
||||
TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right);
|
||||
TIntermTyped* handleAssignToMatrixSwizzle(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right);
|
||||
TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermTyped*);
|
||||
TIntermAggregate* assignClipCullDistance(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right);
|
||||
TIntermAggregate* assignClipCullDistance(const TSourceLoc&, TOperator, int semanticId, TIntermTyped* left, TIntermTyped* right);
|
||||
void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments);
|
||||
void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments);
|
||||
void decomposeStructBufferMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments);
|
||||
@ -309,6 +311,10 @@ protected:
|
||||
// shader is entirely compiled)
|
||||
void removeUnusedStructBufferCounters();
|
||||
|
||||
static bool isClipOrCullDistance(TBuiltInVariable);
|
||||
static bool isClipOrCullDistance(const TQualifier& qual) { return isClipOrCullDistance(qual.builtIn); }
|
||||
static bool isClipOrCullDistance(const TType& type) { return isClipOrCullDistance(type.getQualifier()); }
|
||||
|
||||
// Pass through to base class after remembering builtin mappings.
|
||||
using TParseContextBase::trackLinkage;
|
||||
void trackLinkage(TSymbol& variable) override;
|
||||
@ -432,6 +438,13 @@ protected:
|
||||
|
||||
TVariable* gsStreamOutput; // geometry shader stream outputs, for emit (Append method)
|
||||
|
||||
TVariable* clipDistanceOutput; // synthesized clip distance output variable (shader might have >1)
|
||||
TVariable* cullDistanceOutput; // synthesized cull distance output variable (shader might have >1)
|
||||
|
||||
static const int maxClipCullRegs = 2;
|
||||
std::array<int, maxClipCullRegs> clipSemanticNSize; // vector, indexed by clip semantic ID
|
||||
std::array<int, maxClipCullRegs> cullSemanticNSize; // vector, indexed by cull semantic ID
|
||||
|
||||
// This tracks the first (mip level) argument to the .mips[][] operator. Since this can be nested as
|
||||
// in tx.mips[tx.mips[0][1].x][2], we need a stack. We also track the TSourceLoc for error reporting
|
||||
// purposes.
|
||||
|
||||
@ -420,32 +420,6 @@ void HlslScanContext::fillInKeywordMap()
|
||||
}
|
||||
|
||||
(*SemanticMap)["SV_POSITION"] = EbvPosition;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE0"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE1"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE2"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE3"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE4"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE5"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE6"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE7"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE8"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE9"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE10"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CLIPDISTANCE11"] = EbvClipDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE0"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE1"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE2"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE3"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE4"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE5"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE6"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE7"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE8"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE9"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE10"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_CULLDISTANCE11"] = EbvCullDistance;
|
||||
(*SemanticMap)["SV_VERTEXID"] = EbvVertexIndex;
|
||||
(*SemanticMap)["SV_VIEWPORTARRAYINDEX"] = EbvViewportIndex;
|
||||
(*SemanticMap)["SV_TESSFACTOR"] = EbvTessLevelOuter;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user