mirror of
https://github.com/gpujs/gpu.js.git
synced 2026-01-18 16:04:10 +00:00
51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
QUnit.test('WebGL Loop Max', function(assert) {
|
|
var gpu = new GPU({mode: 'webgl'});
|
|
var add = gpu.createKernel(function(a, b) {
|
|
var sum = 0;
|
|
for (var i = 0; i < a; i++) {
|
|
sum += b[this.thread.x][i];
|
|
}
|
|
}).setOutput([1]);
|
|
|
|
add.build(1, [1]);
|
|
assert.equal(
|
|
add.functionBuilder.getPrototypeString('kernel'),
|
|
'void kernel() {\n' +
|
|
'float user_sum=0.0;\n' +
|
|
'for (float user_i=0.0;user_i<LOOP_MAX;user_i++){\n' +
|
|
'if (user_i<user_a) {\n' +
|
|
'user_sum+=get(user_b, ivec2(user_bSize[0],user_bSize[1]), ivec3(user_bDim[0],user_bDim[1],user_bDim[2]), user_bBitRatio, threadId.x,int(user_i));\n' +
|
|
'} else {\n' +
|
|
'break;\n' +
|
|
'}\n' +
|
|
'}\n' +
|
|
'\n' +
|
|
'}');
|
|
gpu.destroy();
|
|
});
|
|
|
|
QUnit.test('WebGL2 Loop Max', function(assert) {
|
|
var gpu = new GPU({mode: 'webgl2'});
|
|
var add = gpu.createKernel(function(a, b) {
|
|
var sum = 0;
|
|
for (var i = 0; i < a; i++) {
|
|
sum += b[this.thread.x][i];
|
|
}
|
|
}).setOutput([1]);
|
|
|
|
add.build(1, [1]);
|
|
assert.equal(
|
|
add.functionBuilder.getPrototypeString('kernel'),
|
|
'void kernel() {\n' +
|
|
'float user_sum=0.0;\n' +
|
|
'for (float user_i=0.0;user_i<LOOP_MAX;user_i++){\n' +
|
|
'if (user_i<user_a) {\n' +
|
|
'user_sum+=get(user_b, ivec2(user_bSize[0],user_bSize[1]), ivec3(user_bDim[0],user_bDim[1],user_bDim[2]), user_bBitRatio, threadId.x,int(user_i));\n' +
|
|
'} else {\n' +
|
|
'break;\n' +
|
|
'}\n' +
|
|
'}\n' +
|
|
'\n' +
|
|
'}');
|
|
gpu.destroy();
|
|
}); |