dawn-cmake/test/tint/builtins/textureLoad/texture_param.wgsl.expected.msl
Stephen White b7e560dea0 GLSL: fix "uniform" qualifier on texture parameters.
Textures as function parameters should not have the "uniform"
qualifier. Fixed by handling StorageClass::kUniformConstant the
same as StorageClass::kUniform, and removing the unconditional
"uniform" qualifier output. (Global texture variables have
StorageClass::kUniformConstant set, while function parameters don't.)

Change-Id: I9d380550ac4554917527ff330171a76a90a290e8
Bug: tint:1492
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/85820
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-04-05 18:51:15 +00:00

38 lines
1.0 KiB
Plaintext

#include <metal_stdlib>
using namespace metal;
int4 textureLoad2d(texture2d<int, access::sample> tint_symbol, int2 coords, int level) {
return tint_symbol.read(uint2(coords), level);
}
void doTextureLoad(texture2d<int, access::sample> tint_symbol_2) {
int4 res = textureLoad2d(tint_symbol_2, int2(), 0);
}
struct tint_symbol_1 {
float4 value [[position]];
};
float4 vertex_main_inner(texture2d<int, access::sample> tint_symbol_3) {
doTextureLoad(tint_symbol_3);
return float4();
}
vertex tint_symbol_1 vertex_main(texture2d<int, access::sample> tint_symbol_4 [[texture(0)]]) {
float4 const inner_result = vertex_main_inner(tint_symbol_4);
tint_symbol_1 wrapper_result = {};
wrapper_result.value = inner_result;
return wrapper_result;
}
fragment void fragment_main(texture2d<int, access::sample> tint_symbol_5 [[texture(0)]]) {
doTextureLoad(tint_symbol_5);
return;
}
kernel void compute_main(texture2d<int, access::sample> tint_symbol_6 [[texture(0)]]) {
doTextureLoad(tint_symbol_6);
return;
}