Fix the error message for when an erroneous HLSL constructor statement is detected. Prior to this change, such error messages would not show correct file path and line number information. Additionally, update test data to account for updated error messages.
190 lines
8.9 KiB
Plaintext
190 lines
8.9 KiB
Plaintext
hlsl.earlydepthstencil.frag
|
|
Shader version: 500
|
|
gl_FragCoord origin is upper left
|
|
using early_fragment_tests
|
|
0:? Sequence
|
|
0:8 Function Definition: @main(struct-InputStruct-vf41; ( temp uint)
|
|
0:8 Function Parameters:
|
|
0:8 'input' ( in structure{ temp 4-component vector of float Position})
|
|
0:? Sequence
|
|
0:10 move second child to first child ( temp uint)
|
|
0:10 'oldVal' ( temp uint)
|
|
0:10 imageAtomicExchange ( temp uint)
|
|
0:10 'Values' (layout( r32ui) uniform uimage2D)
|
|
0:10 Construct uvec2 ( temp 2-component vector of uint)
|
|
0:10 Convert float to uint ( temp uint)
|
|
0:10 direct index ( temp float)
|
|
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
|
0:10 'input' ( in structure{ temp 4-component vector of float Position})
|
|
0:10 Constant:
|
|
0:10 0 (const int)
|
|
0:10 Constant:
|
|
0:10 0 (const int)
|
|
0:10 Convert float to uint ( temp uint)
|
|
0:10 direct index ( temp float)
|
|
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
|
0:10 'input' ( in structure{ temp 4-component vector of float Position})
|
|
0:10 Constant:
|
|
0:10 0 (const int)
|
|
0:10 Constant:
|
|
0:10 1 (const int)
|
|
0:10 Constant:
|
|
0:10 1 (const uint)
|
|
0:11 Branch: Return with expression
|
|
0:11 'oldVal' ( temp uint)
|
|
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 4-component vector of float)
|
|
0:8 Position: direct index for structure ( temp 4-component vector of float)
|
|
0:? 'input' ( temp structure{ temp 4-component vector of float Position})
|
|
0:8 Constant:
|
|
0:8 0 (const int)
|
|
0:? 'input.Position' ( in 4-component vector of float FragCoord)
|
|
0:8 move second child to first child ( temp uint)
|
|
0:? '@entryPointOutput' (layout( location=0) out uint)
|
|
0:8 Function Call: @main(struct-InputStruct-vf41; ( temp uint)
|
|
0:? 'input' ( temp structure{ temp 4-component vector of float Position})
|
|
0:? Linker Objects
|
|
0:? 'Values' (layout( r32ui) uniform uimage2D)
|
|
0:? '@entryPointOutput' (layout( location=0) out uint)
|
|
0:? 'input.Position' ( in 4-component vector of float FragCoord)
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
Shader version: 500
|
|
gl_FragCoord origin is upper left
|
|
using early_fragment_tests
|
|
0:? Sequence
|
|
0:8 Function Definition: @main(struct-InputStruct-vf41; ( temp uint)
|
|
0:8 Function Parameters:
|
|
0:8 'input' ( in structure{ temp 4-component vector of float Position})
|
|
0:? Sequence
|
|
0:10 move second child to first child ( temp uint)
|
|
0:10 'oldVal' ( temp uint)
|
|
0:10 imageAtomicExchange ( temp uint)
|
|
0:10 'Values' (layout( r32ui) uniform uimage2D)
|
|
0:10 Construct uvec2 ( temp 2-component vector of uint)
|
|
0:10 Convert float to uint ( temp uint)
|
|
0:10 direct index ( temp float)
|
|
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
|
0:10 'input' ( in structure{ temp 4-component vector of float Position})
|
|
0:10 Constant:
|
|
0:10 0 (const int)
|
|
0:10 Constant:
|
|
0:10 0 (const int)
|
|
0:10 Convert float to uint ( temp uint)
|
|
0:10 direct index ( temp float)
|
|
0:10 Position: direct index for structure ( temp 4-component vector of float)
|
|
0:10 'input' ( in structure{ temp 4-component vector of float Position})
|
|
0:10 Constant:
|
|
0:10 0 (const int)
|
|
0:10 Constant:
|
|
0:10 1 (const int)
|
|
0:10 Constant:
|
|
0:10 1 (const uint)
|
|
0:11 Branch: Return with expression
|
|
0:11 'oldVal' ( temp uint)
|
|
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 4-component vector of float)
|
|
0:8 Position: direct index for structure ( temp 4-component vector of float)
|
|
0:? 'input' ( temp structure{ temp 4-component vector of float Position})
|
|
0:8 Constant:
|
|
0:8 0 (const int)
|
|
0:? 'input.Position' ( in 4-component vector of float FragCoord)
|
|
0:8 move second child to first child ( temp uint)
|
|
0:? '@entryPointOutput' (layout( location=0) out uint)
|
|
0:8 Function Call: @main(struct-InputStruct-vf41; ( temp uint)
|
|
0:? 'input' ( temp structure{ temp 4-component vector of float Position})
|
|
0:? Linker Objects
|
|
0:? 'Values' (layout( r32ui) uniform uimage2D)
|
|
0:? '@entryPointOutput' (layout( location=0) out uint)
|
|
0:? 'input.Position' ( in 4-component vector of float FragCoord)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000a
|
|
// Id's are bound by 50
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 41 46
|
|
ExecutionMode 4 OriginUpperLeft
|
|
ExecutionMode 4 EarlyFragmentTests
|
|
Source HLSL 500
|
|
Name 4 "main"
|
|
Name 8 "InputStruct"
|
|
MemberName 8(InputStruct) 0 "Position"
|
|
Name 13 "@main(struct-InputStruct-vf41;"
|
|
Name 12 "input"
|
|
Name 16 "oldVal"
|
|
Name 19 "Values"
|
|
Name 39 "input"
|
|
Name 41 "input.Position"
|
|
Name 46 "@entryPointOutput"
|
|
Name 47 "param"
|
|
Decorate 19(Values) DescriptorSet 0
|
|
Decorate 19(Values) Binding 0
|
|
Decorate 41(input.Position) BuiltIn FragCoord
|
|
Decorate 46(@entryPointOutput) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8(InputStruct): TypeStruct 7(fvec4)
|
|
9: TypePointer Function 8(InputStruct)
|
|
10: TypeInt 32 0
|
|
11: TypeFunction 10(int) 9(ptr)
|
|
15: TypePointer Function 10(int)
|
|
17: TypeImage 10(int) 2D nonsampled format:R32ui
|
|
18: TypePointer UniformConstant 17
|
|
19(Values): 18(ptr) Variable UniformConstant
|
|
20: TypeInt 32 1
|
|
21: 20(int) Constant 0
|
|
22: 10(int) Constant 0
|
|
23: TypePointer Function 6(float)
|
|
27: 10(int) Constant 1
|
|
31: TypeVector 10(int) 2
|
|
33: TypePointer Image 10(int)
|
|
40: TypePointer Input 7(fvec4)
|
|
41(input.Position): 40(ptr) Variable Input
|
|
43: TypePointer Function 7(fvec4)
|
|
45: TypePointer Output 10(int)
|
|
46(@entryPointOutput): 45(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
39(input): 9(ptr) Variable Function
|
|
47(param): 9(ptr) Variable Function
|
|
42: 7(fvec4) Load 41(input.Position)
|
|
44: 43(ptr) AccessChain 39(input) 21
|
|
Store 44 42
|
|
48:8(InputStruct) Load 39(input)
|
|
Store 47(param) 48
|
|
49: 10(int) FunctionCall 13(@main(struct-InputStruct-vf41;) 47(param)
|
|
Store 46(@entryPointOutput) 49
|
|
Return
|
|
FunctionEnd
|
|
13(@main(struct-InputStruct-vf41;): 10(int) Function None 11
|
|
12(input): 9(ptr) FunctionParameter
|
|
14: Label
|
|
16(oldVal): 15(ptr) Variable Function
|
|
24: 23(ptr) AccessChain 12(input) 21 22
|
|
25: 6(float) Load 24
|
|
26: 10(int) ConvertFToU 25
|
|
28: 23(ptr) AccessChain 12(input) 21 27
|
|
29: 6(float) Load 28
|
|
30: 10(int) ConvertFToU 29
|
|
32: 31(ivec2) CompositeConstruct 26 30
|
|
34: 33(ptr) ImageTexelPointer 19(Values) 32 22
|
|
35: 10(int) AtomicExchange 34 27 22 27
|
|
Store 16(oldVal) 35
|
|
36: 10(int) Load 16(oldVal)
|
|
ReturnValue 36
|
|
FunctionEnd
|