Skip to content

Bad output with script #559

@robertleeplummerjr

Description

@robertleeplummerjr

A GIF or MEME to give some spice of the internet

What is wrong?

Very odd output when using kernels that recompile with textures.

Where does it happen?

I believe the issue is something in kernel-run-shortcut.js.

How do we replicate the issue?

const { GPU } = require('./src');
const gpu = new GPU();

const getError = gpu.createKernel(function(value) {
  return value[0] + 1;
}, { output: [1], pipeline: true });
const kernel = gpu.createKernel(function(value1, value2) {
  return value1[0] + value2[0];
}, { output: [1], pipeline: true });


let count = 10;

while (count--) {
  let sum = new Float32Array([0]);
  let error = getError([0]);
  for (let i = 0; i < 4; ++i) {
    const prevSum = sum;
    const prevError = error;
    error = getError(error);
    if (error.toArray) console.log('error', error.toArray());
    sum = kernel(sum, error);
    if (prevError.delete) prevError.delete();
    if (sum.toArray) console.log('sum', sum.toArray());
    if (prevSum.delete) prevSum.delete();
  }
}

How important is this (1-5)?

5

Expected behavior (i.e. solution)

A bit of a long list, but the value goes to 0's and 1's, where as the output (have fix locally) should be the following:

error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]
error Float32Array [ 2 ]
sum Float32Array [ 2 ]
error Float32Array [ 3 ]
sum Float32Array [ 5 ]
error Float32Array [ 4 ]
sum Float32Array [ 9 ]
error Float32Array [ 5 ]
sum Float32Array [ 14 ]

Other Comments

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions