| 232 | } |
| 233 | |
| 234 | function onRequestFallback(args) { |
| 235 | console.warn('Falling back to CPU'); |
| 236 | const fallbackKernel = new CPUKernel(source, { |
| 237 | argumentTypes: kernelRun.argumentTypes, |
| 238 | constantTypes: kernelRun.constantTypes, |
| 239 | graphical: kernelRun.graphical, |
| 240 | loopMaxIterations: kernelRun.loopMaxIterations, |
| 241 | constants: kernelRun.constants, |
| 242 | dynamicOutput: kernelRun.dynamicOutput, |
| 243 | dynamicArgument: kernelRun.dynamicArguments, |
| 244 | output: kernelRun.output, |
| 245 | precision: kernelRun.precision, |
| 246 | pipeline: kernelRun.pipeline, |
| 247 | immutable: kernelRun.immutable, |
| 248 | optimizeFloatMemory: kernelRun.optimizeFloatMemory, |
| 249 | fixIntegerDivisionAccuracy: kernelRun.fixIntegerDivisionAccuracy, |
| 250 | functions: kernelRun.functions, |
| 251 | nativeFunctions: kernelRun.nativeFunctions, |
| 252 | injectedNative: kernelRun.injectedNative, |
| 253 | subKernels: kernelRun.subKernels, |
| 254 | strictIntegers: kernelRun.strictIntegers, |
| 255 | debug: kernelRun.debug, |
| 256 | }); |
| 257 | fallbackKernel.build.apply(fallbackKernel, args); |
| 258 | const result = fallbackKernel.run.apply(fallbackKernel, args); |
| 259 | kernelRun.replaceKernel(fallbackKernel); |
| 260 | return result; |
| 261 | } |
| 262 | |
| 263 | /** |
| 264 | * |