The WGSL spec says that all scalar or vector integer vertex stage outputs and fragment stage inputs must be marked as @interpolate(flat). I think wgpu fixed this up for us, but being explicit is more correct.
22 lines
673 B
WebGPU Shading Language
22 lines
673 B
WebGPU Shading Language
#define_import_path bevy_pbr::mesh_vertex_output
|
|
|
|
struct MeshVertexOutput {
|
|
// this is `clip position` when the struct is used as a vertex stage output
|
|
// and `frag coord` when used as a fragment stage input
|
|
@builtin(position) position: vec4<f32>,
|
|
@location(0) world_position: vec4<f32>,
|
|
@location(1) world_normal: vec3<f32>,
|
|
#ifdef VERTEX_UVS
|
|
@location(2) uv: vec2<f32>,
|
|
#endif
|
|
#ifdef VERTEX_TANGENTS
|
|
@location(3) world_tangent: vec4<f32>,
|
|
#endif
|
|
#ifdef VERTEX_COLORS
|
|
@location(4) color: vec4<f32>,
|
|
#endif
|
|
#ifdef VERTEX_OUTPUT_INSTANCE_INDEX
|
|
@location(5) @interpolate(flat) instance_index: u32,
|
|
#endif
|
|
}
|