mirror of
https://github.com/gpujs/gpu.js.git
synced 2026-01-18 16:04:10 +00:00
Change `HTMLImageArray` render strategy to `gl.NEAREST`, like all the others Let `WebGL2FunctionNode` extend `WebGLFunctionNode` and lighten Remove all the different html pages associated with tests, and just use one file to handle them and use qunit for filtering them Bump version number
92 lines
2.0 KiB
JavaScript
92 lines
2.0 KiB
JavaScript
(function() {
|
|
function multABTest(mode) {
|
|
var gpu = new GPU({ mode });
|
|
var f = gpu.createKernel(function(a, b) {
|
|
var sum = 0;
|
|
sum += a[this.thread.y][0] * b[0][this.thread.x];
|
|
sum += a[this.thread.y][1] * b[1][this.thread.x];
|
|
sum += a[this.thread.y][2] * b[2][this.thread.x];
|
|
return sum;
|
|
}, {
|
|
output : [3, 3]
|
|
});
|
|
|
|
QUnit.assert.ok( f !== null, 'function generated test');
|
|
QUnit.assert.deepEqual(f(
|
|
[
|
|
[1, 2, 3],
|
|
[4, 5, 6],
|
|
[7, 8, 9]
|
|
],
|
|
[
|
|
[1, 2, 3],
|
|
[4, 5, 6],
|
|
[7, 8, 9]
|
|
]).map(function(object) { return QUnit.extend([], object); }),
|
|
[
|
|
[30, 36, 42],
|
|
[66, 81, 96],
|
|
[102, 126, 150]
|
|
],
|
|
'basic mult function test'
|
|
);
|
|
}
|
|
|
|
QUnit.test( 'multAB (auto)', function() {
|
|
multABTest(null);
|
|
});
|
|
QUnit.test( 'multAB (gpu)', function() {
|
|
multABTest('gpu');
|
|
});
|
|
QUnit.test( 'multAB (webgl)', function() {
|
|
multABTest('webgl');
|
|
});
|
|
QUnit.test( 'multAB (webgl2)', function() {
|
|
multABTest('webgl2');
|
|
});
|
|
QUnit.test( 'multAB (CPU)', function() {
|
|
multABTest('cpu');
|
|
});
|
|
|
|
function sqrtABTest(mode) {
|
|
var gpu = new GPU({ mode: mode });
|
|
var f = gpu.createKernel(function(a, b) {
|
|
return Math.sqrt(a[ this.thread.x ] * b[ this.thread.x ]);
|
|
}, {
|
|
output : [6]
|
|
});
|
|
|
|
QUnit.assert.ok(f !== null, 'function generated test');
|
|
|
|
var a = [3, 4, 5, 6, 7, 8];
|
|
var b = [3, 4, 5, 6, 7, 8];
|
|
|
|
var res = f(a,b);
|
|
var exp = [3, 4, 5, 6, 7, 8];
|
|
|
|
for(var i = 0; i < exp.length; ++i) {
|
|
QUnit.assert.close(res[i], exp[i], 0.1, 'Result arr idx: '+i);
|
|
}
|
|
}
|
|
|
|
QUnit.test( 'sqrtAB (auto)', function() {
|
|
sqrtABTest(null);
|
|
});
|
|
|
|
QUnit.test( 'sqrtAB (gpu)', function() {
|
|
sqrtABTest('gpu');
|
|
});
|
|
|
|
QUnit.test( 'sqrtAB (webgl)', function() {
|
|
sqrtABTest('webgl');
|
|
});
|
|
|
|
QUnit.test( 'sqrtAB (webgl2)', function() {
|
|
sqrtABTest('webgl2');
|
|
});
|
|
|
|
QUnit.test( 'sqrtAB (CPU)', function() {
|
|
sqrtABTest('cpu');
|
|
});
|
|
})();
|