MCPcopy Index your code
hub / github.com/gpujs/gpu.js / testPipelineDynamicArguments

Function testPipelineDynamicArguments

test/issues/487-dynamic-arguments.js:6–39  ·  view source on GitHub ↗
(mode)

Source from the content-addressed store, hash-verified

4describe('issue #487 - pipeline dynamic arguments');
5
6function testPipelineDynamicArguments(mode) {
7 const gpu = new GPU({mode: mode});
8
9 const kernel = gpu.createKernel(function (w) {
10 return this.thread.x + this.thread.y * w;
11 })
12 .setPipeline(true)
13 .setDynamicOutput(true);
14
15 const sumRow = gpu.createKernel(function (texture, w) {
16 let sum = 0;
17 for (let i = 0; i < w; i++)
18 sum = sum + texture[this.thread.x][i];
19 return sum;
20 })
21 .setDynamicArguments(true)
22 .setDynamicOutput(true);
23
24 function doAThing(w, h) {
25 kernel.setOutput([w, h]);
26 let intermediate = kernel(w);
27 const array = intermediate.toArray();
28 assert.equal(array.length, h);
29 assert.equal(array[0].length, w);
30 sumRow.setOutput([h]);
31 const result = sumRow(intermediate, w);
32 assert.equal(result.length, h);
33 assert.equal(result[0].length, undefined);
34 }
35
36 doAThing(10, 5);
37 doAThing(3, 2);
38 gpu.destroy();
39}
40
41test('(GPU only) auto', () => {
42 testPipelineDynamicArguments();

Callers 1

Calls 6

createKernelMethod · 0.95
destroyMethod · 0.95
doAThingFunction · 0.85
setDynamicOutputMethod · 0.80
setPipelineMethod · 0.80
setDynamicArgumentsMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…