Bug 261901

Summary: [WGSL] Support Synchronization Built-in Functions
Product: WebKit Reporter: Mike Wyrzykowski <mwyrzykowski>
Component: WebGPUAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Mike Wyrzykowski 2023-09-21 12:36:51 PDT
[WGSL] Support Synchronization Built-in Functions - https://www.w3.org/TR/WGSL/#sync-builtin-functions

First two are easy: [WGSL] => [MSL] mapping
* storageBarrier => threadgroup_barrier(mem_flags::mem_device)
* workgroupBarrier => threadgroup_barrier(mem_flags::mem_threadgroup)

Last one expands to this I think
* workgroupUniformLoad => 
uint metalWorkgroupUniformLoad(threadgroup T* const p) 
{
  threadgroup_barrier(mem_flags::mem_threadgroup);
  const T result = *p;
  threadgroup_barrier(mem_flags::mem_threadgroup);
  return result;
}
Comment 1 Radar WebKit Bug Importer 2023-09-21 12:37:10 PDT
<rdar://problem/115855666>