mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-10 14:08:04 +00:00
msl: Use a struct for threadgroup memory arguments
MSL has a limit on the number of threadgroup memory arguments, so use a struct to support an arbitrary number of workgroup variables. Bug: tint:938 Change-Id: I40e4a8d99bc4ae074010479a56e13e2e0acdded3 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/64380 Kokoro: Kokoro <noreply+kokoro@google.com> Auto-Submit: James Price <jrprice@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: James Price <jrprice@google.com>
This commit is contained in:
committed by
Tint LUCI CQ
parent
b9a2f5946e
commit
af8cd3b7f5
@@ -1,6 +1,10 @@
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
struct tint_symbol_4 {
|
||||
float2x3 v;
|
||||
};
|
||||
|
||||
void tint_symbol_inner(uint local_invocation_index, threadgroup float2x3* const tint_symbol_1) {
|
||||
{
|
||||
*(tint_symbol_1) = float2x3();
|
||||
@@ -9,8 +13,8 @@ void tint_symbol_inner(uint local_invocation_index, threadgroup float2x3* const
|
||||
(void) *(tint_symbol_1);
|
||||
}
|
||||
|
||||
kernel void tint_symbol(threadgroup float2x3* tint_symbol_2 [[threadgroup(0)]], uint local_invocation_index [[thread_index_in_threadgroup]]) {
|
||||
tint_symbol_inner(local_invocation_index, tint_symbol_2);
|
||||
kernel void tint_symbol(threadgroup tint_symbol_4* tint_symbol_3 [[threadgroup(0)]], uint local_invocation_index [[thread_index_in_threadgroup]]) {
|
||||
tint_symbol_inner(local_invocation_index, &((*(tint_symbol_3)).v));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user