After updating my nightly rust install my luminance application started rendering my models completely incorrectly, as if the attribute data is being garbled. On the 2022-11-11 nightly build it still works as expected so I'm quite sure rust-lang/rust#102750 being merged is what caused things to break, though I haven't bisected yet.
This is my vertex struct:
#[derive(Copy, Clone, Debug, Semantics)]
pub enum VertexSemantics {
#[sem(name = "position", repr = "[f32; 3]", wrapper = "VertexPosition")]
Position,
#[sem(name = "normal", repr = "[f32; 3]", wrapper = "VertexNormal")]
Normal,
#[sem(name = "uv", repr = "[f32; 2]", wrapper = "VertexUV")]
TextureCoords,
}
#[derive(Copy, Clone, Vertex)]
#[vertex(sem = "VertexSemantics")]
pub struct Vertex {
pub position: VertexPosition,
pub normal: VertexNormal,
pub uv: VertexUV,
}
Adding #[repr(C)] to Vertex fixes the issue so presumably luminance makes a bad assumption somewhere about vertex struct layout being not being reordered.
After updating my nightly rust install my luminance application started rendering my models completely incorrectly, as if the attribute data is being garbled. On the 2022-11-11 nightly build it still works as expected so I'm quite sure rust-lang/rust#102750 being merged is what caused things to break, though I haven't bisected yet.
This is my vertex struct:
Adding
#[repr(C)]toVertexfixes the issue so presumably luminance makes a bad assumption somewhere about vertex struct layout being not being reordered.