pub struct FroxelOverflowReadbackState {
pub inflight: bool,
pub pending_overflow_count: Option<u32>,
}Expand description
Mirror of EdgeOverflowReadbackState for the GPU light-culling
per-froxel capacity auto-grow loop. The cull shader atomic-adds
into LightCullingBuffers::overflow_buffer every time it bumps a
froxel’s count past max_per_froxel_capacity; the host records a
copy_buffer_to_buffer into the per-frame command encoder, then
mapAsync’s the staging copy. When the resolved value is non-zero,
the next render preamble calls
crate::AwsmRenderer::set_max_per_froxel_capacity(current * 2)
so subsequent frames have headroom. Single-buffered (inflight
gates the next kick).
Fields§
§inflight: booltrue while a mapAsync is in flight against
LightCullingBuffers::overflow_readback_buffer. Subsequent
frames skip the copy + kick until the prior resolves.
pending_overflow_count: Option<u32>Pending 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 FroxelOverflowReadbackState
impl Default for FroxelOverflowReadbackState
Source§fn default() -> FroxelOverflowReadbackState
fn default() -> FroxelOverflowReadbackState
Auto Trait Implementations§
impl Freeze for FroxelOverflowReadbackState
impl RefUnwindSafe for FroxelOverflowReadbackState
impl Send for FroxelOverflowReadbackState
impl Sync for FroxelOverflowReadbackState
impl Unpin for FroxelOverflowReadbackState
impl UnsafeUnpin for FroxelOverflowReadbackState
impl UnwindSafe for FroxelOverflowReadbackState
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().