Skip to content

Commit 91346a7

Browse files
author
joaosaffran
committed
adding more tests
1 parent 655b3b4 commit 91346a7

File tree

2 files changed

+167
-0
lines changed

2 files changed

+167
-0
lines changed

llvm/lib/Target/DirectX/DXILRootSignature.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,9 @@ static bool verifyDescriptorRangeFlag(uint32_t Version, uint32_t Type,
356356
if (popcount(llvm::to_underlying(Flags & DataFlags)) > 1)
357357
return false;
358358

359+
if (popcount(llvm::to_underlying(Flags & DataFlags)) == 1)
360+
return true;
361+
359362
// For volatile descriptors, DATA_STATIC is never valid.
360363
if ((Flags & FlagT::DESCRIPTORS_VOLATILE) == FlagT::DESCRIPTORS_VOLATILE) {
361364
FlagT Mask = FlagT::DESCRIPTORS_VOLATILE;
Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
; RUN: llc %s --filetype=obj -o - | obj2yaml | FileCheck %s --check-prefix=DXC
2+
3+
target triple = "dxil-unknown-shadermodel6.0-compute"
4+
5+
define void @main() #0 {
6+
entry:
7+
ret void
8+
}
9+
attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }
10+
11+
12+
!dx.rootsignatures = !{!2} ; list of function/root signature pairs
13+
!2 = !{ ptr @main, !3 } ; function, root signature
14+
!3 = !{ !5 } ; list of root signature elements
15+
!5 = !{ !"DescriptorTable", i32 0, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20 }
16+
17+
; typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS {
18+
; NONE = 0,
19+
; DESCRIPTORS_VOLATILE = 0x1,
20+
; DATA_VOLATILE = 0x2,
21+
; DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
22+
; DATA_STATIC = 0x8,
23+
; DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
24+
; } ;
25+
26+
;0
27+
!6 = !{ !"Sampler", i32 1, i32 0, i32 1, i32 -1, i32 0 }
28+
;DATA_VOLATILE
29+
!7 = !{ !"Sampler", i32 1, i32 0, i32 2, i32 -1, i32 2 }
30+
;DATA_STATIC_WHILE_SET_AT_EXECUTE
31+
!8 = !{ !"Sampler", i32 1, i32 0, i32 3, i32 -1, i32 4 }
32+
;DATA_STATIC
33+
!9 = !{ !"Sampler", i32 1, i32 0, i32 4, i32 -1, i32 8 }
34+
;0
35+
!10 = !{ !"SRV", i32 1, i32 0, i32 5, i32 -1, i32 0 }
36+
;DESCRIPTORS_VOLATILE
37+
!11 = !{ !"UAV", i32 5, i32 1, i32 6, i32 5, i32 1 }
38+
;DATA_VOLATILE
39+
!12 = !{ !"CBV", i32 5, i32 1, i32 7, i32 5, i32 2 }
40+
;DATA_STATIC
41+
!13 = !{ !"SRV", i32 5, i32 1, i32 8, i32 5, i32 8 }
42+
;DATA_STATIC_WHILE_SET_AT_EXECUTE
43+
!14 = !{ !"UAV", i32 5, i32 1, i32 9, i32 5, i32 4 }
44+
;DESCRIPTORS_VOLATILE | DATA_VOLATILE
45+
!15 = !{ !"CBV", i32 5, i32 1, i32 10, i32 5, i32 3 }
46+
;DESCRIPTORS_VOLATILE | DATA_STATIC_WHILE_SET_AT_EXECUTE
47+
!16 = !{ !"SRV", i32 5, i32 1, i32 11, i32 5, i32 5 }
48+
;DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS
49+
!17 = !{ !"UAV", i32 5, i32 1, i32 12, i32 5, i32 65536 }
50+
;DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS | DATA_VOLATILE
51+
!18 = !{ !"CBV", i32 5, i32 1, i32 13, i32 5, i32 65538 }
52+
;DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS | DATA_STATIC
53+
!19 = !{ !"SRV", i32 5, i32 1, i32 14, i32 5, i32 65544 }
54+
;DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS | DATA_STATIC_WHILE_SET_AT_EXECUTE
55+
!20 = !{ !"UAV", i32 5, i32 1, i32 15, i32 5, i32 65540 }
56+
57+
; DXC: - Name: RTS0
58+
; DXC-NEXT: Size: 404
59+
; DXC-NEXT: RootSignature:
60+
; DXC-NEXT: Version: 2
61+
; DXC-NEXT: NumRootParameters: 1
62+
; DXC-NEXT: RootParametersOffset: 24
63+
; DXC-NEXT: NumStaticSamplers: 0
64+
; DXC-NEXT: StaticSamplersOffset: 0
65+
; DXC-NEXT: Parameters:
66+
; DXC-NEXT: - ParameterType: 0
67+
; DXC-NEXT: ShaderVisibility: 0
68+
; DXC-NEXT: Table:
69+
; DXC-NEXT: NumRanges: 15
70+
; DXC-NEXT: RangesOffset: 44
71+
; DXC-NEXT: Ranges:
72+
; DXC-NEXT: - RangeType: 3
73+
; DXC-NEXT: NumDescriptors: 1
74+
; DXC-NEXT: BaseShaderRegister: 0
75+
; DXC-NEXT: RegisterSpace: 1
76+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 4294967295
77+
; DXC-NEXT: - RangeType: 3
78+
; DXC-NEXT: NumDescriptors: 1
79+
; DXC-NEXT: BaseShaderRegister: 0
80+
; DXC-NEXT: RegisterSpace: 2
81+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 4294967295
82+
; DXC-NEXT: DATA_VOLATILE: true
83+
; DXC-NEXT: - RangeType: 3
84+
; DXC-NEXT: NumDescriptors: 1
85+
; DXC-NEXT: BaseShaderRegister: 0
86+
; DXC-NEXT: RegisterSpace: 3
87+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 4294967295
88+
; DXC-NEXT: DATA_STATIC_WHILE_SET_AT_EXECUTE: true
89+
; DXC-NEXT: - RangeType: 3
90+
; DXC-NEXT: NumDescriptors: 1
91+
; DXC-NEXT: BaseShaderRegister: 0
92+
; DXC-NEXT: RegisterSpace: 4
93+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 4294967295
94+
; DXC-NEXT: DATA_STATIC: true
95+
; DXC-NEXT: - RangeType: 0
96+
; DXC-NEXT: NumDescriptors: 1
97+
; DXC-NEXT: BaseShaderRegister: 0
98+
; DXC-NEXT: RegisterSpace: 5
99+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 4294967295
100+
; DXC-NEXT: - RangeType: 1
101+
; DXC-NEXT: NumDescriptors: 5
102+
; DXC-NEXT: BaseShaderRegister: 1
103+
; DXC-NEXT: RegisterSpace: 6
104+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
105+
; DXC-NEXT: DESCRIPTORS_VOLATILE: true
106+
; DXC-NEXT: - RangeType: 2
107+
; DXC-NEXT: NumDescriptors: 5
108+
; DXC-NEXT: BaseShaderRegister: 1
109+
; DXC-NEXT: RegisterSpace: 7
110+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
111+
; DXC-NEXT: DATA_VOLATILE: true
112+
; DXC-NEXT: - RangeType: 0
113+
; DXC-NEXT: NumDescriptors: 5
114+
; DXC-NEXT: BaseShaderRegister: 1
115+
; DXC-NEXT: RegisterSpace: 8
116+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
117+
; DXC-NEXT: DATA_STATIC: true
118+
; DXC-NEXT: - RangeType: 1
119+
; DXC-NEXT: NumDescriptors: 5
120+
; DXC-NEXT: BaseShaderRegister: 1
121+
; DXC-NEXT: RegisterSpace: 9
122+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
123+
; DXC-NEXT: DATA_STATIC_WHILE_SET_AT_EXECUTE: true
124+
; DXC-NEXT: - RangeType: 2
125+
; DXC-NEXT: NumDescriptors: 5
126+
; DXC-NEXT: BaseShaderRegister: 1
127+
; DXC-NEXT: RegisterSpace: 10
128+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
129+
; DXC-NEXT: DESCRIPTORS_VOLATILE: true
130+
; DXC-NEXT: DATA_VOLATILE: true
131+
; DXC-NEXT: - RangeType: 0
132+
; DXC-NEXT: NumDescriptors: 5
133+
; DXC-NEXT: BaseShaderRegister: 1
134+
; DXC-NEXT: RegisterSpace: 11
135+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
136+
; DXC-NEXT: DESCRIPTORS_VOLATILE: true
137+
; DXC-NEXT: DATA_STATIC_WHILE_SET_AT_EXECUTE: true
138+
; DXC-NEXT: - RangeType: 1
139+
; DXC-NEXT: NumDescriptors: 5
140+
; DXC-NEXT: BaseShaderRegister: 1
141+
; DXC-NEXT: RegisterSpace: 12
142+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
143+
; DXC-NEXT: DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: true
144+
; DXC-NEXT: - RangeType: 2
145+
; DXC-NEXT: NumDescriptors: 5
146+
; DXC-NEXT: BaseShaderRegister: 1
147+
; DXC-NEXT: RegisterSpace: 13
148+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
149+
; DXC-NEXT: DATA_VOLATILE: true
150+
; DXC-NEXT: DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: true
151+
; DXC-NEXT: - RangeType: 0
152+
; DXC-NEXT: NumDescriptors: 5
153+
; DXC-NEXT: BaseShaderRegister: 1
154+
; DXC-NEXT: RegisterSpace: 14
155+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
156+
; DXC-NEXT: DATA_STATIC: true
157+
; DXC-NEXT: DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: true
158+
; DXC-NEXT: - RangeType: 1
159+
; DXC-NEXT: NumDescriptors: 5
160+
; DXC-NEXT: BaseShaderRegister: 1
161+
; DXC-NEXT: RegisterSpace: 15
162+
; DXC-NEXT: OffsetInDescriptorsFromTableStart: 5
163+
; DXC-NEXT: DATA_STATIC_WHILE_SET_AT_EXECUTE: true
164+
; DXC-NEXT: DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: true

0 commit comments

Comments
 (0)