blob: 04b6e0b3b6b359f4d20db15a28e132bec0fdcacc [file] [edit]
<script src="../../../resources/js-test-pre.js"></script>
<script async type="text/javascript">
async function run() {
globalThis.testRunner?.waitUntilDone();
globalThis.testRunner?.dumpAsText();
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const Shader5 = device.createShaderModule({
code: `
enable f16;
@group(0) @binding(0) var<uniform> a : array<mat2x3<f16>, 4>;
@group(0) @binding(1) var<storage, read_write> s: f16;
var<private> counter = 0;
fn i() -> i32 { counter++; return counter; }
@compute @workgroup_size(1)
fn f() {
let p_a = &a;
let p_a_i = &((*p_a)[i()]);
let p_a_i_i = &((*p_a_i)[i()]);
let l_a : array<mat2x3<f16>, 4> = *p_a;
let l_a_i : mat2x3<f16> = *p_a_i;
let l_a_i_i : vec3<f16> = *p_a_i_i;
s = (*p_a_i_i).x + l_a[0][0].x + l_a_i[0].x + l_a_i_i.x;
}
`
});
try { /* newvar{fuzzvar00004:GPUBindGroupLayout} */ var fuzzvar00004 = device.createBindGroupLayout({ label: "fuzzstr_27", entries: [{ binding: 0, buffer: { hasDynamicOffset: true, minBindingSize: 2, type: "read-only-storage" }, visibility: GPUShaderStage.COMPUTE }] }); } catch(e) {}
try { /* newvar{fuzzvar00005:GPUBindGroupLayout} */ var fuzzvar00005 = fuzzvar00006.getBindGroupLayout(13); } catch(e) {}
try { /* newvar{fuzzvar00003:GPUPipelineLayout} */ var fuzzvar00003 = device.createPipelineLayout({ label: "fuzzstr_16", bindGroupLayouts: [fuzzvar00004, fuzzvar00005, fuzzvar00005] }); } catch(e) {}
try { /* newvar{fuzzvar00002:GPUComputePipeline} */ var fuzzvar00002 = device.createComputePipeline({ label: "fuzzstr_29", layout: fuzzvar00003, compute: { constants: {}, entryPoint: "compute_main", module: Shader5 } }); } catch(e) {}
try { /* newvar{fuzzvar00054:GPUComputePipeline} */ var fuzzvar00054 = await device.createComputePipelineAsync({ label: "fuzzstr_13", layout: "auto", compute: { constants: {}, entryPoint: "f", module: Shader5 } }); } catch(e) {}
debug('Pass');
}
async function main() {
try {
await run();
} catch (e) {
debug('Error', e);
} finally {
globalThis.testRunner?.notifyDone();
}
}
main();
</script>