use objc2::{Encode, Encoding, RefEncode};
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct MTLCounterResultTimestamp {
pub timestamp: u64,
}
unsafe impl Encode for MTLCounterResultTimestamp {
const ENCODING: Encoding = Encoding::Struct("?", &[<u64>::ENCODING]);
}
unsafe impl RefEncode for MTLCounterResultTimestamp {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct MTLCounterResultStageUtilization {
pub total_cycles: u64,
pub vertex_cycles: u64,
pub tessellation_cycles: u64,
pub post_tessellation_vertex_cycles: u64,
pub fragment_cycles: u64,
pub render_target_cycles: u64,
}
unsafe impl Encode for MTLCounterResultStageUtilization {
const ENCODING: Encoding = Encoding::Struct(
"?",
&[<u64>::ENCODING, <u64>::ENCODING, <u64>::ENCODING, <u64>::ENCODING, <u64>::ENCODING, <u64>::ENCODING],
);
}
unsafe impl RefEncode for MTLCounterResultStageUtilization {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct MTLCounterResultStatistic {
pub tessellation_input_patches: u64,
pub vertex_invocations: u64,
pub post_tessellation_vertex_invocations: u64,
pub clipper_invocations: u64,
pub clipper_primitives_out: u64,
pub fragment_invocations: u64,
pub fragments_passed: u64,
pub compute_kernel_invocations: u64,
}
unsafe impl Encode for MTLCounterResultStatistic {
const ENCODING: Encoding = Encoding::Struct(
"?",
&[
<u64>::ENCODING,
<u64>::ENCODING,
<u64>::ENCODING,
<u64>::ENCODING,
<u64>::ENCODING,
<u64>::ENCODING,
<u64>::ENCODING,
<u64>::ENCODING,
],
);
}
unsafe impl RefEncode for MTLCounterResultStatistic {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}