Skip to content

Commit 8f27899

Browse files
smilczekigcbot
authored andcommitted
Remove emission of sampler flushes when emitting lsc_fence.
When handling read_write images, IGC used to route reads through sampling engine and writes through LSC. This caused issues with syncing those operations. To mitigate that, IGC emitted sampler flushes when emitting lsc_fence operations. That behaviour is not correct and both reads and writes need to be routed through LSC instead. That feature was recently implemented making that emission of sampler flushes redundant. This commit removes the emission of those sampler flushes.
1 parent 57ff003 commit 8f27899

File tree

3 files changed

+365
-3
lines changed

3 files changed

+365
-3
lines changed

IGC/BiFModule/Implementation/barrier.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ static void __intel_atomic_work_item_fence( Scope_t Memory, uint Semantics )
111111
{
112112
if (Semantics & ImageMemory)
113113
{
114-
// An image fence requires a fence with R/W invalidate (L3 flush) + a flush
115-
// of the sampler cache
114+
// An image fence requires a fence with R/W invalidate (L3 flush)
115+
// + for pre-DG2 platforms, sampler cache flush
116116
__intel_typedmemfence_handler(invalidateL1);
117117
}
118118
// A global/local memory fence requires a hardware fence in general,

IGC/Compiler/CISACodeGen/EmitVISAPass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17354,7 +17354,7 @@ void EmitPass::emitTypedMemoryFence(llvm::Instruction* inst)
1735417354

1735517355
m_encoder->LSC_Fence(LSC_TGM, scope, flushOpt);
1735617356
m_encoder->Push();
17357-
if (m_currShader->m_Platform->hasSamplerSupport())
17357+
if (m_currShader->m_Platform->hasSamplerSupport() && !m_currShader->m_Platform->supportsBGRATypedRead())
1735817358
{
1735917359
emitFlushSamplerCache();
1736017360
}
Lines changed: 362 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,362 @@
1+
;=========================== begin_copyright_notice ============================
2+
;
3+
; Copyright (C) 2025 Intel Corporation
4+
;
5+
; SPDX-License-Identifier: MIT
6+
;
7+
;============================ end_copyright_notice =============================
8+
9+
; REQUIRES: llvm-14-plus, regkeys
10+
11+
; RUN: igc_opt --opaque-pointers -platformmtl -igc-emit-visa -simd-mode 32 %s -regkey DumpVISAASMToConsole | FileCheck %s
12+
13+
; This test verifies whether GenISA.typedmemoryfence intrinsic is properly translated and sampler flush is not emitted.
14+
15+
; The tested module has been reduced from the following OpenCL C code:
16+
; kernel void test()
17+
; {
18+
; atomic_work_item_fence(CLK_IMAGE_MEM_FENCE, memory_order_acq_rel, memory_scope_work_item);
19+
; }
20+
21+
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v24:32:32-v32:32:32-v48:64:64-v64:64:64-v96:128:128-v128:128:128-v192:256:256-v256:256:256-v512:512:512-v1024:1024:1024-n8:16:32"
22+
target triple = "spir64-unknown-unknown"
23+
24+
define spir_kernel void @test(<8 x i32> %r0, <8 x i32> %payloadHeader) {
25+
entry:
26+
; CHECK: lsc_fence.tgm.evict
27+
; CHECK-NOT: sampler_cache_flush
28+
call void @llvm.genx.GenISA.typedmemoryfence(i1 true)
29+
ret void
30+
}
31+
32+
; Function Attrs: convergent nounwind
33+
declare void @llvm.genx.GenISA.typedmemoryfence(i1) #0
34+
35+
attributes #0 = { convergent nounwind }
36+
37+
!spirv.MemoryModel = !{!0}
38+
!spirv.Source = !{!1}
39+
!spirv.Generator = !{!2}
40+
!igc.functions = !{!3}
41+
!IGCMetadata = !{!9}
42+
!opencl.ocl.version = !{!310, !310, !310, !310, !310}
43+
!opencl.spir.version = !{!310, !310, !310, !310, !310}
44+
!llvm.ident = !{!311, !311, !311, !311, !311}
45+
!llvm.module.flags = !{!312}
46+
!printf.strings = !{}
47+
48+
!0 = !{i32 2, i32 2}
49+
!1 = !{i32 3, i32 300000}
50+
!2 = !{i16 6, i16 14}
51+
!3 = !{void (<8 x i32>, <8 x i32>)* @test, !4}
52+
!4 = !{!5, !6}
53+
!5 = !{!"function_type", i32 0}
54+
!6 = !{!"implicit_arg_desc", !7, !8}
55+
!7 = !{i32 0}
56+
!8 = !{i32 1}
57+
!9 = !{!"ModuleMD", !10, !11, !90, !159, !190, !206, !228, !238, !240, !241, !255, !256, !257, !258, !262, !263, !270, !271, !272, !273, !274, !275, !276, !277, !278, !279, !280, !282, !286, !287, !288, !289, !290, !291, !292, !293, !294, !295, !296, !140, !297, !300, !301, !303, !306, !307, !308}
58+
!10 = !{!"isPrecise", i1 false}
59+
!11 = !{!"compOpt", !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36, !37, !38, !39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79, !80, !81, !82, !83, !84, !85, !86, !87, !88, !89}
60+
!12 = !{!"DenormsAreZero", i1 false}
61+
!13 = !{!"BFTFDenormsAreZero", i1 false}
62+
!14 = !{!"CorrectlyRoundedDivSqrt", i1 false}
63+
!15 = !{!"OptDisable", i1 false}
64+
!16 = !{!"MadEnable", i1 true}
65+
!17 = !{!"NoSignedZeros", i1 false}
66+
!18 = !{!"NoNaNs", i1 false}
67+
!19 = !{!"FloatRoundingMode", i32 0}
68+
!20 = !{!"FloatCvtIntRoundingMode", i32 3}
69+
!21 = !{!"LoadCacheDefault", i32 4}
70+
!22 = !{!"StoreCacheDefault", i32 2}
71+
!23 = !{!"VISAPreSchedRPThreshold", i32 0}
72+
!24 = !{!"SetLoopUnrollThreshold", i32 0}
73+
!25 = !{!"UnsafeMathOptimizations", i1 false}
74+
!26 = !{!"disableCustomUnsafeOpts", i1 false}
75+
!27 = !{!"disableReducePow", i1 false}
76+
!28 = !{!"disableSqrtOpt", i1 false}
77+
!29 = !{!"FiniteMathOnly", i1 false}
78+
!30 = !{!"FastRelaxedMath", i1 false}
79+
!31 = !{!"DashGSpecified", i1 false}
80+
!32 = !{!"FastCompilation", i1 false}
81+
!33 = !{!"UseScratchSpacePrivateMemory", i1 true}
82+
!34 = !{!"RelaxedBuiltins", i1 false}
83+
!35 = !{!"SubgroupIndependentForwardProgressRequired", i1 true}
84+
!36 = !{!"GreaterThan2GBBufferRequired", i1 true}
85+
!37 = !{!"GreaterThan4GBBufferRequired", i1 true}
86+
!38 = !{!"DisableA64WA", i1 false}
87+
!39 = !{!"ForceEnableA64WA", i1 false}
88+
!40 = !{!"PushConstantsEnable", i1 true}
89+
!41 = !{!"HasPositivePointerOffset", i1 false}
90+
!42 = !{!"HasBufferOffsetArg", i1 true}
91+
!43 = !{!"BufferOffsetArgOptional", i1 true}
92+
!44 = !{!"replaceGlobalOffsetsByZero", i1 false}
93+
!45 = !{!"forcePixelShaderSIMDMode", i32 0}
94+
!46 = !{!"pixelShaderDoNotAbortOnSpill", i1 false}
95+
!47 = !{!"UniformWGS", i1 false}
96+
!48 = !{!"disableVertexComponentPacking", i1 false}
97+
!49 = !{!"disablePartialVertexComponentPacking", i1 false}
98+
!50 = !{!"PreferBindlessImages", i1 false}
99+
!51 = !{!"UseBindlessMode", i1 false}
100+
!52 = !{!"UseLegacyBindlessMode", i1 true}
101+
!53 = !{!"disableMathRefactoring", i1 false}
102+
!54 = !{!"atomicBranch", i1 false}
103+
!55 = !{!"spillCompression", i1 false}
104+
!56 = !{!"DisableEarlyOut", i1 false}
105+
!57 = !{!"ForceInt32DivRemEmu", i1 false}
106+
!58 = !{!"ForceInt32DivRemEmuSP", i1 false}
107+
!59 = !{!"DisableFastestSingleCSSIMD", i1 false}
108+
!60 = !{!"DisableFastestLinearScan", i1 false}
109+
!61 = !{!"UseStatelessforPrivateMemory", i1 false}
110+
!62 = !{!"EnableTakeGlobalAddress", i1 false}
111+
!63 = !{!"IsLibraryCompilation", i1 false}
112+
!64 = !{!"LibraryCompileSIMDSize", i32 0}
113+
!65 = !{!"FastVISACompile", i1 false}
114+
!66 = !{!"MatchSinCosPi", i1 false}
115+
!67 = !{!"ExcludeIRFromZEBinary", i1 false}
116+
!68 = !{!"EmitZeBinVISASections", i1 false}
117+
!69 = !{!"FP64GenEmulationEnabled", i1 false}
118+
!70 = !{!"FP64GenConvEmulationEnabled", i1 false}
119+
!71 = !{!"allowDisableRematforCS", i1 false}
120+
!72 = !{!"DisableIncSpillCostAllAddrTaken", i1 false}
121+
!73 = !{!"DisableCPSOmaskWA", i1 false}
122+
!74 = !{!"DisableFastestGopt", i1 false}
123+
!75 = !{!"WaForceHalfPromotionComputeShader", i1 false}
124+
!76 = !{!"WaForceHalfPromotionPixelVertexShader", i1 false}
125+
!77 = !{!"DisableConstantCoalescing", i1 false}
126+
!78 = !{!"EnableUndefAlphaOutputAsRed", i1 true}
127+
!79 = !{!"WaEnableALTModeVisaWA", i1 false}
128+
!80 = !{!"NewSpillCostFunction", i1 false}
129+
!81 = !{!"ForceLargeGRFNum4RQ", i1 false}
130+
!82 = !{!"DisableEUFusion", i1 false}
131+
!83 = !{!"DisableFDivToFMulInvOpt", i1 false}
132+
!84 = !{!"initializePhiSampleSourceWA", i1 false}
133+
!85 = !{!"WaDisableSubspanUseNoMaskForCB", i1 false}
134+
!86 = !{!"DisableLoosenSimd32Occu", i1 false}
135+
!87 = !{!"FastestS1Options", i32 0}
136+
!88 = !{!"EnableFastestForWaveIntrinsicsCS", i1 false}
137+
!89 = !{!"ForceLinearWalkOnLinearUAV", i1 false}
138+
!90 = !{!"FuncMD", !91, !92}
139+
!91 = !{!"FuncMDMap[0]", void (<8 x i32>, <8 x i32>)* @test}
140+
!92 = !{!"FuncMDValue[0]", !93, !94, !98, !99, !100, !121, !132, !133, !134, !135, !136, !137, !138, !139, !140, !141, !142, !143, !144, !145, !146, !147, !148, !149, !150, !151, !152, !153, !154, !155}
141+
!93 = !{!"localOffsets"}
142+
!94 = !{!"workGroupWalkOrder", !95, !96, !97}
143+
!95 = !{!"dim0", i32 0}
144+
!96 = !{!"dim1", i32 1}
145+
!97 = !{!"dim2", i32 2}
146+
!98 = !{!"funcArgs"}
147+
!99 = !{!"functionType", !"KernelFunction"}
148+
!100 = !{!"rtInfo", !101, !102, !103, !104, !105, !106, !107, !108, !109, !110, !111, !112, !113, !114, !115, !116, !120}
149+
!101 = !{!"callableShaderType", !"NumberOfCallableShaderTypes"}
150+
!102 = !{!"isContinuation", i1 false}
151+
!103 = !{!"hasTraceRayPayload", i1 false}
152+
!104 = !{!"hasHitAttributes", i1 false}
153+
!105 = !{!"hasCallableData", i1 false}
154+
!106 = !{!"ShaderStackSize", i32 0}
155+
!107 = !{!"ShaderHash", i64 0}
156+
!108 = !{!"ShaderName", !""}
157+
!109 = !{!"ParentName", !""}
158+
!110 = !{!"SlotNum", i1* null}
159+
!111 = !{!"NOSSize", i32 0}
160+
!112 = !{!"globalRootSignatureSize", i32 0}
161+
!113 = !{!"Entries"}
162+
!114 = !{!"SpillUnions"}
163+
!115 = !{!"CustomHitAttrSizeInBytes", i32 0}
164+
!116 = !{!"Types", !117, !118, !119}
165+
!117 = !{!"FrameStartTys"}
166+
!118 = !{!"ArgumentTys"}
167+
!119 = !{!"FullFrameTys"}
168+
!120 = !{!"Aliases"}
169+
!121 = !{!"resAllocMD", !122, !123, !124, !125, !131}
170+
!122 = !{!"uavsNumType", i32 0}
171+
!123 = !{!"srvsNumType", i32 0}
172+
!124 = !{!"samplersNumType", i32 0}
173+
!125 = !{!"argAllocMDList", !126, !130}
174+
!126 = !{!"argAllocMDListVec[0]", !127, !128, !129}
175+
!127 = !{!"type", i32 0}
176+
!128 = !{!"extensionType", i32 -1}
177+
!129 = !{!"indexType", i32 -1}
178+
!130 = !{!"argAllocMDListVec[1]", !127, !128, !129}
179+
!131 = !{!"inlineSamplersMD"}
180+
!132 = !{!"maxByteOffsets"}
181+
!133 = !{!"IsInitializer", i1 false}
182+
!134 = !{!"IsFinalizer", i1 false}
183+
!135 = !{!"CompiledSubGroupsNumber", i32 0}
184+
!136 = !{!"hasInlineVmeSamplers", i1 false}
185+
!137 = !{!"localSize", i32 0}
186+
!138 = !{!"localIDPresent", i1 false}
187+
!139 = !{!"groupIDPresent", i1 false}
188+
!140 = !{!"privateMemoryPerWI", i32 0}
189+
!141 = !{!"prevFPOffset", i32 0}
190+
!142 = !{!"globalIDPresent", i1 false}
191+
!143 = !{!"hasSyncRTCalls", i1 false}
192+
!144 = !{!"hasNonKernelArgLoad", i1 false}
193+
!145 = !{!"hasNonKernelArgStore", i1 false}
194+
!146 = !{!"hasNonKernelArgAtomic", i1 false}
195+
!147 = !{!"UserAnnotations"}
196+
!148 = !{!"m_OpenCLArgAddressSpaces"}
197+
!149 = !{!"m_OpenCLArgAccessQualifiers"}
198+
!150 = !{!"m_OpenCLArgTypes"}
199+
!151 = !{!"m_OpenCLArgBaseTypes"}
200+
!152 = !{!"m_OpenCLArgTypeQualifiers"}
201+
!153 = !{!"m_OpenCLArgNames"}
202+
!154 = !{!"m_OpenCLArgScalarAsPointers"}
203+
!155 = !{!"m_OptsToDisablePerFunc", !156, !157, !158}
204+
!156 = !{!"m_OptsToDisablePerFuncSet[0]", !"IGC-AddressArithmeticSinking"}
205+
!157 = !{!"m_OptsToDisablePerFuncSet[1]", !"IGC-AllowSimd32Slicing"}
206+
!158 = !{!"m_OptsToDisablePerFuncSet[2]", !"IGC-SinkLoadOpt"}
207+
!159 = !{!"pushInfo", !160, !161, !162, !166, !167, !168, !169, !170, !171, !172, !173, !186, !187, !188, !189}
208+
!160 = !{!"pushableAddresses"}
209+
!161 = !{!"bindlessPushInfo"}
210+
!162 = !{!"dynamicBufferInfo", !163, !164, !165}
211+
!163 = !{!"firstIndex", i32 0}
212+
!164 = !{!"numOffsets", i32 0}
213+
!165 = !{!"forceDisabled", i1 false}
214+
!166 = !{!"MaxNumberOfPushedBuffers", i32 0}
215+
!167 = !{!"inlineConstantBufferSlot", i32 -1}
216+
!168 = !{!"inlineConstantBufferOffset", i32 -1}
217+
!169 = !{!"inlineConstantBufferGRFOffset", i32 -1}
218+
!170 = !{!"constants"}
219+
!171 = !{!"inputs"}
220+
!172 = !{!"constantReg"}
221+
!173 = !{!"simplePushInfoArr", !174, !183, !184, !185}
222+
!174 = !{!"simplePushInfoArrVec[0]", !175, !176, !177, !178, !179, !180, !181, !182}
223+
!175 = !{!"cbIdx", i32 0}
224+
!176 = !{!"pushableAddressGrfOffset", i32 -1}
225+
!177 = !{!"pushableOffsetGrfOffset", i32 -1}
226+
!178 = !{!"offset", i32 0}
227+
!179 = !{!"size", i32 0}
228+
!180 = !{!"isStateless", i1 false}
229+
!181 = !{!"isBindless", i1 false}
230+
!182 = !{!"simplePushLoads"}
231+
!183 = !{!"simplePushInfoArrVec[1]", !175, !176, !177, !178, !179, !180, !181, !182}
232+
!184 = !{!"simplePushInfoArrVec[2]", !175, !176, !177, !178, !179, !180, !181, !182}
233+
!185 = !{!"simplePushInfoArrVec[3]", !175, !176, !177, !178, !179, !180, !181, !182}
234+
!186 = !{!"simplePushBufferUsed", i32 0}
235+
!187 = !{!"pushAnalysisWIInfos"}
236+
!188 = !{!"inlineRTGlobalPtrOffset", i32 0}
237+
!189 = !{!"rtSyncSurfPtrOffset", i32 0}
238+
!190 = !{!"psInfo", !191, !192, !193, !194, !195, !196, !197, !198, !199, !200, !201, !202, !203, !204, !205}
239+
!191 = !{!"BlendStateDisabledMask", i8 0}
240+
!192 = !{!"SkipSrc0Alpha", i1 false}
241+
!193 = !{!"DualSourceBlendingDisabled", i1 false}
242+
!194 = !{!"ForceEnableSimd32", i1 false}
243+
!195 = !{!"outputDepth", i1 false}
244+
!196 = !{!"outputStencil", i1 false}
245+
!197 = !{!"outputMask", i1 false}
246+
!198 = !{!"blendToFillEnabled", i1 false}
247+
!199 = !{!"forceEarlyZ", i1 false}
248+
!200 = !{!"hasVersionedLoop", i1 false}
249+
!201 = !{!"forceSingleSourceRTWAfterDualSourceRTW", i1 false}
250+
!202 = !{!"NumSamples", i8 0}
251+
!203 = !{!"blendOptimizationMode"}
252+
!204 = !{!"colorOutputMask"}
253+
!205 = !{!"WaDisableVRS", i1 false}
254+
!206 = !{!"csInfo", !207, !208, !209, !210, !211, !23, !24, !212, !213, !214, !215, !216, !217, !218, !219, !220, !221, !222, !223, !54, !55, !224, !225, !226, !227}
255+
!207 = !{!"maxWorkGroupSize", i32 0}
256+
!208 = !{!"waveSize", i32 0}
257+
!209 = !{!"ComputeShaderSecondCompile"}
258+
!210 = !{!"forcedSIMDSize", i8 0}
259+
!211 = !{!"forceTotalGRFNum", i32 0}
260+
!212 = !{!"forceSpillCompression", i1 false}
261+
!213 = !{!"allowLowerSimd", i1 false}
262+
!214 = !{!"disableSimd32Slicing", i1 false}
263+
!215 = !{!"disableSplitOnSpill", i1 false}
264+
!216 = !{!"enableNewSpillCostFunction", i1 false}
265+
!217 = !{!"forcedVISAPreRAScheduler", i1 false}
266+
!218 = !{!"forceUniformBuffer", i1 false}
267+
!219 = !{!"forceUniformSurfaceSampler", i1 false}
268+
!220 = !{!"disableLocalIdOrderOptimizations", i1 false}
269+
!221 = !{!"disableDispatchAlongY", i1 false}
270+
!222 = !{!"neededThreadIdLayout", i1* null}
271+
!223 = !{!"forceTileYWalk", i1 false}
272+
!224 = !{!"disableEarlyOut", i1 false}
273+
!225 = !{!"walkOrderEnabled", i1 false}
274+
!226 = !{!"walkOrderOverride", i32 0}
275+
!227 = !{!"ResForHfPacking"}
276+
!228 = !{!"msInfo", !229, !230, !231, !232, !233, !234, !235, !236, !237}
277+
!229 = !{!"PrimitiveTopology", i32 3}
278+
!230 = !{!"MaxNumOfPrimitives", i32 0}
279+
!231 = !{!"MaxNumOfVertices", i32 0}
280+
!232 = !{!"MaxNumOfPerPrimitiveOutputs", i32 0}
281+
!233 = !{!"MaxNumOfPerVertexOutputs", i32 0}
282+
!234 = !{!"WorkGroupSize", i32 0}
283+
!235 = !{!"WorkGroupMemorySizeInBytes", i32 0}
284+
!236 = !{!"IndexFormat", i32 6}
285+
!237 = !{!"SubgroupSize", i32 0}
286+
!238 = !{!"taskInfo", !239, !234, !235, !237}
287+
!239 = !{!"MaxNumOfOutputs", i32 0}
288+
!240 = !{!"NBarrierCnt", i32 0}
289+
!241 = !{!"rtInfo", !242, !243, !244, !245, !246, !247, !248, !249, !250, !251, !252, !253, !254}
290+
!242 = !{!"RayQueryAllocSizeInBytes", i32 0}
291+
!243 = !{!"NumContinuations", i32 0}
292+
!244 = !{!"RTAsyncStackAddrspace", i32 -1}
293+
!245 = !{!"RTAsyncStackSurfaceStateOffset", i1* null}
294+
!246 = !{!"SWHotZoneAddrspace", i32 -1}
295+
!247 = !{!"SWHotZoneSurfaceStateOffset", i1* null}
296+
!248 = !{!"SWStackAddrspace", i32 -1}
297+
!249 = !{!"SWStackSurfaceStateOffset", i1* null}
298+
!250 = !{!"RTSyncStackAddrspace", i32 -1}
299+
!251 = !{!"RTSyncStackSurfaceStateOffset", i1* null}
300+
!252 = !{!"doSyncDispatchRays", i1 false}
301+
!253 = !{!"MemStyle", !"Xe"}
302+
!254 = !{!"GlobalDataStyle", !"Xe"}
303+
!255 = !{!"CurUniqueIndirectIdx", i32 0}
304+
!256 = !{!"inlineDynTextures"}
305+
!257 = !{!"inlineResInfoData"}
306+
!258 = !{!"immConstant", !259, !260, !261}
307+
!259 = !{!"data"}
308+
!260 = !{!"sizes"}
309+
!261 = !{!"zeroIdxs"}
310+
!262 = !{!"stringConstants"}
311+
!263 = !{!"inlineBuffers", !264, !268, !269}
312+
!264 = !{!"inlineBuffersVec[0]", !265, !266, !267}
313+
!265 = !{!"alignment", i32 0}
314+
!266 = !{!"allocSize", i64 0}
315+
!267 = !{!"Buffer"}
316+
!268 = !{!"inlineBuffersVec[1]", !265, !266, !267}
317+
!269 = !{!"inlineBuffersVec[2]", !265, !266, !267}
318+
!270 = !{!"GlobalPointerProgramBinaryInfos"}
319+
!271 = !{!"ConstantPointerProgramBinaryInfos"}
320+
!272 = !{!"GlobalBufferAddressRelocInfo"}
321+
!273 = !{!"ConstantBufferAddressRelocInfo"}
322+
!274 = !{!"forceLscCacheList"}
323+
!275 = !{!"SrvMap"}
324+
!276 = !{!"RasterizerOrderedByteAddressBuffer"}
325+
!277 = !{!"RasterizerOrderedViews"}
326+
!278 = !{!"MinNOSPushConstantSize", i32 0}
327+
!279 = !{!"inlineProgramScopeOffsets"}
328+
!280 = !{!"shaderData", !281}
329+
!281 = !{!"numReplicas", i32 0}
330+
!282 = !{!"URBInfo", !283, !284, !285}
331+
!283 = !{!"has64BVertexHeaderInput", i1 false}
332+
!284 = !{!"has64BVertexHeaderOutput", i1 false}
333+
!285 = !{!"hasVertexHeader", i1 true}
334+
!286 = !{!"UseBindlessImage", i1 false}
335+
!287 = !{!"enableRangeReduce", i1 false}
336+
!288 = !{!"allowMatchMadOptimizationforVS", i1 false}
337+
!289 = !{!"disableMatchMadOptimizationForCS", i1 false}
338+
!290 = !{!"disableMemOptforNegativeOffsetLoads", i1 false}
339+
!291 = !{!"enableThreeWayLoadSpiltOpt", i1 false}
340+
!292 = !{!"statefulResourcesNotAliased", i1 false}
341+
!293 = !{!"disableMixMode", i1 false}
342+
!294 = !{!"genericAccessesResolved", i1 false}
343+
!295 = !{!"disableSeparateSpillPvtScratchSpace", i1 false}
344+
!296 = !{!"disableSeparateScratchWA", i1 false}
345+
!297 = !{!"PrivateMemoryPerFG", !298, !299}
346+
!298 = !{!"PrivateMemoryPerFGMap[0]", void (<8 x i32>, <8 x i32>)* @test}
347+
!299 = !{!"PrivateMemoryPerFGValue[0]", i32 0}
348+
!300 = !{!"m_OptsToDisable"}
349+
!301 = !{!"capabilities", !302}
350+
!302 = !{!"globalVariableDecorationsINTEL", i1 false}
351+
!303 = !{!"m_ShaderResourceViewMcsMask", !304, !305}
352+
!304 = !{!"m_ShaderResourceViewMcsMaskVec[0]", i64 0}
353+
!305 = !{!"m_ShaderResourceViewMcsMaskVec[1]", i64 0}
354+
!306 = !{!"computedDepthMode", i32 0}
355+
!307 = !{!"isHDCFastClearShader", i1 false}
356+
!308 = !{!"argRegisterReservations", !309}
357+
!309 = !{!"argRegisterReservationsVec[0]", i32 0}
358+
!310 = !{i32 2, i32 0}
359+
!311 = !{!"clang version 14.0.5"}
360+
!312 = !{i32 1, !"wchar_size", i32 4}
361+
!313 = !{!"80"}
362+
!314 = !{!"-3"}

0 commit comments

Comments
 (0)