Skip to content

Commit 2e3840c

Browse files
committed
Bug 1927978 [wpt PR 48876] - webnn: Allow passing SharedArrayBuffers to writeTensor(), a=testonly
Automatic update from web-platform-tests webnn: Allow passing SharedArrayBuffers to writeTensor() readTensor() and the other writeTensor() overload both allow shared buffers and I don't see why this variant of writeTensor() shouldn't Bug: 365813262 Change-Id: Id0618ec2fc70db0de61d246c8af8fededbd11edd Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5976704 Commit-Queue: Austin Sullivan <asullychromium.org> Reviewed-by: ningxin hu <ningxin.huintel.com> Cr-Commit-Position: refs/heads/main{#1375674} -- wpt-commits: fb143c3aa3fae5183b819550d3344bad77990f41 wpt-pr: 48876 UltraBlame original commit: b297aea7675a8810c18fbc5878b44fcbb9944294
1 parent 81caeb8 commit 2e3840c

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

testing/web-platform/tests/webnn/conformance_tests/tensor.https.any.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,45 @@ const testWriteTensor = (testName) => {
164164
}
165165
});
166166

167+
promise_test(async () => {
168+
const tensorDescriptor = {
169+
dataType: 'int32',
170+
shape: [4],
171+
readable: true,
172+
writable: true,
173+
};
174+
const tensorByteLength = sizeOfDescriptor(tensorDescriptor);
175+
176+
177+
assert_true(
178+
self.crossOriginIsolated,
179+
'The page is served with COOP and COEP, it should be cross-origin-isolated.');
180+
181+
let arrayBuffer = new ArrayBuffer(tensorByteLength);
182+
let arrayBufferView = new Int32Array(arrayBuffer);
183+
arrayBufferView.fill(7);
184+
185+
let sharedArrayBuffer = new SharedArrayBuffer(tensorByteLength);
186+
let sharedArrayBufferView = new Int32Array(sharedArrayBuffer);
187+
sharedArrayBufferView.fill(7);
188+
189+
const tensors = await Promise.all([
190+
mlContext.createTensor(tensorDescriptor),
191+
mlContext.createTensor(tensorDescriptor),
192+
mlContext.createTensor(tensorDescriptor),
193+
mlContext.createTensor(tensorDescriptor)
194+
]);
195+
196+
mlContext.writeTensor(tensors[0], arrayBuffer);
197+
mlContext.writeTensor(tensors[2], arrayBufferView);
198+
mlContext.writeTensor(tensors[1], sharedArrayBuffer);
199+
mlContext.writeTensor(tensors[3], sharedArrayBufferView);
200+
201+
await Promise.all(tensors.map(async (tensor) => {
202+
assert_tensor_data_equals(mlContext, tensor, arrayBufferView);
203+
}));
204+
}, `${testName} / write with different kinds of buffers`);
205+
167206
promise_test(async () => {
168207
const tensorDescriptor = {
169208
dataType: 'int32',
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Cross-Origin-Embedder-Policy: require-corp
2+
Cross-Origin-Opener-Policy: same-origin

0 commit comments

Comments
 (0)