92 Commits

Author SHA1 Message Date
Robert Plummer
e3fd163505 fix: Ensure arguments are targeted correctly
fix: Added a missing jsdoc
2020-12-02 15:16:35 -05:00
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
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
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
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
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
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
d01a0d5c62 fix: add missing test 2019-09-25 11:07:26 -04:00
Robert Plummer
4dba2e7352 fix: Remove unneeded line 2019-09-24 10:39:17 -04:00
Robert Plummer
354c2014ee fix: A few broken unit test for node 2019-09-24 10:38:52 -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
4260a345c7 fix: #493, and add setStrictIntegers to typescript def
fix: Remove repeated literal `${ast.start},${ast.end}`, in favor of var
2019-07-29 16:06:17 -04:00
Robert Plummer
86af54efef fix: Node support for v8+
fix: Move `make` cli command to gulp so it runs in parallel
fix: Add official support for `Array1D(2|3|4)`, `Array2D(2|3|4)`, and `Array3D(2|3|4)` and unit tests
fix: Add offical support for `Array(2)`, `Array(3)`, and `Array(4)` and unit tests
fix: Mandelbulb constant used a constant, so moved to appropriate location
fix: Failing unit test for Safari
fix: When not falling back in HeadlessGL, call `STACKGL_resize_drawingbuffer`
fix: Remove `xyz` variable from glsl
fix: Add `uniform4fv` and `uniform4iv` to WebGL implementation
fix: Check for kernel settings `constantTypes` and `argumentTypes`
fix: Inherit type from kernel in KernelValue constructors
fix: Add some typescript details for `GPUVariableType`, `IKernelSettings`, and `ITypesList`
fix: Add support for 4d array in `utils.getMemoryOptimizedFloatTextureSize` for the special use case of `Array3D(2|3|4)`
fix: Add `utils.flatten4dArrayTo` for the special use case of `Array3D(2|3|4)`
fix: Add support for 4d array in `utils.flattenTo`
fix: Bump and build
2019-07-24 12:56:05 -04:00
Robert Plummer
82832902cc fix: Move jellyfish images to actual files
fix: added `warnVarUsage` and `Dealing With Transpilation`
fix: Test dynamic arguments and provide some fixes for
fix: Dynamic arguments for `CPUFunctionNode`
fix: Dynamic arguments for `WebGLKernelValueDynamicHTMLImage`, `WebGLKernelValueDynamicNumberTexture`, `WebGLKernelValueDynamicSingleInput`, `WebGL2KernelValueDynamicHTMLImage`, `WebGL2KernelValueDynamicNumberTexture`, and `WebGL2KernelValueDynamicSingleInput`
fix: `onRequestFallback` settings in `createKernel` and `createKernel` inclusion of `loopMaxIterations`, `dynamicOutput`, and `dynamicArgument` in settings for when switching kernels
fix: `WebGL2Kernel` and `HeadlessGLKernel` typescript definition extensions
2019-07-05 11:03:25 -04:00
Robert Plummer
7bcfbed234 feat: Pre type check with FunctionTracer
feat: Add cat demo
feat: Type check even on CPU
fix: ArrayTexture support as arguments for internal arrays
fix: Typo from "Interger" to "Integer"
feat: Bump and build version number
2019-06-17 18:00:36 -04:00
Robert Plummer
27f4efb8d9 fix: Proper kernel.toString() unit tests (good grief, so many!) for CPU and GPU
feat: `switch` statements
feat: `kernel.toString()` has as well `.getPixels()`
fix: Proper fallback when arguments or constants are not supported
fix: Removal of infamous `|| 'Number'` for argument types and return types
fix: detect circlical logic in `FunctionBuilder.lookupReturnType()` and tests
fix: Allow subKernels to get their type detected as well
fix: `FunctionNode`'s `typeLookupMap` didn't have 'Float' or 'Integer'
feat: Turn off context checking in kernel, via `{ checkContext: false }`, used for `kernel.toString()`
fix: `GPU.upgradeDeprecatedCreateKernelSettings` to have a default return value
fix: Typings
fix: `kernelRunShortcut()` to better switch kernel when replacing
feat: It order to flatten methods, for `kernel.toString()` `utils.flattenFunctionToString()` and light unit testing of it
fix: Added sinon for testing
fix: Bump gl-wiretap
2019-06-03 19:32:21 -04:00
Robert Plummer
49a06ba305 fix: #470
the math didn't end up being wrong, but found an issue with argument type, and went ahead and fixed it
2019-05-24 09:36:28 -04:00
Robert Plummer
1c96c40bd2 fix: #471, destroy gpu, ooooooops 2019-05-23 21:05:19 -04:00
Robert Plummer
dd6665a513 fix: #471, was already fixed, but added unit test anyway
fix: Rename describe for conformity
2019-05-23 21:01:13 -04:00
Robert Plummer
f7a931ea40 fix: #472 cleanup, and turn off debug 2019-05-23 20:47:59 -04:00
Robert Plummer
4d46279fd4 fix: #472 compilation issue, and add Uint8ClampedArray support 2019-05-23 18:13:12 -04:00
Robert Plummer
181c553601 fix: #473 resize canvas when needed in headlessgl and unit test 2019-05-23 16:49:56 -04:00
Robert Plummer
a0a92586c0 fix: #378 unit test, showing the issue resolved
fix: Random demo, when webgl or webgl2 not available, use try to keep demo running
2019-05-22 09:43:44 -04:00
Robert Plummer
05dd1744ea fix: partial (maybe whole) for #408 Break up texture constructors
So we can use `texture.toArray()`, this uses much less resources
2019-05-22 08:50:46 -04:00
Robert Plummer
62d4ea739d fix: #396 by changing documentation and adding unit test 2019-05-21 10:08:42 -04:00
Robert Plummer
aca274198d feat: Added dynamicOutput && dynamicArguments as official settings
fix: Some documentation was out of date with the new features, so fixed
2019-05-20 18:54:12 -04:00
Robert Plummer
e3aded43b1 feat: Allow for pixel flipping
fix: Move the flipPixels method to utilities, for reuse
fix: Invert pixel orientation
fix: Add text for issue #422
2019-05-18 17:25:47 -04:00
Robert Plummer
2b45882c58 feat: Raw output
feat: Consolidate subKernels rendering code as part of the renderStrategy
fix: remove tabs, replace with spaces
fix: make FunctionBuilder.fromKernel typing static
fix: Add missing FunctionBuilder.getPrototypeString definition
fix: Move building logic to kernelRunShortcut as well as exec method
2019-05-17 18:42:35 -04:00
Robert Plummer
2b25c75d70 feat: Dynamic recompiling 2019-05-16 21:39:01 -04:00
Robert Plummer
554719b6e6 feat: Dynamically compiled kernels, with odd bleeding bud still
fix: Removed a couple old functions no longer used

Was a good resting point to debug.
2019-05-13 15:02:32 -04:00
Robert Plummer
0735a56f86 fix: Define uploadValue in constructor, and reuse
fix: toString handling, greatly simplified
fix: Upgrade tests for toString
fix: Add boolean to typeings
fix: Move gl-kernel.js to new location
feat: Add strictIntegers as option for Kernel and docs
2019-05-12 14:36:57 -04:00
Robert Plummer
b9f7d7bff0 fix: Move varWarn to and unit test that all FunctionNode's use it
fix: Test that getExtension is set to be able to use on TravisCI
fix: Remove wraparound, is no longer being used anywhere
fix: add getMemoryOptimizedPackedTextureSize to string kernel
fix: Remove console.log() usage
fix: Move addFunction functionality into new utils method `functionToIFunction`
fix: Fix mergeSettings to use `functions` settings and use `functionToIFunction`
fix: Remove the spread operator for now, for compatibility with safari
fix: Add typings for `setFunctions`
fix; Failing unit tests for sarafi
feat: Add CONTRIBUTING.md
feat: Add ISSUE_TEMPLATE.md
fix: Remove typescript from dependencies
fix: Document, document, document
fix: Bump version and build
2019-04-23 22:03:14 -04:00
Robert Plummer
00ee2ba982 feat: Refactor dimensional values and expose the bitRatio all the way to the function node
fix: Added test suite for arrays and inputs for webgl and webgl2
fix: Rename "floatOutput" feature to "precision".  Values can be "unsigned" or "single"
fix: Add input and Input to typings
fix: Use Int32Array for input.size
2019-04-20 09:59:49 -04:00
Robert Plummer
e778dc1519 fix: Eliminate need for using decode inside fragment shader
fix: Auto float handling
fix: this.texSize from early setting in validateSettings
fix: Add compiledFragmentShader and compiledVertexShader as props in kernel
feat: Add setOptimizeFloatMemory in kernel.js
fix: Add some typings
fix: Simplify how dimToTexSize gets dimensions
fix: Simplify createKernelMap tests
fix: Add utils tests
fix: Simplify issue 267 tests
fix: Alter issue 279 tests, and add TODO

1 Broken test left
2019-04-16 08:37:57 -04:00
Robert Plummer
58d77be9a7 fix: Remove erroneous channel and index division in getImage2D of webgl1
fix: Remove some debugging code
fix: Build and beautify everything (was off whilst doing some mad debugging earlier)
2019-04-12 14:09:05 -04:00
Robert Plummer
ee7baf70ba fix: Array handling (2,3,4) for webgl2 & webgl1 (headlessgl next)
fix: Float handling
feat: added `optimizeFloatMemory` to better exemplify what it does and replace `floatTextures` and its voodoo in webgl2
feat: end to end strong type detection
Note: added a bunch of TODO's this is just a good resting point.
2019-04-11 19:41:58 -04:00
Robert Plummer
1e60084020 feat: Full type inference (this is a HUGE feature)
feat: Add mandelbulb.html example
fix: Bump and build
2019-03-19 19:51:03 -04:00
Robert Plummer
9540340751 fix: Fix floatTextures support test
fix: Rename `WebGLKernel._formatArrayTransfer()` to `WebGLKernel.formatArrayTransfer()` because it is used in more than just this class
fix: Add `HeadlessGL.features.isTextureFloat`
fix: Add `HeadlessGL.getIsTextureFloat()`
fix: Add operation to delete `HeadlessGLKernel.extensions.WEBGL_draw_buffers`
fix: Remove `assert.throws` from Issue #91 test
fix: Add "features/float-output-textures.js" back to all.html test
fix: Bump version number and build
2019-03-19 08:43:58 -04:00
Robert Plummer
5f59354219 fix: this.thread, and this.output type handling, and block statements 2019-02-18 10:55:30 -05:00
Robert Plummer
22046269b6 feat: Added "dev" mode, so we can easily debug
refactored webgl for statements, to be more performant
added unit tests for "for" statements
will do the same for cpu for statements next
fixed some issues in typings file
exposed FunctionNode from standard importer
2019-02-10 12:17:31 -05:00
Robert Plummer
cf5a358422 fix: Got 100% unit tests in chrome, ff, safari, and node. 2019-02-07 19:08:19 -05:00
Robert Plummer
630bd94ead feat: Completely new type checking system, and refined state management 2019-02-04 19:46:55 -05:00
Robert Plummer
82e4966551 feat: v2.0.0rc1
Cleanup and add random support (seeded by... Math.random()!)
I went through api and cleaned it up considerably
2019-01-31 18:24:25 -05:00
Robert Plummer
8bf362ad9a feat: No failing tests locally, only skipping and passing
Also:
feat: Typescript typings
feat: api cleanup and exports
feat: removal of building for node, only browser
2019-01-29 21:41:21 -05:00