From 0ca51971d2f4fbd7b11938822413cdade091422e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Sat, 18 Jun 2022 07:41:54 +0000 Subject: [PATCH] WGSL: use correct syntax for matrix access (#5039) # Objective - `.x` is not the correct syntax to access a column in a matrix in WGSL: https://www.w3.org/TR/WGSL/#matrix-access-expr - naga accepts it and translates it correctly, but it's not valid when shaders are kept as is and used directly in WGSL ## Solution - Use the correct syntax --- crates/bevy_pbr/src/render/skinning.wgsl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/bevy_pbr/src/render/skinning.wgsl b/crates/bevy_pbr/src/render/skinning.wgsl index 2a48556301254a..3596ba4c762315 100644 --- a/crates/bevy_pbr/src/render/skinning.wgsl +++ b/crates/bevy_pbr/src/render/skinning.wgsl @@ -11,10 +11,10 @@ fn add_matrix( b: mat4x4, ) -> mat4x4 { return mat4x4( - a.x + b.x, - a.y + b.y, - a.z + b.z, - a.w + b.w, + a[0] + b[0], + a[1] + b[1], + a[2] + b[2], + a[3] + b[3], ); } @@ -29,10 +29,10 @@ fn skin_model( } fn inverse_transpose_3x3(in: mat3x3) -> mat3x3 { - let x = cross(in.y, in.z); - let y = cross(in.z, in.x); - let z = cross(in.x, in.y); - let det = dot(in.z, z); + let x = cross(in[1], in[2]); + let y = cross(in[2], in[0]); + let z = cross(in[0], in[1]); + let det = dot(in[2], z); return mat3x3( x / det, y / det,