mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-09 21:47:47 +00:00
Update MSL generator to handle casts of packed types.
Currently in the MSL backend we cast int values to uint in order to get the correct WGSL behaviour for over/under flow. This fails in the case of host shareable buffers as they use `packed` types which need to get cast to the non-packed version first. Bug: tint:1677 Change-Id: I57b70abaa8ca614472a26d63f19c1aef2bd64668 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/103986 Reviewed-by: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
This commit is contained in:
committed by
Dawn LUCI CQ
parent
d1a5f93630
commit
2bcade246a
@@ -6,6 +6,6 @@ struct S {
|
||||
};
|
||||
|
||||
void foo(device S* const tint_symbol) {
|
||||
(*(tint_symbol)).a = as_type<int4>((as_type<uint4>((*(tint_symbol)).a) - as_type<uint4>(int4(2))));
|
||||
(*(tint_symbol)).a = as_type<int4>((as_type<uint4>(as_type<int4>((*(tint_symbol)).a)) - as_type<uint4>(as_type<int4>(int4(2)))));
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,6 @@ struct S {
|
||||
};
|
||||
|
||||
void foo(device S* const tint_symbol) {
|
||||
(*(tint_symbol)).a = as_type<int4>((as_type<uint4>((*(tint_symbol)).a) + as_type<uint4>(int4(2))));
|
||||
(*(tint_symbol)).a = as_type<int4>((as_type<uint4>(as_type<int4>((*(tint_symbol)).a)) + as_type<uint4>(as_type<int4>(int4(2)))));
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,6 @@ struct S {
|
||||
};
|
||||
|
||||
void foo(device S* const tint_symbol) {
|
||||
(*(tint_symbol)).a = as_type<int4>((as_type<uint4>((*(tint_symbol)).a) * as_type<uint4>(int4(2))));
|
||||
(*(tint_symbol)).a = as_type<int4>((as_type<uint4>(as_type<int4>((*(tint_symbol)).a)) * as_type<uint4>(as_type<int4>(int4(2)))));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user