objc2_metal_performance_shaders/generated/MPSNeuralNetwork/
MPSCNNGroupNormalization.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7use objc2_metal::*;
8
9use crate::*;
10
11extern_class!(
12 #[unsafe(super(MPSNNGradientState, MPSState, NSObject))]
22 #[derive(Debug, PartialEq, Eq, Hash)]
23 #[cfg(all(
24 feature = "MPSCore",
25 feature = "MPSNNGradientState",
26 feature = "MPSState"
27 ))]
28 pub struct MPSCNNGroupNormalizationGradientState;
29);
30
31#[cfg(all(
32 feature = "MPSCore",
33 feature = "MPSNNGradientState",
34 feature = "MPSState"
35))]
36extern_conformance!(
37 unsafe impl NSObjectProtocol for MPSCNNGroupNormalizationGradientState {}
38);
39
40#[cfg(all(
41 feature = "MPSCore",
42 feature = "MPSNNGradientState",
43 feature = "MPSState"
44))]
45impl MPSCNNGroupNormalizationGradientState {
46 extern_methods!(
47 #[cfg(all(feature = "MPSCNNKernel", feature = "MPSKernel"))]
48 #[unsafe(method(groupNormalization))]
50 #[unsafe(method_family = none)]
51 pub unsafe fn groupNormalization(&self) -> Retained<MPSCNNGroupNormalization>;
52
53 #[unsafe(method(gamma))]
55 #[unsafe(method_family = none)]
56 pub unsafe fn gamma(&self) -> Option<Retained<ProtocolObject<dyn MTLBuffer>>>;
57
58 #[unsafe(method(beta))]
60 #[unsafe(method_family = none)]
61 pub unsafe fn beta(&self) -> Option<Retained<ProtocolObject<dyn MTLBuffer>>>;
62
63 #[unsafe(method(gradientForGamma))]
64 #[unsafe(method_family = none)]
65 pub unsafe fn gradientForGamma(&self) -> Retained<ProtocolObject<dyn MTLBuffer>>;
66
67 #[unsafe(method(gradientForBeta))]
68 #[unsafe(method_family = none)]
69 pub unsafe fn gradientForBeta(&self) -> Retained<ProtocolObject<dyn MTLBuffer>>;
70
71 #[unsafe(method(temporaryStateWithCommandBuffer:textureDescriptor:))]
73 #[unsafe(method_family = none)]
74 pub unsafe fn temporaryStateWithCommandBuffer_textureDescriptor(
75 cmd_buf: &ProtocolObject<dyn MTLCommandBuffer>,
76 descriptor: &MTLTextureDescriptor,
77 ) -> Retained<Self>;
78
79 #[unsafe(method(temporaryStateWithCommandBuffer:))]
80 #[unsafe(method_family = none)]
81 pub unsafe fn temporaryStateWithCommandBuffer(
82 cmd_buf: &ProtocolObject<dyn MTLCommandBuffer>,
83 ) -> Retained<Self>;
84
85 #[unsafe(method(temporaryStateWithCommandBuffer:bufferSize:))]
86 #[unsafe(method_family = none)]
87 pub unsafe fn temporaryStateWithCommandBuffer_bufferSize(
88 cmd_buf: &ProtocolObject<dyn MTLCommandBuffer>,
89 buffer_size: usize,
90 ) -> Retained<Self>;
91
92 #[unsafe(method(initWithDevice:textureDescriptor:))]
94 #[unsafe(method_family = init)]
95 pub unsafe fn initWithDevice_textureDescriptor(
96 this: Allocated<Self>,
97 device: &ProtocolObject<dyn MTLDevice>,
98 descriptor: &MTLTextureDescriptor,
99 ) -> Retained<Self>;
100
101 #[unsafe(method(initWithResource:))]
108 #[unsafe(method_family = init)]
109 pub unsafe fn initWithResource(
110 this: Allocated<Self>,
111 resource: Option<&ProtocolObject<dyn MTLResource>>,
112 ) -> Retained<Self>;
113
114 #[unsafe(method(initWithDevice:bufferSize:))]
115 #[unsafe(method_family = init)]
116 pub unsafe fn initWithDevice_bufferSize(
117 this: Allocated<Self>,
118 device: &ProtocolObject<dyn MTLDevice>,
119 buffer_size: usize,
120 ) -> Retained<Self>;
121 );
122}
123
124#[cfg(all(
126 feature = "MPSCore",
127 feature = "MPSNNGradientState",
128 feature = "MPSState"
129))]
130impl MPSCNNGroupNormalizationGradientState {
131 extern_methods!(
132 #[unsafe(method(init))]
133 #[unsafe(method_family = init)]
134 pub unsafe fn init(this: Allocated<Self>) -> Option<Retained<Self>>;
135
136 #[unsafe(method(initWithDevice:resourceList:))]
143 #[unsafe(method_family = init)]
144 pub unsafe fn initWithDevice_resourceList(
145 this: Allocated<Self>,
146 device: &ProtocolObject<dyn MTLDevice>,
147 resource_list: &MPSStateResourceList,
148 ) -> Retained<Self>;
149
150 #[unsafe(method(temporaryStateWithCommandBuffer:resourceList:))]
154 #[unsafe(method_family = none)]
155 pub unsafe fn temporaryStateWithCommandBuffer_resourceList(
156 command_buffer: &ProtocolObject<dyn MTLCommandBuffer>,
157 resource_list: &MPSStateResourceList,
158 ) -> Retained<Self>;
159
160 #[unsafe(method(initWithResources:))]
172 #[unsafe(method_family = init)]
173 pub unsafe fn initWithResources(
174 this: Allocated<Self>,
175 resources: Option<&NSArray<ProtocolObject<dyn MTLResource>>>,
176 ) -> Retained<Self>;
177 );
178}
179
180#[cfg(all(
182 feature = "MPSCore",
183 feature = "MPSNNGradientState",
184 feature = "MPSState"
185))]
186impl MPSCNNGroupNormalizationGradientState {
187 extern_methods!(
188 #[unsafe(method(new))]
189 #[unsafe(method_family = new)]
190 pub unsafe fn new() -> Retained<Self>;
191 );
192}
193
194#[cfg(all(
196 feature = "MPSCore",
197 feature = "MPSNNGradientState",
198 feature = "MPSState"
199))]
200pub type MPSCNNGroupNormalizationGradientStateBatch =
201 NSArray<MPSCNNGroupNormalizationGradientState>;
202
203extern_protocol!(
204 pub unsafe trait MPSCNNGroupNormalizationDataSource:
210 NSObjectProtocol + NSCopying
211 {
212 #[unsafe(method(gamma))]
216 #[unsafe(method_family = none)]
217 unsafe fn gamma(&self) -> *mut c_float;
218
219 #[unsafe(method(beta))]
223 #[unsafe(method_family = none)]
224 unsafe fn beta(&self) -> *mut c_float;
225
226 #[unsafe(method(numberOfFeatureChannels))]
227 #[unsafe(method_family = none)]
228 unsafe fn numberOfFeatureChannels(&self) -> NSUInteger;
229
230 #[unsafe(method(numberOfGroups))]
232 #[unsafe(method_family = none)]
233 unsafe fn numberOfGroups(&self) -> NSUInteger;
234
235 #[unsafe(method(setNumberOfGroups:))]
237 #[unsafe(method_family = none)]
238 unsafe fn setNumberOfGroups(&self, number_of_groups: NSUInteger);
239
240 #[unsafe(method(label))]
244 #[unsafe(method_family = none)]
245 unsafe fn label(&self) -> Option<Retained<NSString>>;
246
247 #[cfg(all(
248 feature = "MPSCNNNormalizationWeights",
249 feature = "MPSCore",
250 feature = "MPSNNGradientState",
251 feature = "MPSState"
252 ))]
253 #[optional]
280 #[unsafe(method(updateGammaAndBetaWithCommandBuffer:groupNormalizationStateBatch:))]
281 #[unsafe(method_family = none)]
282 unsafe fn updateGammaAndBetaWithCommandBuffer_groupNormalizationStateBatch(
283 &self,
284 command_buffer: &ProtocolObject<dyn MTLCommandBuffer>,
285 group_normalization_state_batch: &MPSCNNGroupNormalizationGradientStateBatch,
286 ) -> Option<Retained<MPSCNNNormalizationGammaAndBetaState>>;
287
288 #[cfg(all(
289 feature = "MPSCore",
290 feature = "MPSNNGradientState",
291 feature = "MPSState"
292 ))]
293 #[optional]
303 #[unsafe(method(updateGammaAndBetaWithGroupNormalizationStateBatch:))]
304 #[unsafe(method_family = none)]
305 unsafe fn updateGammaAndBetaWithGroupNormalizationStateBatch(
306 &self,
307 group_normalization_state_batch: &MPSCNNGroupNormalizationGradientStateBatch,
308 ) -> bool;
309
310 #[optional]
315 #[unsafe(method(epsilon))]
316 #[unsafe(method_family = none)]
317 unsafe fn epsilon(&self) -> c_float;
318
319 #[optional]
325 #[unsafe(method(encodeWithCoder:))]
326 #[unsafe(method_family = none)]
327 unsafe fn encodeWithCoder(&self, a_coder: &NSCoder);
328
329 #[optional]
333 #[unsafe(method(initWithCoder:))]
334 #[unsafe(method_family = init)]
335 unsafe fn initWithCoder(
336 this: Allocated<Self>,
337 a_decoder: &NSCoder,
338 ) -> Option<Retained<Self>>;
339
340 #[optional]
341 #[unsafe(method(supportsSecureCoding))]
342 #[unsafe(method_family = none)]
343 unsafe fn supportsSecureCoding() -> bool;
344
345 #[optional]
359 #[unsafe(method(copyWithZone:device:))]
360 #[unsafe(method_family = copy)]
361 unsafe fn copyWithZone_device(
362 &self,
363 zone: *mut NSZone,
364 device: Option<&ProtocolObject<dyn MTLDevice>>,
365 ) -> Retained<Self>;
366 }
367);
368
369extern_class!(
370 #[unsafe(super(MPSCNNKernel, MPSKernel, NSObject))]
383 #[derive(Debug, PartialEq, Eq, Hash)]
384 #[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
385 pub struct MPSCNNGroupNormalization;
386);
387
388#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
389extern_conformance!(
390 unsafe impl NSCoding for MPSCNNGroupNormalization {}
391);
392
393#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
394extern_conformance!(
395 unsafe impl NSCopying for MPSCNNGroupNormalization {}
396);
397
398#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
399unsafe impl CopyingHelper for MPSCNNGroupNormalization {
400 type Result = Self;
401}
402
403#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
404extern_conformance!(
405 unsafe impl NSObjectProtocol for MPSCNNGroupNormalization {}
406);
407
408#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
409extern_conformance!(
410 unsafe impl NSSecureCoding for MPSCNNGroupNormalization {}
411);
412
413#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
414impl MPSCNNGroupNormalization {
415 extern_methods!(
416 #[unsafe(method(epsilon))]
418 #[unsafe(method_family = none)]
419 pub unsafe fn epsilon(&self) -> c_float;
420
421 #[unsafe(method(setEpsilon:))]
423 #[unsafe(method_family = none)]
424 pub unsafe fn setEpsilon(&self, epsilon: c_float);
425
426 #[unsafe(method(dataSource))]
428 #[unsafe(method_family = none)]
429 pub unsafe fn dataSource(
430 &self,
431 ) -> Retained<ProtocolObject<dyn MPSCNNGroupNormalizationDataSource>>;
432
433 #[unsafe(method(initWithDevice:dataSource:))]
438 #[unsafe(method_family = init)]
439 pub unsafe fn initWithDevice_dataSource(
440 this: Allocated<Self>,
441 device: &ProtocolObject<dyn MTLDevice>,
442 data_source: &ProtocolObject<dyn MPSCNNGroupNormalizationDataSource>,
443 ) -> Retained<Self>;
444
445 #[unsafe(method(initWithDevice:))]
447 #[unsafe(method_family = init)]
448 pub unsafe fn initWithDevice(
449 this: Allocated<Self>,
450 device: &ProtocolObject<dyn MTLDevice>,
451 ) -> Retained<Self>;
452
453 #[unsafe(method(initWithCoder:device:))]
471 #[unsafe(method_family = init)]
472 pub unsafe fn initWithCoder_device(
473 this: Allocated<Self>,
474 a_decoder: &NSCoder,
475 device: &ProtocolObject<dyn MTLDevice>,
476 ) -> Option<Retained<Self>>;
477
478 #[unsafe(method(reloadGammaAndBetaFromDataSource))]
480 #[unsafe(method_family = none)]
481 pub unsafe fn reloadGammaAndBetaFromDataSource(&self);
482
483 #[cfg(all(feature = "MPSCNNNormalizationWeights", feature = "MPSState"))]
484 #[unsafe(method(reloadGammaAndBetaWithCommandBuffer:gammaAndBetaState:))]
494 #[unsafe(method_family = none)]
495 pub unsafe fn reloadGammaAndBetaWithCommandBuffer_gammaAndBetaState(
496 &self,
497 command_buffer: &ProtocolObject<dyn MTLCommandBuffer>,
498 gamma_and_beta_state: &MPSCNNNormalizationGammaAndBetaState,
499 );
500
501 #[cfg(all(
502 feature = "MPSImage",
503 feature = "MPSNNGradientState",
504 feature = "MPSState"
505 ))]
506 #[unsafe(method(resultStateForSourceImage:sourceStates:destinationImage:))]
509 #[unsafe(method_family = none)]
510 pub unsafe fn resultStateForSourceImage_sourceStates_destinationImage(
511 &self,
512 source_image: &MPSImage,
513 source_states: Option<&NSArray<MPSState>>,
514 destination_image: &MPSImage,
515 ) -> Option<Retained<MPSCNNGroupNormalizationGradientState>>;
516
517 #[cfg(all(
518 feature = "MPSImage",
519 feature = "MPSNNGradientState",
520 feature = "MPSState"
521 ))]
522 #[unsafe(method(temporaryResultStateForCommandBuffer:sourceImage:sourceStates:destinationImage:))]
525 #[unsafe(method_family = none)]
526 pub unsafe fn temporaryResultStateForCommandBuffer_sourceImage_sourceStates_destinationImage(
527 &self,
528 command_buffer: &ProtocolObject<dyn MTLCommandBuffer>,
529 source_image: &MPSImage,
530 source_states: Option<&NSArray<MPSState>>,
531 destination_image: &MPSImage,
532 ) -> Option<Retained<MPSCNNGroupNormalizationGradientState>>;
533 );
534}
535
536#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
538impl MPSCNNGroupNormalization {
539 extern_methods!(
540 #[unsafe(method(initWithCoder:))]
553 #[unsafe(method_family = init)]
554 pub unsafe fn initWithCoder(
555 this: Allocated<Self>,
556 a_decoder: &NSCoder,
557 ) -> Option<Retained<Self>>;
558 );
559}
560
561#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
563impl MPSCNNGroupNormalization {
564 extern_methods!(
565 #[unsafe(method(init))]
566 #[unsafe(method_family = init)]
567 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
568
569 #[unsafe(method(new))]
570 #[unsafe(method_family = new)]
571 pub unsafe fn new() -> Retained<Self>;
572 );
573}
574
575extern_class!(
576 #[unsafe(super(MPSCNNGradientKernel, MPSCNNBinaryKernel, MPSKernel, NSObject))]
582 #[derive(Debug, PartialEq, Eq, Hash)]
583 #[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
584 pub struct MPSCNNGroupNormalizationGradient;
585);
586
587#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
588extern_conformance!(
589 unsafe impl NSCoding for MPSCNNGroupNormalizationGradient {}
590);
591
592#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
593extern_conformance!(
594 unsafe impl NSCopying for MPSCNNGroupNormalizationGradient {}
595);
596
597#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
598unsafe impl CopyingHelper for MPSCNNGroupNormalizationGradient {
599 type Result = Self;
600}
601
602#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
603extern_conformance!(
604 unsafe impl NSObjectProtocol for MPSCNNGroupNormalizationGradient {}
605);
606
607#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
608extern_conformance!(
609 unsafe impl NSSecureCoding for MPSCNNGroupNormalizationGradient {}
610);
611
612#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
613impl MPSCNNGroupNormalizationGradient {
614 extern_methods!();
615}
616
617#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
619impl MPSCNNGroupNormalizationGradient {
620 extern_methods!(
621 #[unsafe(method(initWithDevice:))]
629 #[unsafe(method_family = init)]
630 pub unsafe fn initWithDevice(
631 this: Allocated<Self>,
632 device: &ProtocolObject<dyn MTLDevice>,
633 ) -> Retained<Self>;
634
635 #[unsafe(method(initWithCoder:device:))]
653 #[unsafe(method_family = init)]
654 pub unsafe fn initWithCoder_device(
655 this: Allocated<Self>,
656 a_decoder: &NSCoder,
657 device: &ProtocolObject<dyn MTLDevice>,
658 ) -> Option<Retained<Self>>;
659 );
660}
661
662#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
664impl MPSCNNGroupNormalizationGradient {
665 extern_methods!(
666 #[unsafe(method(initWithCoder:))]
679 #[unsafe(method_family = init)]
680 pub unsafe fn initWithCoder(
681 this: Allocated<Self>,
682 a_decoder: &NSCoder,
683 ) -> Option<Retained<Self>>;
684 );
685}
686
687#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
689impl MPSCNNGroupNormalizationGradient {
690 extern_methods!(
691 #[unsafe(method(init))]
692 #[unsafe(method_family = init)]
693 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
694
695 #[unsafe(method(new))]
696 #[unsafe(method_family = new)]
697 pub unsafe fn new() -> Retained<Self>;
698 );
699}