156 Commits

Author SHA1 Message Date
Robert Plummer
4d2f27e596 fix: #590 add Kernel.onActivate
- which is called after gpu.js switches kernels based off need
fix: Consistent error message for values that are not defined
fix: Add recompiled kernels to gpu.js kernels property and test
fix: Move texture deleting to within the GLKernel Texture implementation
fix: Add Texture.clear as an abstract method on the base Texture
fix: Bump and build
2020-04-01 08:24:49 -04:00
Robert Plummer
7e62639033 fix: #585 check for inaccurate results for very small kernel
fix: #585 add features.isSpeedTacticSupported and tests
2020-03-30 08:21:09 -04:00
Robert Plummer
1955ad3500 fix: #586 2020-03-24 07:53:57 -04:00
Robert Plummer
61dfe8a46a fix: #572 excessive calls, reuse textures
feat: introduce WebGL._replaceOutputTexture and WebGL._replaceSubOutputTextures to cut down on resource usage
feat: All supportable Math.methods added
fix: Safari not able to render texture arguments
feat: CPU gets a pipeline that acts like GPU with/without immutable
2020-03-22 17:29:26 -04:00
Robert Plummer
a37fe28818 fix: Memory leaks on build if called more than once 2020-03-20 08:27:24 -04:00
Robert Plummer
8cfbf0cad7 fix: Clearing cloned textures produces new internal copy when multi references 2020-03-16 10:59:04 -04:00
Robert Plummer
0a072fedf4 fix: Version bump and build 2020-03-16 08:44:07 -04:00
Robert Plummer
6df34b3a90 fix: Don't call beforeMutate if immutable and unit test 2020-03-16 08:40:04 -04:00
Robert Plummer
b1af9b3c4c fix: Don't call kernel.updateTextureArgumentRefs if kernel is mutable 2020-03-12 07:40:15 -04:00
Robert Plummer
f88d92cc40 feat: Bring back kernel.immutable and kernel.setImmutable() with defaults to false
Along with tests and documentation on which versions are affected.  Sorry for the inconvenience!
feat: Add more advanced-typescript.ts
fix: Alter documentation mentioning v2
fix: Example of fluid.html, to use `immutable`
2020-03-11 07:36:50 -04:00
Robert Plummer
3fe63f6db3 feat: Add texture.empty() support and tests 2020-03-10 16:16:13 -04:00
Robert Plummer
20b456b7c9 fix: Add missing Math.tanh support and test 2020-03-09 05:50:26 -04:00
Robert Plummer
54518beecd fix: Add missing Math.tanh support and test 2020-03-09 05:46:34 -04:00
Robert Plummer
9286f5669d fix: Move argument sanitization to when writing strings only 2020-02-16 15:58:24 -05:00
Robert Plummer
3cc8987d79 fix: Underscore and test, version bump, and code coverage command
ty c8!
2020-02-16 14:38:33 -05:00
Robert Plummer
b69644c17a fix: Use case of CallExpression
in WebGL.astCallExpression
2020-02-11 08:12:45 -05:00
Robert Plummer
012cfff566 fix: #522 related, add missing deprecated method with warning 2020-01-24 10:41:27 -05:00
Robert Plummer
5a6d817d77 fix: #519 funny names from minification and upgrade typescript
So c35717e3b4 is properly supported.
2020-01-23 07:20:40 -05:00
Robert Plummer
b2c9051f7e fix: #534 2020-01-21 08:17:02 -05:00
Robert Plummer
db54434166 fix: Modulo performance and simplify tests
fix: Modulo negatives
fix: Modulo accuracy issue on OSX with `integerCorrectionModulo`
fix: Follow naming convention `div_with_int_check` to `divWithIntCheck`
fix: Member expression with function
fix: CPU variable assignment
fix: `gpu.addFunction` needed to be before createKernel and documentation
fix: mandelbulb.html from above .addFunction
2020-01-21 07:37:48 -05:00
Robert Plummer
16bed1596e fix: If already an IGPUFunction don't convert to one 2020-01-19 07:47:05 -05:00
Robert Plummer
7f1c96efd4 fix: Upgrade headless gl, for upstream performance fix 2020-01-19 07:01:10 -05:00
Robert Plummer
de98b0102d feat: Finish HTMLCanvas input from PR https://github.com/gpujs/gpu.js/pull/566
fix: #567
fix: #569
fix: #568
fix: #565
fix: #564
2020-01-18 08:42:09 -05:00
Robert Plummer
254b06791f feat: Handle ++ in function-tracer.js
This is in favor of using for loop variable position tracking, which is removed.
feat: Removal of no longer needed `warnVarUsage`
feat: If ternary returns void, use if statement in webgl
fix: Update documentation and clarify variable declarations
  Officially support private functions - WOOHOO!
2020-01-14 07:01:23 -05:00
Robert Plummer
cd0b417c67 fix: #552 remove incorrect texture size checks
fix: texture.renderRawOutput to use existing framebuffer, or make it so it can be deleted
fix: glKernelString to handle the framebuffer from texture.renderRawOutput
fix: WebGLKernelArray.checkSize so display error for all three scenarios
  1. width too big
  2. height too big
  3. width and height too big
2020-01-08 07:13:37 -05:00
Robert Plummer
03972cc1fa fix: #553 call gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); on every texture type and add unit tests
fix: Framebuffer loss after texture is deleted
fix: Split up array and primitive (index.js) types of KernelValues and introduce .setup()
  * This was needed to handle .toArray() from the fix from #553
fix: Performance fix, define texture types in `kernelValue.setup()`, rather than on every `kernelValue.updateValue()`
2020-01-06 13:36:00 -05:00
Robert Plummer
316e35a3a1 fix: #559 (line 16 of kernel-run-shortcut.js)
fix: Slight memory leak, and loss of first kernel when switching kernels
fix: Feed `value.constructor` to `this.onUpdateValueMismatch()` where it was missing
2020-01-02 19:48:13 -05:00
Robert Plummer
78b6e301c4 fix: #556 upgrade acorn, and handle function() {} syntax 2020-01-02 13:03:46 -05:00
Robert Plummer
ef17f8f41d fix: #556 followup fix, not all declared types need to be integers 2020-01-02 12:28:17 -05:00
Robert Plummer
fbb853865a fix: #556 & tests and ensure OffscreenCanvas gets GPU
Make unsafe when meets the qualification and warn
2019-12-27 16:37:14 -05:00
Robert Plummer
83641519dd fix: Rename Texture.texture.refs to more private Texture.texture._refs
fix: Create framebuffer for internal texture, and not per GPU Texture
fix: Set window.GPU by use of getter, and have no setter
2019-12-27 08:20:00 -05:00
Robert Plummer
a3c930d583 fix: Memory recycling bug, and remove no longer needed renderStrategy
Also cleanup documentation a bit
2019-12-25 09:10:56 -05:00
Robert Plummer
6e2f1dacde feat: Cleanup and bring texture recycling to webgl2, and add unit test 2019-12-22 17:41:29 -05:00
Robert Plummer
142f191eb4 fix: Bump version and build 2019-12-17 09:40:07 -05:00
Robert Plummer
f78f6895ea
Merge pull request #540 from gpujs/pre-2.3.0
Pre 2.3.0 work
2019-11-26 10:56:56 -05:00
Robert Plummer
ed1cd94448 feat: Added features and fixes for the following issues:
...it kind of snowballed from some needs
Fixes #521 - If `tactic` is not set, check precision allowed from WebGL, and automatically change based off needs, otherwise use value from `tactic`.
Fixes #535 - Internally check if texture from argument is the same as output, if so, clone this texture, and then clean it up after the kernel runs.
Fixes #536 - Normalize all declarations to non-destructured, and then parse
Fixes #537 - Change logic
Fixes #538 - Found the GL script that would work, and reduced the methods to use it
Fixes #539 - Found a better way of testing random, and this gives me an error for 1 in 10 runs, acceptable

Some refactoring for less duplicate code and documentation
2019-11-26 10:55:28 -05:00
Robert Plummer
a7a9e1e3c9 Merge branch 'master' into develop 2019-11-05 04:41:18 -05:00
Robert Plummer
67f3b3c8ad fix: Allow false for removeIstanbulCoverage 2019-10-30 16:55:51 -04:00
Robert Plummer
01728ad36c fix: Bump version and build 2019-10-29 17:52:27 -04:00
Christoph Guttandin
5e8faf9e49 feat: add browser field to package.json 2019-10-18 13:22:02 +02:00
Robert Plummer
ab75103032 feat: Add texture.clone() support and tests
feat: Upgrade gpu-mock.js
fix: Typescript `Texture` definition
fix: Typescript JSON definition
fix: Some internal documentation
fix: Some removal of unused or duplicate code
2019-10-13 16:06:30 -04:00
Robert Plummer
33a23958a6 fix: Add nested custom function support 2019-10-11 07:28:02 -04:00
Robert Plummer
c7df01e66f fix: #514 fix and upgrade tests to detect behaviour
fix: Documentation for what types are and are not tracked
fix: Added documentation for testing and building
fix: Some destructuring
2019-10-08 10:29:54 -04:00
Robert Plummer
cab4d033bc fix: Fix #512, upgrade gl-wiretap and fix some .toString()
Also fix default dynamicOutput = true, it should be false
Also add .DS_Store to .gitignore
Also update package-lock.json
Also fix some unit tests that deal with dynamic output
Also add `setDynamicOutput` and `setDynamicArguments` to typescript
Also fix issue where `uOutputDim` needs `Int32Array` in `.toString()`
Also added some spaces for `.toString()` to look more pretty
2019-10-02 21:34:20 -04:00
Robert Plummer
92def8cb00 fix: #485 and remove unused method 2019-09-25 10:14:53 -04:00
Robert Plummer
83cedd89a7 fix: Unit tests for #500, #501, #502, #503, #504
fix: typescript to include video and KernelValues
fix: Duplicate image in unit test
fix: Bump and build
2019-09-24 10:22:16 -04:00
Robert Plummer
2bc76ad82d feat: Video input, injectNative, tests.
v2.0.0 Cosmic Jellyfish
2019-09-17 10:51:53 -04:00
Robert Plummer
56e673a364 fix: Bump gl version to modern, more performant version 2019-09-09 19:56:29 -04:00
Robert Plummer
6eafe70f8e feat: add tactic feature
To switch internally from `lowp`, to `mediump`, or `highp`.
Also added unit tests.
2019-08-23 10:19:54 -04:00
Robert Plummer
75895512e4 fix: dev mode for adding functions
fix: dev mode kernel to be added to GPU.kernels
fix: Array switching with array type is not defined in single precision mode
fix: GPU.destroy when no context is set
2019-08-06 16:14:05 -04:00