mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-08 13:14:56 +00:00
writer/msl: Handle private and workgroup variables
Add a transform that pushes these into the entry point and then passes them by pointer to any functions that need them. Since WGSL does not allow non-function storage class at function-scope, add a DisableValidation attribute to bypass this check. Fixed: tint/726 Change-Id: Ic1f4cd691a54c19e77a60e8ba178508e4249bfd9 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51962 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: James Price <jrprice@google.com> Auto-Submit: James Price <jrprice@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
committed by
Tint LUCI CQ
parent
61e573663d
commit
7a47fa8495
@@ -1 +1,11 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
thread int tint_symbol_2 = 0;
|
||||
thread int* const tint_symbol_1 = &(tint_symbol_2);
|
||||
int const x_9 = *(tint_symbol_1);
|
||||
int const x_11 = (x_9 + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1,11 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
thread int tint_symbol_2 = 0;
|
||||
thread int* const tint_symbol_1 = &(tint_symbol_2);
|
||||
int const i = *(tint_symbol_1);
|
||||
int const use = (i + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
SKIP: crbug.com/tint/831
|
||||
|
||||
@@ -1 +1 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
SKIP: crbug.com/tint/831
|
||||
|
||||
@@ -1 +1,11 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
thread int tint_symbol_2 = 123;
|
||||
thread int* const tint_symbol_1 = &(tint_symbol_2);
|
||||
thread int* const p = &(*(tint_symbol_1));
|
||||
int const use = (*(p) + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1,12 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
threadgroup int tint_symbol_2 = 0;
|
||||
threadgroup int* const tint_symbol_1 = &(tint_symbol_2);
|
||||
*(tint_symbol_1) = 123;
|
||||
threadgroup int* const p = &(*(tint_symbol_1));
|
||||
int const use = (*(p) + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1,11 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
thread int tint_symbol_2 = 0;
|
||||
thread int* const tint_symbol_1 = &(tint_symbol_2);
|
||||
*(tint_symbol_1) = 123;
|
||||
*(tint_symbol_1) = ((100 + 20) + 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1,11 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
thread int tint_symbol_2 = 0;
|
||||
thread int* const tint_symbol_1 = &(tint_symbol_2);
|
||||
*(tint_symbol_1) = 123;
|
||||
*(tint_symbol_1) = ((100 + 20) + 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
SKIP: TINT_UNIMPLEMENTED crbug.com/tint/726: module-scope private and workgroup variables not yet implemented
|
||||
SKIP: crbug.com/tint/831
|
||||
Reference in New Issue
Block a user