pub struct EdgeOverflowReadbackState {
pub inflight: bool,
pub pending_overflow_count: Option<(u32, u32)>,
}Expand description
Per-frame state for the MSAA edge-budget overflow readback loop.
The render frame copies 8 bytes
(edge_count, edge_overflow_count) from
crate::render_passes::material_opaque::edge_buffers::MaterialEdgeBuffers::data_buffer
into a CPU-mappable buffer, then kicks mapAsync. When the read
resolves, the next frame’s preamble inspects
pending_overflow_count: if > 0, the renderer calls
crate::AwsmRenderer::set_max_edge_budget(current * 2) so
subsequent frames have headroom. Single-buffered (inflight
gates the next kick) — under high mapping latency we lose one
frame’s signal rather than ringing a buffer.
Fields§
§inflight: booltrue while a mapAsync is in flight against
MaterialEdgeBuffers::overflow_readback_buffer. Subsequent
frames skip the copy + kick until the prior resolves.
pending_overflow_count: Option<(u32, u32)>Pending (edge_count, edge_overflow_count) snapshot from the
most recently resolved mapAsync. Ingested at the top of the
next render (set to None after reading).
Trait Implementations§
Source§impl Default for EdgeOverflowReadbackState
impl Default for EdgeOverflowReadbackState
Source§fn default() -> EdgeOverflowReadbackState
fn default() -> EdgeOverflowReadbackState
Auto Trait Implementations§
impl Freeze for EdgeOverflowReadbackState
impl RefUnwindSafe for EdgeOverflowReadbackState
impl Send for EdgeOverflowReadbackState
impl Sync for EdgeOverflowReadbackState
impl Unpin for EdgeOverflowReadbackState
impl UnsafeUnpin for EdgeOverflowReadbackState
impl UnwindSafe for EdgeOverflowReadbackState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().