pub struct AudioProvenance {
pub reg_attrib: RegisterAttribution,
pub mix_trace: MixTrace,
pub attrib_pc: u16,
pub attrib_cycle: u64,
}Expand description
Everything audio provenance owns, behind ONE pointer.
Consolidated after measurement, not for tidiness. The first shape put
four fields directly on Apu — two Option<Box<..>> plus the u16/u64
attribution context. That grew the struct on the hot path and the
apu_throughput bench read +9% on two of three workloads with the arm
OFF, which is the configuration the shipped frontend runs. One Option<Box>
costs eight bytes and one null test when disarmed, and everything else moves
behind the allocation where only an armed session pays for it.
Fields§
§reg_attrib: RegisterAttributionLast write to each of $4000-$4017, with its cause.
mix_trace: MixTraceThis frame’s per-CPU-cycle mix records.
attrib_pc: u16PC of the instruction currently executing, pushed down once per
instruction by the core so write_register can attribute a write.
attrib_cycle: u64CPU-cycle counterpart of Self::attrib_pc.
Implementations§
Trait Implementations§
Source§impl Clone for AudioProvenance
impl Clone for AudioProvenance
Source§fn clone(&self) -> AudioProvenance
fn clone(&self) -> AudioProvenance
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more