use crate::Axis;
#[derive(Clone, PartialEq, Eq, Hash, Debug)]
pub enum StageStorage {
Tiled {
block: Vec<(Axis, usize)>,
chunks: RowChunks,
},
Strided,
Lines {
read: UnitRead,
},
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, serde::Serialize, serde::Deserialize)]
pub enum RowChunks {
InOrder,
Swizzled,
Padded,
}
impl RowChunks {
pub const CHUNK_BYTES: usize = 16;
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, serde::Serialize, serde::Deserialize)]
pub enum UnitRead {
Shuffle,
#[serde(rename = "Window")]
PlaneShared,
}