Graphical option with ImageData doesn't work in WebWorker
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- computer-graphics
Direzione di ricerca
Non vengono indicati file o test del repository. Inizia riproducendo l'esempio createKernel fornito con ImageData in un WebWorker su Chrome o Firefox, quindi traccia la compilazione dello shader grafico e la gestione dell'input. Il lavoro è completato quando la modalità grafica accetta l'input ImageData in un WebWorker senza gli errori di shader o di espressione binaria segnalati, mentre la modalità CPU continua a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Issue
Graphical option with ImageData doesn't work in WebWorker but when I use {mode: 'cpu'} it works.
Env
Google Chrome
FireFox
Windows 11 22H2
i7 8565U
UHD Graphics 620
Windows 11 22H2
i7 1255U
Intel Iris Xe Graphics
Code
// doesn't work
const gpu = new GPU();
const graphicalTest = gpu.createKernel(function(data) {
const [r, g, b, a] = data[this.thread.y][this.thread.x];
this.color(r, g, b, a);
}, {
output: [width, height],
graphical: true,
});
graphicalTest(imageData/* ImageData Object */);
const newImageData = new ImageData(Uint8ClampedArray.from(graphicalTest.getPixels()), this.#width, this.#height);
// > gpu-browser.min.js:28 Uncaught (in promise) Error: Error compiling fragment shader: ERROR: 0:465: 'color' : no matching overloaded function found
// works
const gpu = new GPU({mode: 'cpu'});
const graphicalTest = gpu.createKernel(function(data) {
const [r, g, b, a] = data[this.thread.y][this.thread.x];
this.color(r, g, b, a);
}, {
output: [width, height],
graphical: true,
});
graphicalTest(imageData/* ImageData Object */);
const newImageData = new ImageData(Uint8ClampedArray.from(graphicalTest.getPixels()), this.#width, this.#height);
// doesn't work
const gpu = new GPU();
const graphicalTest = gpu.createKernel(function(data) {
const [r, g, b, a] = data[this.thread.y][this.thread.x];
const sum = r + g + b + a;
this.color(r, g, b, a);
}, {
output: [width, height],
graphical: true,
});
graphicalTest(imageData/* ImageData Object */);
const newImageData = new ImageData(Uint8ClampedArray.from(graphicalTest.getPixels()), this.#width, this.#height);
// > Uncaught (in promise) Error: Unhandled binary expression between Number & Array(4) on line 2, position 3:]
// works
const gpu = new GPU({mode: 'cpu'});
const graphicalTest = gpu.createKernel(function(data) {
const [r, g, b, a] = data[this.thread.y][this.thread.x];
const sum = r + g + b + a;
this.color(r, g, b, a);
}, {
output: [width, height],
graphical: true,
});
graphicalTest(imageData/* ImageData Object */);
const newImageData = new ImageData(Uint8ClampedArray.from(graphicalTest.getPixels()), this.#width, this.#height);
- Lingua principale
- JavaScript
- Stelle
- 15.5k
- Fork
- 663
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di gpujs/gpu.js
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
-
WebGL backend silently returns all zeros for long-running kernels (no GL error, no context loss)Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Bitwise result not correctAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
Tutte le issue di gpujs/gpu.js
Issue simili
-
status: waiting triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
freeCodeCamp/freeCodeCamp#70412 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Jason-Vaughan/TangleClaw#1884 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue web
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/TypeScript#64453 ·
I maintainer di solito rispondono entro 1 giorno
-
self-driving
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno