Skip to content

Commit cfd8c52

Browse files
committed
index arrays with offset
1 parent 8e3b937 commit cfd8c52

File tree

5 files changed

+106
-76
lines changed

5 files changed

+106
-76
lines changed

bin/gpu-browser-core.js

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* GPU Accelerated JavaScript
66
*
77
* @version 2.0.0-rc.12
8-
* @date Fri Apr 26 2019 22:06:12 GMT-0400 (Eastern Daylight Time)
8+
* @date Sun Apr 28 2019 15:00:27 GMT+0200 (CEST)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -3450,9 +3450,10 @@ class GLKernel extends Kernel {
34503450
const XResultsMax = xMax * 4;
34513451
for (let y = 0; y < yMax; y++) {
34523452
const xResults = new Array(xMax);
3453+
const offset = y * XResultsMax;
34533454
let i = 0;
34543455
for (let x = 0; x < XResultsMax; x += 4) {
3455-
xResults[i++] = pixels.subarray(x, x + 2);
3456+
xResults[i++] = pixels.subarray(x + offset, x + offset + 2);
34563457
}
34573458
yResults[y] = xResults;
34583459
}
@@ -3467,9 +3468,10 @@ class GLKernel extends Kernel {
34673468
const yResults = new Array(yMax);
34683469
for (let y = 0; y < yMax; y++) {
34693470
const xResults = new Array(xMax);
3471+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
34703472
let i = 0;
34713473
for (let x = 0; x < xResultsMax; x += 4) {
3472-
xResults[i++] = pixels.subarray(x, x + 2);
3474+
xResults[i++] = pixels.subarray(x + offset, x + offset + 2);
34733475
}
34743476
yResults[y] = xResults;
34753477
}
@@ -3491,13 +3493,14 @@ class GLKernel extends Kernel {
34913493
render2DArray3() {
34923494
const pixels = this.readFloatPixelsToFloat32Array();
34933495
const [xMax, yMax] = this.output;
3494-
const xMaxResults = xMax * 4;
3496+
const xResultsMax = xMax * 4;
34953497
const yResults = new Array(yMax);
34963498
for (let y = 0; y < yMax; y++) {
34973499
const xResults = new Array(xMax);
3500+
const offset = y * xResultsMax;
34983501
let i = 0;
3499-
for (let x = 0; x < xMaxResults; x += 4) {
3500-
xResults[i++] = pixels.subarray(x, x + 3);
3502+
for (let x = 0; x < xResultsMax; x += 4) {
3503+
xResults[i++] = pixels.subarray(x + offset, x + offset + 3);
35013504
}
35023505
yResults[y] = xResults;
35033506
}
@@ -3506,15 +3509,16 @@ class GLKernel extends Kernel {
35063509
render3DArray3() {
35073510
const pixels = this.readFloatPixelsToFloat32Array();
35083511
const [xMax, yMax, zMax] = this.output;
3509-
const xMaxResults = xMax * 4;
3512+
const xResultsMax = xMax * 4;
35103513
const zResults = new Array(zMax);
35113514
for (let z = 0; z < zMax; z++) {
35123515
const yResults = new Array(yMax);
35133516
for (let y = 0; y < yMax; y++) {
35143517
const xResults = new Array(xMax);
3518+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
35153519
let i = 0;
3516-
for (let x = 0; x < xMaxResults; x += 4) {
3517-
xResults[i++] = pixels.subarray(x, x + 3);
3520+
for (let x = 0; x < xResultsMax; x += 4) {
3521+
xResults[i++] = pixels.subarray(x + offset, x + offset + 3);
35183522
}
35193523
yResults[y] = xResults;
35203524
}
@@ -3536,13 +3540,14 @@ class GLKernel extends Kernel {
35363540
render2DArray4() {
35373541
const pixels = this.readFloatPixelsToFloat32Array();
35383542
const [xMax, yMax] = this.output;
3539-
const xMaxResult = xMax * 4;
3543+
const xResultsMax = xMax * 4;
35403544
const yResults = new Array(yMax);
35413545
for (let y = 0; y < yMax; y++) {
35423546
const xResults = new Array(xMax);
3547+
const offset = y * xResultsMax;
35433548
let i = 0;
3544-
for (let x = 0; x < xMaxResult; x += 4) {
3545-
xResults[i++] = pixels.subarray(x, x + 4);
3549+
for (let x = 0; x < xResultsMax; x += 4) {
3550+
xResults[i++] = pixels.subarray(x + offset, x + offset + 4);
35463551
}
35473552
yResults[y] = xResults;
35483553
}
@@ -3551,15 +3556,16 @@ class GLKernel extends Kernel {
35513556
render3DArray4() {
35523557
const pixels = this.readFloatPixelsToFloat32Array();
35533558
const [xMax, yMax, zMax] = this.output;
3554-
const xResultsMap = xMax * 4;
3559+
const xResultsMax = xMax * 4;
35553560
const zResults = new Array(zMax);
35563561
for (let z = 0; z < zMax; z++) {
35573562
const yResults = new Array(yMax);
35583563
for (let y = 0; y < yMax; y++) {
35593564
const xResults = new Array(xMax);
3565+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
35603566
let i = 0;
3561-
for (let x = 0; x < xResultsMap; x += 4) {
3562-
xResults[i++] = pixels.subarray(x, x + 4);
3567+
for (let x = 0; x < xResultsMax; x += 4) {
3568+
xResults[i++] = pixels.subarray(x + offset, x + offset + 4);
35633569
}
35643570
yResults[y] = xResults;
35653571
}

bin/gpu-browser-core.min.js

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* GPU Accelerated JavaScript
66
*
77
* @version 2.0.0-rc.12
8-
* @date Fri Apr 26 2019 22:06:15 GMT-0400 (Eastern Daylight Time)
8+
* @date Sun Apr 28 2019 15:00:28 GMT+0200 (CEST)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -18,7 +18,7 @@
1818
* GPU Accelerated JavaScript
1919
*
2020
* @version 2.0.0-rc.12
21-
* @date Fri Apr 26 2019 22:06:12 GMT-0400 (Eastern Daylight Time)
21+
* @date Sun Apr 28 2019 15:00:27 GMT+0200 (CEST)
2222
*
2323
* @license MIT
2424
* The MIT License
@@ -3463,9 +3463,10 @@ class GLKernel extends Kernel {
34633463
const XResultsMax = xMax * 4;
34643464
for (let y = 0; y < yMax; y++) {
34653465
const xResults = new Array(xMax);
3466+
const offset = y * XResultsMax;
34663467
let i = 0;
34673468
for (let x = 0; x < XResultsMax; x += 4) {
3468-
xResults[i++] = pixels.subarray(x, x + 2);
3469+
xResults[i++] = pixels.subarray(x + offset, x + offset + 2);
34693470
}
34703471
yResults[y] = xResults;
34713472
}
@@ -3480,9 +3481,10 @@ class GLKernel extends Kernel {
34803481
const yResults = new Array(yMax);
34813482
for (let y = 0; y < yMax; y++) {
34823483
const xResults = new Array(xMax);
3484+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
34833485
let i = 0;
34843486
for (let x = 0; x < xResultsMax; x += 4) {
3485-
xResults[i++] = pixels.subarray(x, x + 2);
3487+
xResults[i++] = pixels.subarray(x + offset, x + offset + 2);
34863488
}
34873489
yResults[y] = xResults;
34883490
}
@@ -3504,13 +3506,14 @@ class GLKernel extends Kernel {
35043506
render2DArray3() {
35053507
const pixels = this.readFloatPixelsToFloat32Array();
35063508
const [xMax, yMax] = this.output;
3507-
const xMaxResults = xMax * 4;
3509+
const xResultsMax = xMax * 4;
35083510
const yResults = new Array(yMax);
35093511
for (let y = 0; y < yMax; y++) {
35103512
const xResults = new Array(xMax);
3513+
const offset = y * xResultsMax;
35113514
let i = 0;
3512-
for (let x = 0; x < xMaxResults; x += 4) {
3513-
xResults[i++] = pixels.subarray(x, x + 3);
3515+
for (let x = 0; x < xResultsMax; x += 4) {
3516+
xResults[i++] = pixels.subarray(x + offset, x + offset + 3);
35143517
}
35153518
yResults[y] = xResults;
35163519
}
@@ -3519,15 +3522,16 @@ class GLKernel extends Kernel {
35193522
render3DArray3() {
35203523
const pixels = this.readFloatPixelsToFloat32Array();
35213524
const [xMax, yMax, zMax] = this.output;
3522-
const xMaxResults = xMax * 4;
3525+
const xResultsMax = xMax * 4;
35233526
const zResults = new Array(zMax);
35243527
for (let z = 0; z < zMax; z++) {
35253528
const yResults = new Array(yMax);
35263529
for (let y = 0; y < yMax; y++) {
35273530
const xResults = new Array(xMax);
3531+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
35283532
let i = 0;
3529-
for (let x = 0; x < xMaxResults; x += 4) {
3530-
xResults[i++] = pixels.subarray(x, x + 3);
3533+
for (let x = 0; x < xResultsMax; x += 4) {
3534+
xResults[i++] = pixels.subarray(x + offset, x + offset + 3);
35313535
}
35323536
yResults[y] = xResults;
35333537
}
@@ -3549,13 +3553,14 @@ class GLKernel extends Kernel {
35493553
render2DArray4() {
35503554
const pixels = this.readFloatPixelsToFloat32Array();
35513555
const [xMax, yMax] = this.output;
3552-
const xMaxResult = xMax * 4;
3556+
const xResultsMax = xMax * 4;
35533557
const yResults = new Array(yMax);
35543558
for (let y = 0; y < yMax; y++) {
35553559
const xResults = new Array(xMax);
3560+
const offset = y * xResultsMax;
35563561
let i = 0;
3557-
for (let x = 0; x < xMaxResult; x += 4) {
3558-
xResults[i++] = pixels.subarray(x, x + 4);
3562+
for (let x = 0; x < xResultsMax; x += 4) {
3563+
xResults[i++] = pixels.subarray(x + offset, x + offset + 4);
35593564
}
35603565
yResults[y] = xResults;
35613566
}
@@ -3564,15 +3569,16 @@ class GLKernel extends Kernel {
35643569
render3DArray4() {
35653570
const pixels = this.readFloatPixelsToFloat32Array();
35663571
const [xMax, yMax, zMax] = this.output;
3567-
const xResultsMap = xMax * 4;
3572+
const xResultsMax = xMax * 4;
35683573
const zResults = new Array(zMax);
35693574
for (let z = 0; z < zMax; z++) {
35703575
const yResults = new Array(yMax);
35713576
for (let y = 0; y < yMax; y++) {
35723577
const xResults = new Array(xMax);
3578+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
35733579
let i = 0;
3574-
for (let x = 0; x < xResultsMap; x += 4) {
3575-
xResults[i++] = pixels.subarray(x, x + 4);
3580+
for (let x = 0; x < xResultsMax; x += 4) {
3581+
xResults[i++] = pixels.subarray(x + offset, x + offset + 4);
35763582
}
35773583
yResults[y] = xResults;
35783584
}

bin/gpu-browser.js

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* GPU Accelerated JavaScript
66
*
77
* @version 2.0.0-rc.12
8-
* @date Fri Apr 26 2019 22:06:12 GMT-0400 (Eastern Daylight Time)
8+
* @date Sun Apr 28 2019 15:00:27 GMT+0200 (CEST)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -8214,9 +8214,10 @@ class GLKernel extends Kernel {
82148214
const XResultsMax = xMax * 4;
82158215
for (let y = 0; y < yMax; y++) {
82168216
const xResults = new Array(xMax);
8217+
const offset = y * XResultsMax;
82178218
let i = 0;
82188219
for (let x = 0; x < XResultsMax; x += 4) {
8219-
xResults[i++] = pixels.subarray(x, x + 2);
8220+
xResults[i++] = pixels.subarray(x + offset, x + offset + 2);
82208221
}
82218222
yResults[y] = xResults;
82228223
}
@@ -8231,9 +8232,10 @@ class GLKernel extends Kernel {
82318232
const yResults = new Array(yMax);
82328233
for (let y = 0; y < yMax; y++) {
82338234
const xResults = new Array(xMax);
8235+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
82348236
let i = 0;
82358237
for (let x = 0; x < xResultsMax; x += 4) {
8236-
xResults[i++] = pixels.subarray(x, x + 2);
8238+
xResults[i++] = pixels.subarray(x + offset, x + offset + 2);
82378239
}
82388240
yResults[y] = xResults;
82398241
}
@@ -8255,13 +8257,14 @@ class GLKernel extends Kernel {
82558257
render2DArray3() {
82568258
const pixels = this.readFloatPixelsToFloat32Array();
82578259
const [xMax, yMax] = this.output;
8258-
const xMaxResults = xMax * 4;
8260+
const xResultsMax = xMax * 4;
82598261
const yResults = new Array(yMax);
82608262
for (let y = 0; y < yMax; y++) {
82618263
const xResults = new Array(xMax);
8264+
const offset = y * xResultsMax;
82628265
let i = 0;
8263-
for (let x = 0; x < xMaxResults; x += 4) {
8264-
xResults[i++] = pixels.subarray(x, x + 3);
8266+
for (let x = 0; x < xResultsMax; x += 4) {
8267+
xResults[i++] = pixels.subarray(x + offset, x + offset + 3);
82658268
}
82668269
yResults[y] = xResults;
82678270
}
@@ -8270,15 +8273,16 @@ class GLKernel extends Kernel {
82708273
render3DArray3() {
82718274
const pixels = this.readFloatPixelsToFloat32Array();
82728275
const [xMax, yMax, zMax] = this.output;
8273-
const xMaxResults = xMax * 4;
8276+
const xResultsMax = xMax * 4;
82748277
const zResults = new Array(zMax);
82758278
for (let z = 0; z < zMax; z++) {
82768279
const yResults = new Array(yMax);
82778280
for (let y = 0; y < yMax; y++) {
82788281
const xResults = new Array(xMax);
8282+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
82798283
let i = 0;
8280-
for (let x = 0; x < xMaxResults; x += 4) {
8281-
xResults[i++] = pixels.subarray(x, x + 3);
8284+
for (let x = 0; x < xResultsMax; x += 4) {
8285+
xResults[i++] = pixels.subarray(x + offset, x + offset + 3);
82828286
}
82838287
yResults[y] = xResults;
82848288
}
@@ -8300,13 +8304,14 @@ class GLKernel extends Kernel {
83008304
render2DArray4() {
83018305
const pixels = this.readFloatPixelsToFloat32Array();
83028306
const [xMax, yMax] = this.output;
8303-
const xMaxResult = xMax * 4;
8307+
const xResultsMax = xMax * 4;
83048308
const yResults = new Array(yMax);
83058309
for (let y = 0; y < yMax; y++) {
83068310
const xResults = new Array(xMax);
8311+
const offset = y * xResultsMax;
83078312
let i = 0;
8308-
for (let x = 0; x < xMaxResult; x += 4) {
8309-
xResults[i++] = pixels.subarray(x, x + 4);
8313+
for (let x = 0; x < xResultsMax; x += 4) {
8314+
xResults[i++] = pixels.subarray(x + offset, x + offset + 4);
83108315
}
83118316
yResults[y] = xResults;
83128317
}
@@ -8315,15 +8320,16 @@ class GLKernel extends Kernel {
83158320
render3DArray4() {
83168321
const pixels = this.readFloatPixelsToFloat32Array();
83178322
const [xMax, yMax, zMax] = this.output;
8318-
const xResultsMap = xMax * 4;
8323+
const xResultsMax = xMax * 4;
83198324
const zResults = new Array(zMax);
83208325
for (let z = 0; z < zMax; z++) {
83218326
const yResults = new Array(yMax);
83228327
for (let y = 0; y < yMax; y++) {
83238328
const xResults = new Array(xMax);
8329+
const offset = (z * xResultsMax * yMax) + (y * xResultsMax);
83248330
let i = 0;
8325-
for (let x = 0; x < xResultsMap; x += 4) {
8326-
xResults[i++] = pixels.subarray(x, x + 4);
8331+
for (let x = 0; x < xResultsMax; x += 4) {
8332+
xResults[i++] = pixels.subarray(x + offset, x + offset + 4);
83278333
}
83288334
yResults[y] = xResults;
83298335
}

0 commit comments

Comments
 (0)