|
4 | 4 | * |
5 | 5 | * GPU Accelerated JavaScript |
6 | 6 | * |
7 | | - * @version 2.0.0-rc.24 |
8 | | - * @date Mon Jul 29 2019 16:04:14 GMT-0400 (Eastern Daylight Time) |
| 7 | + * @version 2.0.0-rc.25 |
| 8 | + * @date Tue Aug 06 2019 16:11:03 GMT-0400 (Eastern Daylight Time) |
9 | 9 | * |
10 | 10 | * @license MIT |
11 | 11 | * The MIT License |
@@ -12407,11 +12407,11 @@ class GPU { |
12407 | 12407 | this.canvas = settings.canvas || null; |
12408 | 12408 | this.context = settings.context || null; |
12409 | 12409 | this.mode = settings.mode; |
12410 | | - if (this.mode === 'dev') return; |
12411 | 12410 | this.Kernel = null; |
12412 | 12411 | this.kernels = []; |
12413 | 12412 | this.functions = []; |
12414 | 12413 | this.nativeFunctions = []; |
| 12414 | + if (this.mode === 'dev') return; |
12415 | 12415 | this.chooseKernel(); |
12416 | 12416 | if (settings.functions) { |
12417 | 12417 | for (let i = 0; i < settings.functions.length; i++) { |
@@ -12490,7 +12490,9 @@ class GPU { |
12490 | 12490 | } |
12491 | 12491 |
|
12492 | 12492 | if (this.mode === 'dev') { |
12493 | | - return gpuMock(source, upgradeDeprecatedCreateKernelSettings(settings)); |
| 12493 | + const devKernel = gpuMock(source, upgradeDeprecatedCreateKernelSettings(settings)); |
| 12494 | + this.kernels.push(devKernel); |
| 12495 | + return devKernel; |
12494 | 12496 | } |
12495 | 12497 |
|
12496 | 12498 | source = typeof source === 'function' ? source.toString() : source; |
@@ -12540,6 +12542,7 @@ class GPU { |
12540 | 12542 | case 'Number': |
12541 | 12543 | case 'Integer': |
12542 | 12544 | case 'Float': |
| 12545 | + case 'ArrayTexture(1)': |
12543 | 12546 | argumentTypes[i] = utils.getVariableType(arg); |
12544 | 12547 | break; |
12545 | 12548 | default: |
@@ -12631,16 +12634,19 @@ class GPU { |
12631 | 12634 | fn = arguments[arguments.length - 1]; |
12632 | 12635 | } |
12633 | 12636 |
|
12634 | | - if (!this.Kernel.isSupported || !this.Kernel.features.kernelMap) { |
12635 | | - if (this.mode && kernelTypes.indexOf(this.mode) < 0) { |
12636 | | - throw new Error(`kernelMap not supported on ${this.Kernel.name}`); |
| 12637 | + if (this.mode !== 'dev') { |
| 12638 | + if (!this.Kernel.isSupported || !this.Kernel.features.kernelMap) { |
| 12639 | + if (this.mode && kernelTypes.indexOf(this.mode) < 0) { |
| 12640 | + throw new Error(`kernelMap not supported on ${this.Kernel.name}`); |
| 12641 | + } |
12637 | 12642 | } |
12638 | 12643 | } |
12639 | 12644 |
|
12640 | 12645 | const settingsCopy = upgradeDeprecatedCreateKernelSettings(settings); |
12641 | 12646 | if (settings && typeof settings.argumentTypes === 'object') { |
12642 | 12647 | settingsCopy.argumentTypes = Object.keys(settings.argumentTypes).map(argumentName => settings.argumentTypes[argumentName]); |
12643 | 12648 | } |
| 12649 | + |
12644 | 12650 | if (Array.isArray(arguments[0])) { |
12645 | 12651 | settingsCopy.subKernels = []; |
12646 | 12652 | const functions = arguments[0]; |
@@ -12723,7 +12729,15 @@ class GPU { |
12723 | 12729 | for (let i = 0; i < this.kernels.length; i++) { |
12724 | 12730 | this.kernels[i].destroy(true); |
12725 | 12731 | } |
12726 | | - this.kernels[0].kernel.constructor.destroyContext(this.context); |
| 12732 | + let firstKernel = this.kernels[0]; |
| 12733 | + if (firstKernel) { |
| 12734 | + if (firstKernel.kernel) { |
| 12735 | + firstKernel = firstKernel.kernel; |
| 12736 | + } |
| 12737 | + if (firstKernel.constructor.destroyContext) { |
| 12738 | + firstKernel.constructor.destroyContext(this.context); |
| 12739 | + } |
| 12740 | + } |
12727 | 12741 | }, 0); |
12728 | 12742 | } |
12729 | 12743 | } |
|
0 commit comments