Skip to content

Commit

Permalink
squash! WIP: fix(msl-out): don't check member.binding in `write_typ…
Browse files Browse the repository at this point in the history
…e_defs`, `should_pack_struct_member`

Add tests!
  • Loading branch information
ErichDonGubler committed Nov 20, 2023
1 parent dfa8b94 commit f669d6f
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions naga/tests/in/struct-layout.wgsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Create several type definitions to test `align` and `size` layout.

struct NoPadding {
@location(0)
v3: vec3f, // align 16, size 12; no start padding needed
@location(1)
f3: f32, // align 4, size 4; no start padding needed
}
// struct NoPaddingNoBindings {
// v3: vec3f,
// f3: f32,
// }
@fragment
fn no_padding_frag(input: NoPadding) -> @location(0) vec4f {
_ = input;
return vec4f(0.0);
}
@vertex
fn no_padding_vert(input: NoPadding) -> @builtin(position) vec4f {
_ = input;
return vec4f(0.0);
}

struct NeedsPadding {
@location(0) f3_forces_padding: f32, // align 4, size 4; no start padding needed
@location(1) v3_needs_padding: vec3f, // align 16, size 12; needs 12 bytes of padding
@location(2) f3: f32, // align 4, size 4; no start padding needed
}
// struct NeedsPaddingNoBindings {
// f3_forces_padding: f32,
// v3_needs_padding: vec3f,
// f3: f32,
// }
@fragment
fn needs_padding_frag(input: NeedsPadding) -> @location(0) vec4f {
_ = input;
return vec4f(0.0);
}
@vertex
fn needs_padding_vert(input: NeedsPadding) -> @builtin(position) vec4f {
_ = input;
return vec4f(0.0);
}

0 comments on commit f669d6f

Please sign in to comment.