writer/msl: Fix texture intrinsic generation

Wrap the texture expression in parentheses when it has lower
precendence than the function call operator.

Cast integer coordinates to unsigned integers as required by MSL.

Fixed: tint:536
Change-Id: I957e6be3c51044959e25e0be96c2d2c65db18187
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53962
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
James Price
2021-06-11 12:46:26 +00:00
committed by Tint LUCI CQ
parent 830b97ffa9
commit 0f1efe04c3
444 changed files with 6831 additions and 9792 deletions

View File

@@ -1,25 +1,12 @@
SKIP: FAILED
deprecated/access_deco/storage_texture.wgsl:1:84 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
[[group(0), binding(0)]] var tex : [[access(write)]] texture_storage_2d<rgba32float>;
^
Validation Failure:
#include <metal_stdlib>
using namespace metal;
kernel void tint_symbol() {
int2 x = int2(tex.get_width(), tex.get_height());
kernel void tint_symbol(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
int2 x = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
return;
}
tint_Aillrb.metal:5:17: error: use of undeclared identifier 'tex'
int2 x = int2(tex.get_width(), tex.get_height());
^
tint_Aillrb.metal:5:34: error: use of undeclared identifier 'tex'
int2 x = int2(tex.get_width(), tex.get_height());
^
2 errors generated.