mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
parent
82e95a3aa5
commit
eb71cdd5bb
163
Test/baseResults/hlsl.preprocessor.frag.out
Normal file
163
Test/baseResults/hlsl.preprocessor.frag.out
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
hlsl.preprocessor.frag
|
||||||
|
Shader version: 500
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:9 Function Definition: @main(vf4; ( temp 4-component vector of float)
|
||||||
|
0:9 Function Parameters:
|
||||||
|
0:9 'input' ( in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:10 'tex' ( temp 4-component vector of float)
|
||||||
|
0:10 texture ( temp 4-component vector of float)
|
||||||
|
0:10 Construct combined texture-sampler ( temp sampler2D)
|
||||||
|
0:10 'test_texture' ( uniform texture2D)
|
||||||
|
0:10 'test_texture_ss' ( uniform sampler)
|
||||||
|
0:10 vector swizzle ( temp 2-component vector of float)
|
||||||
|
0:10 vector swizzle ( temp 2-component vector of float)
|
||||||
|
0:10 'input' ( in 4-component vector of float)
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 0 (const int)
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 1 (const int)
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 0 (const int)
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 1 (const int)
|
||||||
|
0:11 Branch: Return with expression
|
||||||
|
0:11 'tex' ( temp 4-component vector of float)
|
||||||
|
0:9 Function Definition: main( ( temp void)
|
||||||
|
0:9 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:9 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? 'input' ( temp 4-component vector of float)
|
||||||
|
0:? 'input' (layout( location=0) in 4-component vector of float)
|
||||||
|
0:9 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:9 Function Call: @main(vf4; ( temp 4-component vector of float)
|
||||||
|
0:? 'input' ( temp 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'test_texture' ( uniform texture2D)
|
||||||
|
0:? 'test_texture_ss' ( uniform sampler)
|
||||||
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:? 'input' (layout( location=0) in 4-component vector of float)
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 500
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:9 Function Definition: @main(vf4; ( temp 4-component vector of float)
|
||||||
|
0:9 Function Parameters:
|
||||||
|
0:9 'input' ( in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:10 'tex' ( temp 4-component vector of float)
|
||||||
|
0:10 texture ( temp 4-component vector of float)
|
||||||
|
0:10 Construct combined texture-sampler ( temp sampler2D)
|
||||||
|
0:10 'test_texture' ( uniform texture2D)
|
||||||
|
0:10 'test_texture_ss' ( uniform sampler)
|
||||||
|
0:10 vector swizzle ( temp 2-component vector of float)
|
||||||
|
0:10 vector swizzle ( temp 2-component vector of float)
|
||||||
|
0:10 'input' ( in 4-component vector of float)
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 0 (const int)
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 1 (const int)
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 0 (const int)
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 1 (const int)
|
||||||
|
0:11 Branch: Return with expression
|
||||||
|
0:11 'tex' ( temp 4-component vector of float)
|
||||||
|
0:9 Function Definition: main( ( temp void)
|
||||||
|
0:9 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:9 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? 'input' ( temp 4-component vector of float)
|
||||||
|
0:? 'input' (layout( location=0) in 4-component vector of float)
|
||||||
|
0:9 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:9 Function Call: @main(vf4; ( temp 4-component vector of float)
|
||||||
|
0:? 'input' ( temp 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'test_texture' ( uniform texture2D)
|
||||||
|
0:? 'test_texture_ss' ( uniform sampler)
|
||||||
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:? 'input' (layout( location=0) in 4-component vector of float)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 40
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main" 33 36
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 500
|
||||||
|
Name 4 "main"
|
||||||
|
Name 11 "@main(vf4;"
|
||||||
|
Name 10 "input"
|
||||||
|
Name 13 "tex"
|
||||||
|
Name 16 "test_texture"
|
||||||
|
Name 20 "test_texture_ss"
|
||||||
|
Name 31 "input"
|
||||||
|
Name 33 "input"
|
||||||
|
Name 36 "@entryPointOutput"
|
||||||
|
Name 37 "param"
|
||||||
|
Decorate 16(test_texture) DescriptorSet 0
|
||||||
|
Decorate 20(test_texture_ss) DescriptorSet 0
|
||||||
|
Decorate 33(input) Location 0
|
||||||
|
Decorate 36(@entryPointOutput) Location 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
9: TypeFunction 7(fvec4) 8(ptr)
|
||||||
|
14: TypeImage 6(float) 2D sampled format:Unknown
|
||||||
|
15: TypePointer UniformConstant 14
|
||||||
|
16(test_texture): 15(ptr) Variable UniformConstant
|
||||||
|
18: TypeSampler
|
||||||
|
19: TypePointer UniformConstant 18
|
||||||
|
20(test_texture_ss): 19(ptr) Variable UniformConstant
|
||||||
|
22: TypeSampledImage 14
|
||||||
|
24: TypeVector 6(float) 2
|
||||||
|
32: TypePointer Input 7(fvec4)
|
||||||
|
33(input): 32(ptr) Variable Input
|
||||||
|
35: TypePointer Output 7(fvec4)
|
||||||
|
36(@entryPointOutput): 35(ptr) Variable Output
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
31(input): 8(ptr) Variable Function
|
||||||
|
37(param): 8(ptr) Variable Function
|
||||||
|
34: 7(fvec4) Load 33(input)
|
||||||
|
Store 31(input) 34
|
||||||
|
38: 7(fvec4) Load 31(input)
|
||||||
|
Store 37(param) 38
|
||||||
|
39: 7(fvec4) FunctionCall 11(@main(vf4;) 37(param)
|
||||||
|
Store 36(@entryPointOutput) 39
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
11(@main(vf4;): 7(fvec4) Function None 9
|
||||||
|
10(input): 8(ptr) FunctionParameter
|
||||||
|
12: Label
|
||||||
|
13(tex): 8(ptr) Variable Function
|
||||||
|
17: 14 Load 16(test_texture)
|
||||||
|
21: 18 Load 20(test_texture_ss)
|
||||||
|
23: 22 SampledImage 17 21
|
||||||
|
25: 7(fvec4) Load 10(input)
|
||||||
|
26: 24(fvec2) VectorShuffle 25 25 0 1
|
||||||
|
27: 7(fvec4) ImageSampleImplicitLod 23 26
|
||||||
|
Store 13(tex) 27
|
||||||
|
28: 7(fvec4) Load 13(tex)
|
||||||
|
ReturnValue 28
|
||||||
|
FunctionEnd
|
374
Test/baseResults/hlsl.semantic-1.vert.out
Normal file
374
Test/baseResults/hlsl.semantic-1.vert.out
Normal file
@ -0,0 +1,374 @@
|
|||||||
|
hlsl.semantic-1.vert
|
||||||
|
Shader version: 500
|
||||||
|
0:? Sequence
|
||||||
|
0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Function Parameters:
|
||||||
|
0:16 'v' ( in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:18 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:18 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 'v' ( in 4-component vector of float)
|
||||||
|
0:19 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:19 UV0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:? Construct vec2 ( temp 2-component vector of float)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 'v' ( in 4-component vector of float)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 'v' ( in 4-component vector of float)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:20 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:20 UV1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 2 (const int)
|
||||||
|
0:? Construct vec2 ( temp 2-component vector of float)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 'v' ( in 4-component vector of float)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 'v' ( in 4-component vector of float)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:21 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:21 UV2: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:21 Constant:
|
||||||
|
0:21 3 (const int)
|
||||||
|
0:? Construct vec2 ( temp 2-component vector of float)
|
||||||
|
0:21 direct index ( temp float)
|
||||||
|
0:21 'v' ( in 4-component vector of float)
|
||||||
|
0:21 Constant:
|
||||||
|
0:21 2 (const int)
|
||||||
|
0:21 direct index ( temp float)
|
||||||
|
0:21 'v' ( in 4-component vector of float)
|
||||||
|
0:21 Constant:
|
||||||
|
0:21 2 (const int)
|
||||||
|
0:22 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:22 UV3: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:22 Constant:
|
||||||
|
0:22 4 (const int)
|
||||||
|
0:? Construct vec2 ( temp 2-component vector of float)
|
||||||
|
0:22 direct index ( temp float)
|
||||||
|
0:22 'v' ( in 4-component vector of float)
|
||||||
|
0:22 Constant:
|
||||||
|
0:22 3 (const int)
|
||||||
|
0:22 direct index ( temp float)
|
||||||
|
0:22 'v' ( in 4-component vector of float)
|
||||||
|
0:22 Constant:
|
||||||
|
0:22 3 (const int)
|
||||||
|
0:23 Branch: Return with expression
|
||||||
|
0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Function Definition: main( ( temp void)
|
||||||
|
0:16 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:16 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? 'v' ( temp 4-component vector of float)
|
||||||
|
0:? 'v' (layout( location=0) in 4-component vector of float)
|
||||||
|
0:16 Sequence
|
||||||
|
0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:? 'v' ( temp 4-component vector of float)
|
||||||
|
0:16 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:16 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
|
||||||
|
0:16 UV0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 1 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
|
||||||
|
0:16 UV1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 2 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
|
||||||
|
0:16 UV2: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 3 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
|
||||||
|
0:16 UV3: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 4 (const int)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
|
||||||
|
0:? 'v' (layout( location=0) in 4-component vector of float)
|
||||||
|
|
||||||
|
|
||||||
|
Linked vertex stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 500
|
||||||
|
0:? Sequence
|
||||||
|
0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Function Parameters:
|
||||||
|
0:16 'v' ( in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:18 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:18 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 'v' ( in 4-component vector of float)
|
||||||
|
0:19 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:19 UV0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:? Construct vec2 ( temp 2-component vector of float)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 'v' ( in 4-component vector of float)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 'v' ( in 4-component vector of float)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:20 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:20 UV1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 2 (const int)
|
||||||
|
0:? Construct vec2 ( temp 2-component vector of float)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 'v' ( in 4-component vector of float)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 'v' ( in 4-component vector of float)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:21 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:21 UV2: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:21 Constant:
|
||||||
|
0:21 3 (const int)
|
||||||
|
0:? Construct vec2 ( temp 2-component vector of float)
|
||||||
|
0:21 direct index ( temp float)
|
||||||
|
0:21 'v' ( in 4-component vector of float)
|
||||||
|
0:21 Constant:
|
||||||
|
0:21 2 (const int)
|
||||||
|
0:21 direct index ( temp float)
|
||||||
|
0:21 'v' ( in 4-component vector of float)
|
||||||
|
0:21 Constant:
|
||||||
|
0:21 2 (const int)
|
||||||
|
0:22 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:22 UV3: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:22 Constant:
|
||||||
|
0:22 4 (const int)
|
||||||
|
0:? Construct vec2 ( temp 2-component vector of float)
|
||||||
|
0:22 direct index ( temp float)
|
||||||
|
0:22 'v' ( in 4-component vector of float)
|
||||||
|
0:22 Constant:
|
||||||
|
0:22 3 (const int)
|
||||||
|
0:22 direct index ( temp float)
|
||||||
|
0:22 'v' ( in 4-component vector of float)
|
||||||
|
0:22 Constant:
|
||||||
|
0:22 3 (const int)
|
||||||
|
0:23 Branch: Return with expression
|
||||||
|
0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Function Definition: main( ( temp void)
|
||||||
|
0:16 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:16 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? 'v' ( temp 4-component vector of float)
|
||||||
|
0:? 'v' (layout( location=0) in 4-component vector of float)
|
||||||
|
0:16 Sequence
|
||||||
|
0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:? 'v' ( temp 4-component vector of float)
|
||||||
|
0:16 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:16 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
|
||||||
|
0:16 UV0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 1 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
|
||||||
|
0:16 UV1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 2 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
|
||||||
|
0:16 UV2: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 3 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
|
||||||
|
0:16 UV3: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 4 (const int)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
|
||||||
|
0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
|
||||||
|
0:? 'v' (layout( location=0) in 4-component vector of float)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 84
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Vertex 4 "main" 61 68 72 75 78 81
|
||||||
|
Source HLSL 500
|
||||||
|
Name 4 "main"
|
||||||
|
Name 10 "S"
|
||||||
|
MemberName 10(S) 0 "pos"
|
||||||
|
MemberName 10(S) 1 "UV0"
|
||||||
|
MemberName 10(S) 2 "UV1"
|
||||||
|
MemberName 10(S) 3 "UV2"
|
||||||
|
MemberName 10(S) 4 "UV3"
|
||||||
|
Name 13 "@main(vf4;"
|
||||||
|
Name 12 "v"
|
||||||
|
Name 16 "s"
|
||||||
|
Name 59 "v"
|
||||||
|
Name 61 "v"
|
||||||
|
Name 63 "flattenTemp"
|
||||||
|
Name 64 "param"
|
||||||
|
Name 68 "@entryPointOutput.pos"
|
||||||
|
Name 72 "@entryPointOutput.UV0"
|
||||||
|
Name 75 "@entryPointOutput.UV1"
|
||||||
|
Name 78 "@entryPointOutput.UV2"
|
||||||
|
Name 81 "@entryPointOutput.UV3"
|
||||||
|
Decorate 61(v) Location 0
|
||||||
|
Decorate 68(@entryPointOutput.pos) Location 0
|
||||||
|
Decorate 72(@entryPointOutput.UV0) Location 1
|
||||||
|
Decorate 75(@entryPointOutput.UV1) Location 2
|
||||||
|
Decorate 78(@entryPointOutput.UV2) Location 3
|
||||||
|
Decorate 81(@entryPointOutput.UV3) Location 4
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
9: TypeVector 6(float) 2
|
||||||
|
10(S): TypeStruct 7(fvec4) 9(fvec2) 9(fvec2) 9(fvec2) 9(fvec2)
|
||||||
|
11: TypeFunction 10(S) 8(ptr)
|
||||||
|
15: TypePointer Function 10(S)
|
||||||
|
17: TypeInt 32 1
|
||||||
|
18: 17(int) Constant 0
|
||||||
|
21: 17(int) Constant 1
|
||||||
|
22: TypeInt 32 0
|
||||||
|
23: 22(int) Constant 0
|
||||||
|
24: TypePointer Function 6(float)
|
||||||
|
30: TypePointer Function 9(fvec2)
|
||||||
|
32: 17(int) Constant 2
|
||||||
|
33: 22(int) Constant 1
|
||||||
|
40: 17(int) Constant 3
|
||||||
|
41: 22(int) Constant 2
|
||||||
|
48: 17(int) Constant 4
|
||||||
|
49: 22(int) Constant 3
|
||||||
|
60: TypePointer Input 7(fvec4)
|
||||||
|
61(v): 60(ptr) Variable Input
|
||||||
|
67: TypePointer Output 7(fvec4)
|
||||||
|
68(@entryPointOutput.pos): 67(ptr) Variable Output
|
||||||
|
71: TypePointer Output 9(fvec2)
|
||||||
|
72(@entryPointOutput.UV0): 71(ptr) Variable Output
|
||||||
|
75(@entryPointOutput.UV1): 71(ptr) Variable Output
|
||||||
|
78(@entryPointOutput.UV2): 71(ptr) Variable Output
|
||||||
|
81(@entryPointOutput.UV3): 71(ptr) Variable Output
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
59(v): 8(ptr) Variable Function
|
||||||
|
63(flattenTemp): 15(ptr) Variable Function
|
||||||
|
64(param): 8(ptr) Variable Function
|
||||||
|
62: 7(fvec4) Load 61(v)
|
||||||
|
Store 59(v) 62
|
||||||
|
65: 7(fvec4) Load 59(v)
|
||||||
|
Store 64(param) 65
|
||||||
|
66: 10(S) FunctionCall 13(@main(vf4;) 64(param)
|
||||||
|
Store 63(flattenTemp) 66
|
||||||
|
69: 8(ptr) AccessChain 63(flattenTemp) 18
|
||||||
|
70: 7(fvec4) Load 69
|
||||||
|
Store 68(@entryPointOutput.pos) 70
|
||||||
|
73: 30(ptr) AccessChain 63(flattenTemp) 21
|
||||||
|
74: 9(fvec2) Load 73
|
||||||
|
Store 72(@entryPointOutput.UV0) 74
|
||||||
|
76: 30(ptr) AccessChain 63(flattenTemp) 32
|
||||||
|
77: 9(fvec2) Load 76
|
||||||
|
Store 75(@entryPointOutput.UV1) 77
|
||||||
|
79: 30(ptr) AccessChain 63(flattenTemp) 40
|
||||||
|
80: 9(fvec2) Load 79
|
||||||
|
Store 78(@entryPointOutput.UV2) 80
|
||||||
|
82: 30(ptr) AccessChain 63(flattenTemp) 48
|
||||||
|
83: 9(fvec2) Load 82
|
||||||
|
Store 81(@entryPointOutput.UV3) 83
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
13(@main(vf4;): 10(S) Function None 11
|
||||||
|
12(v): 8(ptr) FunctionParameter
|
||||||
|
14: Label
|
||||||
|
16(s): 15(ptr) Variable Function
|
||||||
|
19: 7(fvec4) Load 12(v)
|
||||||
|
20: 8(ptr) AccessChain 16(s) 18
|
||||||
|
Store 20 19
|
||||||
|
25: 24(ptr) AccessChain 12(v) 23
|
||||||
|
26: 6(float) Load 25
|
||||||
|
27: 24(ptr) AccessChain 12(v) 23
|
||||||
|
28: 6(float) Load 27
|
||||||
|
29: 9(fvec2) CompositeConstruct 26 28
|
||||||
|
31: 30(ptr) AccessChain 16(s) 21
|
||||||
|
Store 31 29
|
||||||
|
34: 24(ptr) AccessChain 12(v) 33
|
||||||
|
35: 6(float) Load 34
|
||||||
|
36: 24(ptr) AccessChain 12(v) 33
|
||||||
|
37: 6(float) Load 36
|
||||||
|
38: 9(fvec2) CompositeConstruct 35 37
|
||||||
|
39: 30(ptr) AccessChain 16(s) 32
|
||||||
|
Store 39 38
|
||||||
|
42: 24(ptr) AccessChain 12(v) 41
|
||||||
|
43: 6(float) Load 42
|
||||||
|
44: 24(ptr) AccessChain 12(v) 41
|
||||||
|
45: 6(float) Load 44
|
||||||
|
46: 9(fvec2) CompositeConstruct 43 45
|
||||||
|
47: 30(ptr) AccessChain 16(s) 40
|
||||||
|
Store 47 46
|
||||||
|
50: 24(ptr) AccessChain 12(v) 49
|
||||||
|
51: 6(float) Load 50
|
||||||
|
52: 24(ptr) AccessChain 12(v) 49
|
||||||
|
53: 6(float) Load 52
|
||||||
|
54: 9(fvec2) CompositeConstruct 51 53
|
||||||
|
55: 30(ptr) AccessChain 16(s) 48
|
||||||
|
Store 55 54
|
||||||
|
56: 10(S) Load 16(s)
|
||||||
|
ReturnValue 56
|
||||||
|
FunctionEnd
|
13
Test/hlsl.preprocessor.frag
Normal file
13
Test/hlsl.preprocessor.frag
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#define DEFINE_TEXTURE(name) Texture2D name; SamplerState name##_ss;
|
||||||
|
#define SAMPLE_TEXTURE(name, uv) name.Sample(name##_ss, (uv).xy)
|
||||||
|
|
||||||
|
#define test_texture2 test_texture
|
||||||
|
|
||||||
|
DEFINE_TEXTURE(test_texture)
|
||||||
|
|
||||||
|
float4 main(float4 input : TEXCOORD0) : SV_TARGET
|
||||||
|
{
|
||||||
|
float4 tex = SAMPLE_TEXTURE(test_texture2, input.xy);
|
||||||
|
return tex;
|
||||||
|
}
|
||||||
|
|
24
Test/hlsl.semantic-1.vert
Normal file
24
Test/hlsl.semantic-1.vert
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#define DLAYER 3
|
||||||
|
|
||||||
|
#define DMACRO1 TEXCOORD1
|
||||||
|
#define DMACRO(num) TEXCOORD##num
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
float4 pos : POSITION;
|
||||||
|
float2 UV0 : TEXCOORD0;
|
||||||
|
float2 UV1 : DMACRO1;
|
||||||
|
float2 UV2 : DMACRO(2);
|
||||||
|
float2 UV3 : DMACRO(DLAYER);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
S main(float4 v : POSITION)
|
||||||
|
{
|
||||||
|
S s;
|
||||||
|
s.pos = v;
|
||||||
|
s.UV0 = float2(v.x,v.x);
|
||||||
|
s.UV1 = float2(v.y,v.y);
|
||||||
|
s.UV2 = float2(v.z,v.z);
|
||||||
|
s.UV3 = float2(v.w,v.w);
|
||||||
|
return s;
|
||||||
|
}
|
@ -1068,6 +1068,10 @@ int TPpContext::tMacroInput::scan(TPpToken* ppToken)
|
|||||||
pasting = true;
|
pasting = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HLSL does expand macros before concatenation
|
||||||
|
if (pasting && pp->parseContext.isReadingHLSL())
|
||||||
|
pasting = false;
|
||||||
|
|
||||||
// TODO: preprocessor: properly handle whitespace (or lack of it) between tokens when expanding
|
// TODO: preprocessor: properly handle whitespace (or lack of it) between tokens when expanding
|
||||||
if (token == PpAtomIdentifier) {
|
if (token == PpAtomIdentifier) {
|
||||||
int i;
|
int i;
|
||||||
|
@ -311,11 +311,13 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
{"hlsl.matType.bool.frag", "main"},
|
{"hlsl.matType.bool.frag", "main"},
|
||||||
{"hlsl.matType.int.frag", "main"},
|
{"hlsl.matType.int.frag", "main"},
|
||||||
{"hlsl.max.frag", "PixelShaderFunction"},
|
{"hlsl.max.frag", "PixelShaderFunction"},
|
||||||
|
{"hlsl.preprocessor.frag", "main"},
|
||||||
{"hlsl.precedence.frag", "PixelShaderFunction"},
|
{"hlsl.precedence.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.precedence2.frag", "PixelShaderFunction"},
|
{"hlsl.precedence2.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.scalar2matrix.frag", "main"},
|
{"hlsl.scalar2matrix.frag", "main"},
|
||||||
{"hlsl.semantic.geom", "main"},
|
{"hlsl.semantic.geom", "main"},
|
||||||
{"hlsl.semantic.vert", "main"},
|
{"hlsl.semantic.vert", "main"},
|
||||||
|
{"hlsl.semantic-1.vert", "main"},
|
||||||
{"hlsl.scope.frag", "PixelShaderFunction"},
|
{"hlsl.scope.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.sin.frag", "PixelShaderFunction"},
|
{"hlsl.sin.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.struct.frag", "PixelShaderFunction"},
|
{"hlsl.struct.frag", "PixelShaderFunction"},
|
||||||
|
Loading…
Reference in New Issue
Block a user