Graphical output canvas is affected by a separate kernel
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript
- Domaine
- computer-graphics
Piste de recherche
Commencez par exécuter dans Chrome la reproduction fournie de GPU.js dans le navigateur avec WebGL2 activé, en vous concentrant sur createKernel, setGraphical, setOutput et l’interaction avec renderKernel.canvas. Comparez les dimensions du canvas après l’exécution de imgKernel avec la sortie graphique attendue de 32x32. C’est terminé lorsque le kernel d’image séparé n’affecte plus la taille du canvas rendu, qui devrait être de 32x32 et entièrement rempli par la sortie rouge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description

What is wrong?
It seems as if one kernel's output size can affect the size of a canvas created by another. This means that the canvas created by a kernel is larger than should be expected.
Where does it happen?
GPU.js running in browser in Chrome on a Mac (WebGL2 enabled)
How do we replicate the issue?
const gpu = new GPU();
const img_width = 64;
const img_height = 64;
const imgKernel = gpu
.createKernel(function (_image) {
const pixel = _image[this.thread.y][this.thread.x];
return pixel[0];
})
.setOutput([img_width, img_height]);
const renderKernel = gpu
.createKernel(function () {
this.color(1, 0, 0, 1);
})
.setGraphical(true)
.setOutput([32, 32]);
const image = document.createElement("img");
image.src = "./test.png";
image.onload = () => {
console.log("image width x height", image.naturalWidth, image.naturalHeight);
const imgOut = imgKernel(image); // This is not used just run
document.body.appendChild(renderKernel.canvas);
renderKernel();
};
The output looks like this:

You can see that the canvas is 64x64 pixels, the size of the imgKernel but the red section is 32x32 inside that which is the output of renderKernel despite the two having no relationship other than both of them are called.
How important is this (1-5)?
5 This is a pretty limiting bug if you want to use multiple kernels.
Expected behavior (i.e. solution)
Should show a 32x32 red canvas as far as I can tell.
Other Comments
Thank you for your time looking at this.
- Langage dominant
- JavaScript
- Étoiles
- 15.5k
- Forks
- 663
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de gpujs/gpu.js
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 65/100
-
WebGL backend silently returns all zeros for long-running kernels (no GL error, no context loss)Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 42/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
-
Bitwise result not correctOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
Toutes les issues de gpujs/gpu.js
Issues similaires
-
[Bug] @deck.gl/arcgis dist import resolves to unpublished @deck.gl/core source path (9.3.11, 9.4.0)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
stac-utils/stac-fields#42 ·
-
[sec-check] SVG remote-reference gate misses src attributes, link hrefs and bare-string @importOuverteagent/security hive/hosted-available-lke648397-260827-5n31 security
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Fix #3381 does not fix #3343: watch() returns the ref, not the value, so setup() never re-runsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
Les mainteneurs répondent en général sous 1 jour
-
Add: Eurosport 1 PolskaOuvertechannels:add check:passed
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 2 jours