Skip to content

Commit e9d3b66

Browse files
Merge branch 'master' into develop
2 parents 6622ecb + 8a7baba commit e9d3b66

24 files changed

+571
-479
lines changed

Diff for: dist/gpu-browser-core.js

+211-202
Large diffs are not rendered by default.

Diff for: dist/gpu-browser-core.min.js

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/gpu-browser.js

+211-202
Large diffs are not rendered by default.

Diff for: dist/gpu-browser.min.js

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package-lock.json

+6-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gpu.js",
3-
"version": "2.11.1",
3+
"version": "2.12.0",
44
"description": "GPU Accelerated JavaScript",
55
"engines": {
66
"node": ">=8.0.0"
@@ -10,8 +10,8 @@
1010
"src",
1111
"dist"
1212
],
13-
"unpkg": "./dist/gpu-browser.min.js",
14-
"jsdelivr": "./dist/gpu-browser.min.js",
13+
"unpkg": "./dist/gpu-browser.js",
14+
"jsdelivr": "./dist/gpu-browser.js",
1515
"browser": "./dist/gpu-browser.js",
1616
"directories": {
1717
"doc": "doc",
@@ -21,7 +21,8 @@
2121
"acorn": "^7.1.1",
2222
"gl": "^4.5.2",
2323
"gl-wiretap": "^0.6.2",
24-
"gpu-mock.js": "^1.3.0"
24+
"gpu-mock.js": "^1.3.0",
25+
"webgpu": "^0.1.16"
2526
},
2627
"devDependencies": {
2728
"benchmark": "^2.1.4",

Diff for: src/backend/function-node.js

+1
Original file line numberDiff line numberDiff line change
@@ -1470,6 +1470,7 @@ const typeLookupMap = {
14701470
'Array3D': 'Number',
14711471
'Input': 'Number',
14721472
'HTMLCanvas': 'Array(4)',
1473+
'OffscreenCanvas': 'Array(4)',
14731474
'HTMLImage': 'Array(4)',
14741475
'HTMLVideo': 'Array(4)',
14751476
'HTMLImageArray': 'Array(4)',

Diff for: src/backend/web-gl/function-node.js

+1
Original file line numberDiff line numberDiff line change
@@ -1248,6 +1248,7 @@ class WebGLFunctionNode extends FunctionNode {
12481248
break;
12491249
case 'ArrayTexture(4)':
12501250
case 'HTMLCanvas':
1251+
case 'OffscreenCanvas':
12511252
case 'HTMLImage':
12521253
case 'HTMLVideo':
12531254
retArr.push(`getVec4FromSampler2D(${ markupName }, ${ markupName }Size, ${ markupName }Dim, `);

Diff for: src/backend/web-gl/kernel-value-maps.js

+19-15
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ const { WebGLKernelValueDynamicSingleArray2DI } = require('./kernel-value/dynami
3232
const { WebGLKernelValueSingleArray3DI } = require('./kernel-value/single-array3d-i');
3333
const { WebGLKernelValueDynamicSingleArray3DI } = require('./kernel-value/dynamic-single-array3d-i');
3434

35-
const { WebGLKernelValueSingleArray2 } = require('./kernel-value/single-array2');
36-
const { WebGLKernelValueSingleArray3 } = require('./kernel-value/single-array3');
37-
const { WebGLKernelValueSingleArray4 } = require('./kernel-value/single-array4');
35+
const { WebGLKernelValueArray2 } = require('./kernel-value/array2');
36+
const { WebGLKernelValueArray3 } = require('./kernel-value/array3');
37+
const { WebGLKernelValueArray4 } = require('./kernel-value/array4');
3838

3939
const { WebGLKernelValueUnsignedArray } = require('./kernel-value/unsigned-array');
4040
const { WebGLKernelValueDynamicUnsignedArray } = require('./kernel-value/dynamic-unsigned-array');
@@ -46,9 +46,9 @@ const kernelValueMaps = {
4646
'Integer': WebGLKernelValueInteger,
4747
'Float': WebGLKernelValueFloat,
4848
'Array': WebGLKernelValueDynamicUnsignedArray,
49-
'Array(2)': false,
50-
'Array(3)': false,
51-
'Array(4)': false,
49+
'Array(2)': WebGLKernelValueArray2,
50+
'Array(3)': WebGLKernelValueArray3,
51+
'Array(4)': WebGLKernelValueArray4,
5252
'Array1D(2)': false,
5353
'Array1D(3)': false,
5454
'Array1D(4)': false,
@@ -66,6 +66,7 @@ const kernelValueMaps = {
6666
'ArrayTexture(4)': WebGLKernelValueDynamicNumberTexture,
6767
'MemoryOptimizedNumberTexture': WebGLKernelValueDynamicMemoryOptimizedNumberTexture,
6868
'HTMLCanvas': WebGLKernelValueDynamicHTMLImage,
69+
'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
6970
'HTMLImage': WebGLKernelValueDynamicHTMLImage,
7071
'HTMLImageArray': false,
7172
'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
@@ -75,9 +76,9 @@ const kernelValueMaps = {
7576
'Float': WebGLKernelValueFloat,
7677
'Integer': WebGLKernelValueInteger,
7778
'Array': WebGLKernelValueUnsignedArray,
78-
'Array(2)': false,
79-
'Array(3)': false,
80-
'Array(4)': false,
79+
'Array(2)': WebGLKernelValueArray2,
80+
'Array(3)': WebGLKernelValueArray3,
81+
'Array(4)': WebGLKernelValueArray4,
8182
'Array1D(2)': false,
8283
'Array1D(3)': false,
8384
'Array1D(4)': false,
@@ -95,6 +96,7 @@ const kernelValueMaps = {
9596
'ArrayTexture(4)': WebGLKernelValueNumberTexture,
9697
'MemoryOptimizedNumberTexture': WebGLKernelValueMemoryOptimizedNumberTexture,
9798
'HTMLCanvas': WebGLKernelValueHTMLImage,
99+
'OffscreenCanvas': WebGLKernelValueHTMLImage,
98100
'HTMLImage': WebGLKernelValueHTMLImage,
99101
'HTMLImageArray': false,
100102
'HTMLVideo': WebGLKernelValueHTMLVideo,
@@ -106,9 +108,9 @@ const kernelValueMaps = {
106108
'Integer': WebGLKernelValueInteger,
107109
'Float': WebGLKernelValueFloat,
108110
'Array': WebGLKernelValueDynamicSingleArray,
109-
'Array(2)': WebGLKernelValueSingleArray2,
110-
'Array(3)': WebGLKernelValueSingleArray3,
111-
'Array(4)': WebGLKernelValueSingleArray4,
111+
'Array(2)': WebGLKernelValueArray2,
112+
'Array(3)': WebGLKernelValueArray3,
113+
'Array(4)': WebGLKernelValueArray4,
112114
'Array1D(2)': WebGLKernelValueDynamicSingleArray1DI,
113115
'Array1D(3)': WebGLKernelValueDynamicSingleArray1DI,
114116
'Array1D(4)': WebGLKernelValueDynamicSingleArray1DI,
@@ -126,6 +128,7 @@ const kernelValueMaps = {
126128
'ArrayTexture(4)': WebGLKernelValueDynamicNumberTexture,
127129
'MemoryOptimizedNumberTexture': WebGLKernelValueDynamicMemoryOptimizedNumberTexture,
128130
'HTMLCanvas': WebGLKernelValueDynamicHTMLImage,
131+
'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
129132
'HTMLImage': WebGLKernelValueDynamicHTMLImage,
130133
'HTMLImageArray': false,
131134
'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
@@ -135,9 +138,9 @@ const kernelValueMaps = {
135138
'Float': WebGLKernelValueFloat,
136139
'Integer': WebGLKernelValueInteger,
137140
'Array': WebGLKernelValueSingleArray,
138-
'Array(2)': WebGLKernelValueSingleArray2,
139-
'Array(3)': WebGLKernelValueSingleArray3,
140-
'Array(4)': WebGLKernelValueSingleArray4,
141+
'Array(2)': WebGLKernelValueArray2,
142+
'Array(3)': WebGLKernelValueArray3,
143+
'Array(4)': WebGLKernelValueArray4,
141144
'Array1D(2)': WebGLKernelValueSingleArray1DI,
142145
'Array1D(3)': WebGLKernelValueSingleArray1DI,
143146
'Array1D(4)': WebGLKernelValueSingleArray1DI,
@@ -155,6 +158,7 @@ const kernelValueMaps = {
155158
'ArrayTexture(4)': WebGLKernelValueNumberTexture,
156159
'MemoryOptimizedNumberTexture': WebGLKernelValueMemoryOptimizedNumberTexture,
157160
'HTMLCanvas': WebGLKernelValueHTMLImage,
161+
'OffscreenCanvas': WebGLKernelValueHTMLImage,
158162
'HTMLImage': WebGLKernelValueHTMLImage,
159163
'HTMLImageArray': false,
160164
'HTMLVideo': WebGLKernelValueHTMLVideo,

Diff for: src/backend/web-gl/kernel-value/single-array2.js renamed to src/backend/web-gl/kernel-value/array2.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
const { utils } = require('../../../utils');
21
const { WebGLKernelValue } = require('./index');
32

4-
class WebGLKernelValueSingleArray2 extends WebGLKernelValue {
3+
class WebGLKernelValueArray2 extends WebGLKernelValue {
54
constructor(value, settings) {
65
super(value, settings);
76
this.uploadValue = value;
@@ -26,5 +25,5 @@ class WebGLKernelValueSingleArray2 extends WebGLKernelValue {
2625
}
2726

2827
module.exports = {
29-
WebGLKernelValueSingleArray2
28+
WebGLKernelValueArray2
3029
};

Diff for: src/backend/web-gl/kernel-value/single-array3.js renamed to src/backend/web-gl/kernel-value/array3.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
const { utils } = require('../../../utils');
21
const { WebGLKernelValue } = require('./index');
32

4-
class WebGLKernelValueSingleArray3 extends WebGLKernelValue {
3+
class WebGLKernelValueArray3 extends WebGLKernelValue {
54
constructor(value, settings) {
65
super(value, settings);
76
this.uploadValue = value;
@@ -26,5 +25,5 @@ class WebGLKernelValueSingleArray3 extends WebGLKernelValue {
2625
}
2726

2827
module.exports = {
29-
WebGLKernelValueSingleArray3
28+
WebGLKernelValueArray3
3029
};

Diff for: src/backend/web-gl/kernel-value/single-array4.js renamed to src/backend/web-gl/kernel-value/array4.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
const { utils } = require('../../../utils');
21
const { WebGLKernelValue } = require('./index');
32

4-
class WebGLKernelValueSingleArray4 extends WebGLKernelValue {
3+
class WebGLKernelValueArray4 extends WebGLKernelValue {
54
constructor(value, settings) {
65
super(value, settings);
76
this.uploadValue = value;
@@ -26,5 +25,5 @@ class WebGLKernelValueSingleArray4 extends WebGLKernelValue {
2625
}
2726

2827
module.exports = {
29-
WebGLKernelValueSingleArray4
28+
WebGLKernelValueArray4
3029
};

Diff for: src/backend/web-gl/kernel-value/memory-optimized-number-texture.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,4 @@ class WebGLKernelValueMemoryOptimizedNumberTexture extends WebGLKernelArray {
6969
module.exports = {
7070
WebGLKernelValueMemoryOptimizedNumberTexture,
7171
sameError
72-
};
72+
};

Diff for: src/backend/web-gl/kernel-value/number-texture.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,4 @@ class WebGLKernelValueNumberTexture extends WebGLKernelArray {
7070

7171
module.exports = {
7272
WebGLKernelValueNumberTexture
73-
};
73+
};

Diff for: src/backend/web-gl2/kernel-value-maps.js

+19-15
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ const { WebGL2KernelValueDynamicSingleArray2DI } = require('./kernel-value/dynam
3535
const { WebGL2KernelValueSingleArray3DI } = require('./kernel-value/single-array3d-i');
3636
const { WebGL2KernelValueDynamicSingleArray3DI } = require('./kernel-value/dynamic-single-array3d-i');
3737

38-
const { WebGL2KernelValueSingleArray2 } = require('./kernel-value/single-array2');
39-
const { WebGL2KernelValueSingleArray3 } = require('./kernel-value/single-array3');
40-
const { WebGL2KernelValueSingleArray4 } = require('./kernel-value/single-array4');
38+
const { WebGL2KernelValueArray2 } = require('./kernel-value/array2');
39+
const { WebGL2KernelValueArray3 } = require('./kernel-value/array3');
40+
const { WebGL2KernelValueArray4 } = require('./kernel-value/array4');
4141

4242
const { WebGL2KernelValueUnsignedArray } = require('./kernel-value/unsigned-array');
4343
const { WebGL2KernelValueDynamicUnsignedArray } = require('./kernel-value/dynamic-unsigned-array');
@@ -49,9 +49,9 @@ const kernelValueMaps = {
4949
'Integer': WebGL2KernelValueInteger,
5050
'Float': WebGL2KernelValueFloat,
5151
'Array': WebGL2KernelValueDynamicUnsignedArray,
52-
'Array(2)': false,
53-
'Array(3)': false,
54-
'Array(4)': false,
52+
'Array(2)': WebGL2KernelValueArray2,
53+
'Array(3)': WebGL2KernelValueArray3,
54+
'Array(4)': WebGL2KernelValueArray4,
5555
'Array1D(2)': false,
5656
'Array1D(3)': false,
5757
'Array1D(4)': false,
@@ -69,6 +69,7 @@ const kernelValueMaps = {
6969
'ArrayTexture(4)': WebGL2KernelValueDynamicNumberTexture,
7070
'MemoryOptimizedNumberTexture': WebGL2KernelValueDynamicMemoryOptimizedNumberTexture,
7171
'HTMLCanvas': WebGL2KernelValueDynamicHTMLImage,
72+
'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
7273
'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
7374
'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
7475
'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
@@ -78,9 +79,9 @@ const kernelValueMaps = {
7879
'Float': WebGL2KernelValueFloat,
7980
'Integer': WebGL2KernelValueInteger,
8081
'Array': WebGL2KernelValueUnsignedArray,
81-
'Array(2)': false,
82-
'Array(3)': false,
83-
'Array(4)': false,
82+
'Array(2)': WebGL2KernelValueArray2,
83+
'Array(3)': WebGL2KernelValueArray3,
84+
'Array(4)': WebGL2KernelValueArray4,
8485
'Array1D(2)': false,
8586
'Array1D(3)': false,
8687
'Array1D(4)': false,
@@ -98,6 +99,7 @@ const kernelValueMaps = {
9899
'ArrayTexture(4)': WebGL2KernelValueNumberTexture,
99100
'MemoryOptimizedNumberTexture': WebGL2KernelValueDynamicMemoryOptimizedNumberTexture,
100101
'HTMLCanvas': WebGL2KernelValueHTMLImage,
102+
'OffscreenCanvas': WebGL2KernelValueHTMLImage,
101103
'HTMLImage': WebGL2KernelValueHTMLImage,
102104
'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
103105
'HTMLVideo': WebGL2KernelValueHTMLVideo,
@@ -109,9 +111,9 @@ const kernelValueMaps = {
109111
'Integer': WebGL2KernelValueInteger,
110112
'Float': WebGL2KernelValueFloat,
111113
'Array': WebGL2KernelValueDynamicSingleArray,
112-
'Array(2)': WebGL2KernelValueSingleArray2,
113-
'Array(3)': WebGL2KernelValueSingleArray3,
114-
'Array(4)': WebGL2KernelValueSingleArray4,
114+
'Array(2)': WebGL2KernelValueArray2,
115+
'Array(3)': WebGL2KernelValueArray3,
116+
'Array(4)': WebGL2KernelValueArray4,
115117
'Array1D(2)': WebGL2KernelValueDynamicSingleArray1DI,
116118
'Array1D(3)': WebGL2KernelValueDynamicSingleArray1DI,
117119
'Array1D(4)': WebGL2KernelValueDynamicSingleArray1DI,
@@ -129,6 +131,7 @@ const kernelValueMaps = {
129131
'ArrayTexture(4)': WebGL2KernelValueDynamicNumberTexture,
130132
'MemoryOptimizedNumberTexture': WebGL2KernelValueDynamicMemoryOptimizedNumberTexture,
131133
'HTMLCanvas': WebGL2KernelValueDynamicHTMLImage,
134+
'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
132135
'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
133136
'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
134137
'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
@@ -138,9 +141,9 @@ const kernelValueMaps = {
138141
'Float': WebGL2KernelValueFloat,
139142
'Integer': WebGL2KernelValueInteger,
140143
'Array': WebGL2KernelValueSingleArray,
141-
'Array(2)': WebGL2KernelValueSingleArray2,
142-
'Array(3)': WebGL2KernelValueSingleArray3,
143-
'Array(4)': WebGL2KernelValueSingleArray4,
144+
'Array(2)': WebGL2KernelValueArray2,
145+
'Array(3)': WebGL2KernelValueArray3,
146+
'Array(4)': WebGL2KernelValueArray4,
144147
'Array1D(2)': WebGL2KernelValueSingleArray1DI,
145148
'Array1D(3)': WebGL2KernelValueSingleArray1DI,
146149
'Array1D(4)': WebGL2KernelValueSingleArray1DI,
@@ -158,6 +161,7 @@ const kernelValueMaps = {
158161
'ArrayTexture(4)': WebGL2KernelValueNumberTexture,
159162
'MemoryOptimizedNumberTexture': WebGL2KernelValueMemoryOptimizedNumberTexture,
160163
'HTMLCanvas': WebGL2KernelValueHTMLImage,
164+
'OffscreenCanvas': WebGL2KernelValueHTMLImage,
161165
'HTMLImage': WebGL2KernelValueHTMLImage,
162166
'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
163167
'HTMLVideo': WebGL2KernelValueHTMLVideo,

Diff for: src/backend/web-gl2/kernel-value/array2.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const { WebGLKernelValueArray2 } = require('../../web-gl/kernel-value/array2');
2+
3+
class WebGL2KernelValueArray2 extends WebGLKernelValueArray2 {}
4+
5+
module.exports = {
6+
WebGL2KernelValueArray2
7+
};

Diff for: src/backend/web-gl2/kernel-value/array3.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const { WebGLKernelValueArray3 } = require('../../web-gl/kernel-value/array3');
2+
3+
class WebGL2KernelValueArray3 extends WebGLKernelValueArray3 {}
4+
5+
module.exports = {
6+
WebGL2KernelValueArray3
7+
};

Diff for: src/backend/web-gl2/kernel-value/array4.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const { WebGLKernelValueArray4 } = require('../../web-gl/kernel-value/array4');
2+
3+
class WebGL2KernelValueArray4 extends WebGLKernelValueArray4 {}
4+
5+
module.exports = {
6+
WebGL2KernelValueArray4
7+
};

Diff for: src/backend/web-gl2/kernel-value/single-array2.js

-7
This file was deleted.

Diff for: src/backend/web-gl2/kernel-value/single-array3.js

-7
This file was deleted.

Diff for: src/backend/web-gl2/kernel-value/single-array4.js

-7
This file was deleted.

Diff for: src/utils.js

+2
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ const utils = {
142142
return value.type;
143143
case Input:
144144
return 'Input';
145+
case OffscreenCanvas:
146+
return 'OffscreenCanvas';
145147
}
146148
switch (value.nodeName) {
147149
case 'IMG':

Diff for: test/all.html

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
<script type="module" src="features/raw-output.js"></script>
9292
<script type="module" src="features/read-color-texture.js"></script>
9393
<script type="module" src="features/read-from-texture.js"></script>
94+
<script type="module" src="features/read-offscreen-canvas.js"></script>
9495
<script type="module" src="features/return-arrays.js"></script>
9596
<script type="module" src="features/single-precision-textures.js"></script>
9697
<script type="module" src="features/single-precision.js"></script>

0 commit comments

Comments
 (0)