mirror of
https://github.com/lovell/sharp.git
synced 2025-12-19 07:15:08 +01:00
Allow SIMD vector unit to be toggled on/off #172
Currently defaults to off but future versions may default to on
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
"gm": "^1.21.0",
|
||||
"imagemagick": "^0.1.3",
|
||||
"imagemagick-native": "elad/node-imagemagick-native",
|
||||
"jimp": "^0.2.19",
|
||||
"jimp": "^0.2.20",
|
||||
"lwip": "^0.0.8",
|
||||
"semver": "^5.1.0"
|
||||
},
|
||||
|
||||
@@ -12,6 +12,7 @@ var width = 720;
|
||||
var height = 480;
|
||||
|
||||
sharp.concurrency(1);
|
||||
sharp.simd(true);
|
||||
|
||||
var timer = setInterval(function() {
|
||||
console.dir(sharp.counters());
|
||||
|
||||
@@ -35,6 +35,8 @@ var magickFilterBicubic = 'Lanczos';
|
||||
|
||||
// Disable libvips cache to ensure tests are as fair as they can be
|
||||
sharp.cache(0);
|
||||
// Enable use of SIMD
|
||||
sharp.simd(true);
|
||||
|
||||
async.series({
|
||||
'jpeg-linear': function(callback) {
|
||||
@@ -496,6 +498,24 @@ async.series({
|
||||
}
|
||||
});
|
||||
}
|
||||
}).add('sharp-without-simd', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
sharp.simd(false);
|
||||
sharp(inputJpgBuffer)
|
||||
.rotate(90)
|
||||
.interpolateWith(sharp.interpolator.bilinear)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
sharp.simd(true);
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
assert.notStrictEqual(null, buffer);
|
||||
deferred.resolve();
|
||||
}
|
||||
});
|
||||
}
|
||||
}).add('sharp-sequentialRead', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
|
||||
@@ -8,6 +8,8 @@ var Benchmark = require('benchmark');
|
||||
var sharp = require('../../index');
|
||||
var fixtures = require('../fixtures');
|
||||
|
||||
sharp.simd(true);
|
||||
|
||||
var min = 320;
|
||||
var max = 960;
|
||||
|
||||
|
||||
@@ -51,6 +51,21 @@ describe('Utilities', function() {
|
||||
});
|
||||
});
|
||||
|
||||
describe('SIMD', function() {
|
||||
it('Can get current state', function() {
|
||||
var simd = sharp.simd();
|
||||
assert.strictEqual(typeof simd, 'boolean');
|
||||
});
|
||||
it('Can disable', function() {
|
||||
var simd = sharp.simd(false);
|
||||
assert.strictEqual(simd, false);
|
||||
});
|
||||
it('Can attempt to enable', function() {
|
||||
var simd = sharp.simd(true);
|
||||
assert.strictEqual(typeof simd, 'boolean');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Format', function() {
|
||||
it('Contains expected attributes', function() {
|
||||
assert.strictEqual('object', typeof sharp.format);
|
||||
|
||||
Reference in New Issue
Block a user