diff --git a/bevy_kayak_renderer/src/render/unified/pipeline.rs b/bevy_kayak_renderer/src/render/unified/pipeline.rs index 58e01bf3cc8286851028c37fcaac262a95075103..b8215cef2e60d7e0cecfc4c1f099b64a2cda3d8a 100644 --- a/bevy_kayak_renderer/src/render/unified/pipeline.rs +++ b/bevy_kayak_renderer/src/render/unified/pipeline.rs @@ -337,6 +337,9 @@ struct QuadVertex { #[derive(Copy, Clone, ShaderType)] struct QuadType { pub t: i32, + pub _unused_1: i32, + pub _unused_2: i32, + pub _unused_3: i32, } pub struct QuadMeta { @@ -376,9 +379,10 @@ pub fn prepare_quads( sprite_meta.types_buffer.clear(); // sprite_meta.types_buffer.reserve(2, &render_device); - let quad_type_offset = sprite_meta.types_buffer.push(QuadType { t: 0 }); - let text_type_offset = sprite_meta.types_buffer.push(QuadType { t: 1 }); - let image_type_offset = sprite_meta.types_buffer.push(QuadType { t: 2 }); + let quad_type_offset = sprite_meta.types_buffer.push(QuadType { t: 0, _unused_1: 0, _unused_2: 0, _unused_3: 0, }); + let text_type_offset = sprite_meta.types_buffer.push(QuadType { t: 1, _unused_1: 0, _unused_2: 0, _unused_3: 0, }); + let image_type_offset = sprite_meta.types_buffer.push(QuadType { t: 2, _unused_1: 0, _unused_2: 0, _unused_3: 0, }); + sprite_meta .types_buffer .write_buffer(&render_device, &render_queue); diff --git a/bevy_kayak_renderer/src/render/unified/shader.wgsl b/bevy_kayak_renderer/src/render/unified/shader.wgsl index 293d4f9fe0dde7a644894688b9e8cd5bff6ba52d..14cbffd110a0bb9fd33251cb755f55cd261d8dbc 100644 --- a/bevy_kayak_renderer/src/render/unified/shader.wgsl +++ b/bevy_kayak_renderer/src/render/unified/shader.wgsl @@ -7,7 +7,11 @@ var<uniform> view: View; struct QuadType { t: i32, + _unused_1: i32, + _unused_2: i32, + _unused_3: i32, }; + @group(2) @binding(0) var<uniform> quad_type: QuadType; @@ -19,6 +23,7 @@ struct VertexOutput { @location(3) size: vec2<f32>, @location(4) border_radius: f32, @location(5) pixel_position: vec2<f32>, + @location(6) _unused: f32, }; @vertex @@ -36,6 +41,7 @@ fn vertex( out.uv = vertex_uv.xyz; out.size = vertex_pos_size.zw; out.border_radius = vertex_uv.w; + out._unused = 0.0; return out; }