@@ -15,138 +15,128 @@ std::unique_lock<BuiltinFunctionsLib::MutexType> BuiltinFunctionsLib::obtainUniq
1515 return std::unique_lock<BuiltinFunctionsLib::MutexType>(this ->ownershipMutex );
1616}
1717
18- void BuiltinFunctionsLibImpl::initBuiltinKernel (Builtin func ) {
19- auto builtId = static_cast <uint32_t >(func);
20-
21- const char *builtinName = nullptr ;
22- NEO::EBuiltInOps::Type builtin;
23-
24- switch ( static_cast <Builtin>(builtId)) {
25- case Builtin::CopyBufferBytes:
26- builtinName = " copyBufferToBufferBytesSingle " ;
27- builtin = NEO::EBuiltInOps::CopyBufferToBuffer ;
28- break ;
29- case Builtin:: CopyBufferRectBytes2d:
30- builtinName = " CopyBufferRectBytes2d " ;
31- builtin = NEO::EBuiltInOps::CopyBufferRect ;
32- break ;
33- case Builtin:: CopyBufferRectBytes3d:
34- builtinName = " CopyBufferRectBytes3d " ;
35- builtin = NEO::EBuiltInOps::CopyBufferRect ;
36- break ;
37- case Builtin::CopyBufferToBufferMiddle:
38- builtinName = " CopyBufferToBufferMiddleRegion " ;
39- builtin = NEO::EBuiltInOps::CopyBufferToBuffer ;
40- break ;
41- case Builtin::CopyBufferToBufferSide:
42- builtinName = " CopyBufferToBufferSideRegion " ;
43- builtin = NEO::EBuiltInOps::CopyBufferToBuffer ;
44- break ;
45- case Builtin:: FillBufferImmediate:
46- builtinName = " FillBufferImmediate " ;
47- builtin = NEO::EBuiltInOps::FillBuffer ;
48- break ;
49- case Builtin:: FillBufferSSHOffset:
50- builtinName = " FillBufferSSHOffset " ;
51- builtin = NEO::EBuiltInOps::FillBuffer ;
52- break ;
53- case Builtin:: FillBufferMiddle:
54- builtinName = " FillBufferMiddle " ;
55- builtin = NEO::EBuiltInOps::FillBuffer ;
56- break ;
57- case Builtin:: FillBufferRightLeftover:
58- builtinName = " FillBufferRightLeftover " ;
59- builtin = NEO::EBuiltInOps::FillBuffer ;
60- break ;
61- case Builtin:: QueryKernelTimestamps:
62- builtinName = " QueryKernelTimestamps" ;
63- builtin = NEO::EBuiltInOps::QueryKernelTimestamps ;
64- break ;
65- case Builtin:: QueryKernelTimestampsWithOffsets:
66- builtinName = " QueryKernelTimestampsWithOffsets " ;
67- builtin = NEO::EBuiltInOps::QueryKernelTimestamps ;
68- break ;
69- default :
70- UNRECOVERABLE_IF ( true ) ;
71- };
72-
73- builtins[builtId] = loadBuiltIn (builtin, builtinName);
18+ void BuiltinFunctionsLibImpl::initFunctions ( ) {
19+ for ( uint32_t builtId = 0 ; builtId < static_cast <uint32_t >(Builtin::COUNT); builtId++) {
20+ const char *builtinName = nullptr ;
21+ NEO::EBuiltInOps::Type builtin ;
22+
23+ switch ( static_cast <Builtin>(builtId)) {
24+ case Builtin::CopyBufferBytes:
25+ builtinName = " copyBufferToBufferBytesSingle " ;
26+ builtin = NEO::EBuiltInOps::CopyBufferToBuffer ;
27+ break ;
28+ case Builtin::CopyBufferRectBytes2d:
29+ builtinName = " CopyBufferRectBytes2d" ;
30+ builtin = NEO::EBuiltInOps::CopyBufferRect ;
31+ break ;
32+ case Builtin::CopyBufferRectBytes3d:
33+ builtinName = " CopyBufferRectBytes3d" ;
34+ builtin = NEO::EBuiltInOps::CopyBufferRect ;
35+ break ;
36+ case Builtin::CopyBufferToBufferMiddle:
37+ builtinName = " CopyBufferToBufferMiddleRegion " ;
38+ builtin = NEO::EBuiltInOps::CopyBufferToBuffer ;
39+ break ;
40+ case Builtin::CopyBufferToBufferSide:
41+ builtinName = " CopyBufferToBufferSideRegion " ;
42+ builtin = NEO::EBuiltInOps::CopyBufferToBuffer ;
43+ break ;
44+ case Builtin::FillBufferImmediate:
45+ builtinName = " FillBufferImmediate" ;
46+ builtin = NEO::EBuiltInOps::FillBuffer ;
47+ break ;
48+ case Builtin::FillBufferSSHOffset:
49+ builtinName = " FillBufferSSHOffset" ;
50+ builtin = NEO::EBuiltInOps::FillBuffer ;
51+ break ;
52+ case Builtin::FillBufferMiddle:
53+ builtinName = " FillBufferMiddle" ;
54+ builtin = NEO::EBuiltInOps::FillBuffer ;
55+ break ;
56+ case Builtin::FillBufferRightLeftover:
57+ builtinName = " FillBufferRightLeftover" ;
58+ builtin = NEO::EBuiltInOps::FillBuffer ;
59+ break ;
60+ case Builtin::QueryKernelTimestamps:
61+ builtinName = " QueryKernelTimestamps" ;
62+ builtin = NEO::EBuiltInOps:: QueryKernelTimestamps;
63+ break ;
64+ case Builtin::QueryKernelTimestampsWithOffsets:
65+ builtinName = " QueryKernelTimestampsWithOffsets" ;
66+ builtin = NEO::EBuiltInOps::QueryKernelTimestamps ;
67+ break ;
68+ default :
69+ continue ;
70+ } ;
71+
72+ builtins[builtId] = loadBuiltIn (builtin, builtinName);
73+ }
7474}
7575
76- void BuiltinFunctionsLibImpl::initBuiltinImageKernel (ImageBuiltin func ) {
77- auto builtId = static_cast <uint32_t >(func);
78-
79- const char *builtinName = nullptr ;
80- NEO::EBuiltInOps::Type builtin;
81-
82- switch ( static_cast <ImageBuiltin>(builtId)) {
83- case ImageBuiltin:: CopyBufferToImage3d16Bytes:
84- builtinName = " CopyBufferToImage3d16Bytes " ;
85- builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
86- break ;
87- case ImageBuiltin:: CopyBufferToImage3d2Bytes:
88- builtinName = " CopyBufferToImage3d2Bytes " ;
89- builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
90- break ;
91- case ImageBuiltin:: CopyBufferToImage3d4Bytes:
92- builtinName = " CopyBufferToImage3d4Bytes " ;
93- builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
94- break ;
95- case ImageBuiltin:: CopyBufferToImage3d8Bytes:
96- builtinName = " CopyBufferToImage3d8Bytes " ;
97- builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
98- break ;
99- case ImageBuiltin:: CopyBufferToImage3dBytes:
100- builtinName = " CopyBufferToImage3dBytes " ;
101- builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
102- break ;
103- case ImageBuiltin:: CopyImage3dToBuffer16Bytes:
104- builtinName = " CopyImage3dToBuffer16Bytes " ;
105- builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
106- break ;
107- case ImageBuiltin:: CopyImage3dToBuffer2Bytes:
108- builtinName = " CopyImage3dToBuffer2Bytes " ;
109- builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
110- break ;
111- case ImageBuiltin:: CopyImage3dToBuffer4Bytes:
112- builtinName = " CopyImage3dToBuffer4Bytes " ;
113- builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
114- break ;
115- case ImageBuiltin:: CopyImage3dToBuffer8Bytes:
116- builtinName = " CopyImage3dToBuffer8Bytes " ;
117- builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
118- break ;
119- case ImageBuiltin:: CopyImage3dToBufferBytes:
120- builtinName = " CopyImage3dToBufferBytes " ;
121- builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
122- break ;
123- case ImageBuiltin::CopyImageRegion:
124- builtinName = " CopyImageToImage3d" ;
125- builtin = NEO::EBuiltInOps::CopyImageToImage3d ;
126- break ;
127- default :
128- UNRECOVERABLE_IF ( true ) ;
129- };
130-
131- imageBuiltins[builtId] = loadBuiltIn (builtin, builtinName);
76+ void BuiltinFunctionsLibImpl::initImageFunctions ( ) {
77+ for ( uint32_t builtId = 0 ; builtId < static_cast <uint32_t >(ImageBuiltin::COUNT); builtId++) {
78+ const char *builtinName = nullptr ;
79+ NEO::EBuiltInOps::Type builtin ;
80+
81+ switch ( static_cast <ImageBuiltin>(builtId)) {
82+ case ImageBuiltin::CopyBufferToImage3d16Bytes:
83+ builtinName = " CopyBufferToImage3d16Bytes" ;
84+ builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
85+ break ;
86+ case ImageBuiltin::CopyBufferToImage3d2Bytes:
87+ builtinName = " CopyBufferToImage3d2Bytes" ;
88+ builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
89+ break ;
90+ case ImageBuiltin::CopyBufferToImage3d4Bytes:
91+ builtinName = " CopyBufferToImage3d4Bytes" ;
92+ builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
93+ break ;
94+ case ImageBuiltin::CopyBufferToImage3d8Bytes:
95+ builtinName = " CopyBufferToImage3d8Bytes" ;
96+ builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
97+ break ;
98+ case ImageBuiltin::CopyBufferToImage3dBytes:
99+ builtinName = " CopyBufferToImage3dBytes" ;
100+ builtin = NEO::EBuiltInOps::CopyBufferToImage3d ;
101+ break ;
102+ case ImageBuiltin::CopyImage3dToBuffer16Bytes:
103+ builtinName = " CopyImage3dToBuffer16Bytes" ;
104+ builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
105+ break ;
106+ case ImageBuiltin::CopyImage3dToBuffer2Bytes:
107+ builtinName = " CopyImage3dToBuffer2Bytes" ;
108+ builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
109+ break ;
110+ case ImageBuiltin::CopyImage3dToBuffer4Bytes:
111+ builtinName = " CopyImage3dToBuffer4Bytes" ;
112+ builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
113+ break ;
114+ case ImageBuiltin::CopyImage3dToBuffer8Bytes:
115+ builtinName = " CopyImage3dToBuffer8Bytes" ;
116+ builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
117+ break ;
118+ case ImageBuiltin::CopyImage3dToBufferBytes:
119+ builtinName = " CopyImage3dToBufferBytes" ;
120+ builtin = NEO::EBuiltInOps::CopyImage3dToBuffer ;
121+ break ;
122+ case ImageBuiltin::CopyImageRegion:
123+ builtinName = " CopyImageToImage3d " ;
124+ builtin = NEO::EBuiltInOps:: CopyImageToImage3d;
125+ break ;
126+ default :
127+ continue ;
128+ } ;
129+
130+ imageBuiltins[builtId] = loadBuiltIn (builtin, builtinName);
131+ }
132132}
133133
134134Kernel *BuiltinFunctionsLibImpl::getFunction (Builtin func) {
135135 auto builtId = static_cast <uint32_t >(func);
136-
137- if (builtins[builtId].get () == nullptr ) {
138- initBuiltinKernel (func);
139- }
140-
141136 return builtins[builtId]->func .get ();
142137}
143138Kernel *BuiltinFunctionsLibImpl::getImageFunction (ImageBuiltin func) {
144139 auto builtId = static_cast <uint32_t >(func);
145-
146- if (imageBuiltins[builtId].get () == nullptr ) {
147- initBuiltinImageKernel (func);
148- }
149-
150140 return imageBuiltins[builtId]->func .get ();
151141}
152142
@@ -155,10 +145,6 @@ void BuiltinFunctionsLibImpl::initPageFaultFunction() {
155145}
156146
157147Kernel *BuiltinFunctionsLibImpl::getPageFaultFunction () {
158- if (pageFaultBuiltin.get () == nullptr ) {
159- initPageFaultFunction ();
160- }
161-
162148 return pageFaultBuiltin->func .get ();
163149}
164150
0 commit comments