commit | 9894867678c389089360bc32886fc89073e26c2d | [log] [tgz] |
---|---|---|
author | Ben Clayton <bclayton@google.com> | Tue Jan 05 20:53:10 2021 +0000 |
committer | Commit Bot service account <commit-bot@chromium.org> | Tue Jan 05 20:53:10 2021 +0000 |
tree | 58a6ef2fc7ac7e2cd558012e13d21f3897dccbe4 | |
parent | a35b57f91fe196975d3bb33a2683207c3b645dd5 [diff] |
reader/wgsl: Fix parsing of matrices. https://gpuweb.github.io/gpuweb/wgsl.html#matrix-types : "matNxM<T> Matrix of N columns and M rows" Fixed: tint:432 Change-Id: Ib8fdb836b02c5e6be87acea850f095355545adbd Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36421 Auto-Submit: Ben Clayton <bclayton@google.com> Commit-Queue: dan sinclair <dsinclair@chromium.org> Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/reader/wgsl/parser_impl.cc b/src/reader/wgsl/parser_impl.cc index 9aaea82..493ac84 100644 --- a/src/reader/wgsl/parser_impl.cc +++ b/src/reader/wgsl/parser_impl.cc
@@ -1110,14 +1110,14 @@ uint32_t rows = 2; uint32_t columns = 2; if (t.IsMat3x2() || t.IsMat3x3() || t.IsMat3x4()) { - rows = 3; + columns = 3; } else if (t.IsMat4x2() || t.IsMat4x3() || t.IsMat4x4()) { - rows = 4; + columns = 4; } if (t.IsMat2x3() || t.IsMat3x3() || t.IsMat4x3()) { - columns = 3; + rows = 3; } else if (t.IsMat2x4() || t.IsMat3x4() || t.IsMat4x4()) { - columns = 4; + rows = 4; } const char* use = "matrix";
diff --git a/src/reader/wgsl/parser_impl_type_decl_test.cc b/src/reader/wgsl/parser_impl_type_decl_test.cc index 6c11ba1..9251526 100644 --- a/src/reader/wgsl/parser_impl_type_decl_test.cc +++ b/src/reader/wgsl/parser_impl_type_decl_test.cc
@@ -604,8 +604,8 @@ struct MatrixData { const char* input; - size_t rows; size_t columns; + size_t rows; }; inline std::ostream& operator<<(std::ostream& out, MatrixData data) { out << std::string(data.input);