Hacker News new | ask | show | jobs
by theschwa 1066 days ago
Can someone help me understand why a CPU based method like EDT would be used instead of a more GPU friendly method like jump fill?

It seems like you could use the sun pixel distances like he did, but then use them with jump fill, but maybe I'm missing something?

2 comments

Jump flood is multi-pass and approximate not exact. I wouldn’t assume it’s faster for small input images, which is what the article is aiming for.

Also the distance transform algorithm in the article could be implemented on a GPU using a thread per row & column rather than per pixel. (At least in CUDA - I’m not immediately certain how to do it in GLSL but I guess someone could do it.) This is not optimal, of course, but parallelizing rows is perhaps a lot better than a single-threaded loop over the image.

It is trivially done with compute shaders in two passes, one vertical, one horizontal.
Most likely compatibility is more stable across clients

GPUs aren't universally supported by browsers or available on client devices, and implementing a user-agent/telemetry based response adds overhead.

But,I believe this is being used for his Use.GPU project, which requires not just GPU support, but the latest WebGPU support.