Open FluorescentHallucinogen opened 7 months ago
I've also been thinking about WGSL (WebGPU Shading Language) (https://google.github.io/tour-of-wgsl/).
As far as I understand from the https://developer.chrome.com/articles/gpu-compute/ and https://surma.dev/things/webgpu/index.html blog posts, WebGPU is designed for general-purpose computing on GPU. So it will be easier to rewrite the algorithm to WGSL than to GLSL. Also, WebGPU seems easier to debug (see https://chrome.google.com/webstore/detail/webgpu-devtools/ckabpgjkjmbkfmichbbgcgbelkbbpopi).
But WebGL support in browsers is much better than WebGPU.
I see that GLSL support coming soon (https://github.com/material-foundation/material-color-utilities#library-availability).
Two questions:
Any ETA?
Would it be (and is it even technically possible) to rewrite the quantizer as a shader in GLSL to do all math on GPU instead of CPU?
I mean to pass from JS an array of pixel colors to the GLSL shader and take back to JS an array of dominant colors.
If so, this could be used in a TypeScript version of the library for web app. Browsers now have pretty good WebGL support. I expect a significant increase in performance for (very) large images.
2.1. Is Celebi's algorithm optimized for GPU i.e. can take advantage of the parallel processing on a large number of GPU cores?