mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-13 10:51:35 +00:00
And replace the MSL writer's logic to do this with the transform. We need to do the same thing in HLSL, and in the future GLSL too. Partially reverts fbfde720 Change-Id: Ie280e011bc3ded8e15ccacc0aeb12da3c2407389 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/54242 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: James Price <jrprice@google.com>
36 lines
667 B
Plaintext
36 lines
667 B
Plaintext
#include <metal_stdlib>
|
|
|
|
using namespace metal;
|
|
struct tint_array_wrapper {
|
|
float arr[4];
|
|
};
|
|
struct tint_array_wrapper_1 {
|
|
tint_array_wrapper arr[3];
|
|
};
|
|
struct tint_array_wrapper_2 {
|
|
tint_array_wrapper_1 arr[2];
|
|
};
|
|
|
|
float f1(tint_array_wrapper a) {
|
|
return a.arr[3];
|
|
}
|
|
|
|
float f2(tint_array_wrapper_1 a) {
|
|
return a.arr[2].arr[3];
|
|
}
|
|
|
|
float f3(tint_array_wrapper_2 a) {
|
|
return a.arr[1].arr[2].arr[3];
|
|
}
|
|
|
|
kernel void tint_symbol() {
|
|
tint_array_wrapper const a1 = {.arr={}};
|
|
tint_array_wrapper_1 const a2 = {.arr={}};
|
|
tint_array_wrapper_2 const a3 = {.arr={}};
|
|
float const v1 = f1(a1);
|
|
float const v2 = f2(a2);
|
|
float const v3 = f3(a3);
|
|
return;
|
|
}
|
|
|