blob: 02e769a27501e82ec30606b60ea91f4b63f0a7b0 [file]
<script>
globalThis.testRunner?.waitUntilDone();
const log = console.debug;
onload = async () => {
let adapter = await navigator.gpu.requestAdapter({});
let device = await adapter.requestDevice({});
device.pushErrorScope('validation');
let code = `
@group(0) @binding(0) var<storage, read_write> buf: atomic<u32>;
@compute @workgroup_size(1)
fn main() {
let u = 0u;
atomicCompareExchangeWeak(&buf, 0, vec4u(u + u).x);
}
`;
let module = device.createShaderModule({code});
device.createComputePipeline({
layout: 'auto',
compute: {module},
});
await device.queue.onSubmittedWorkDone();
let error = await device.popErrorScope();
if (error) {
log(error.message);
} else {
log('Pass: no validation error');
}
globalThis.testRunner?.dumpAsText();
globalThis.testRunner?.notifyDone();
};
</script>