Earlier quoted context omitted.
What is the use case for atomics in the rasterizer? I can’t figure out what the atomic operations do inside the rendering pipeline. I looked at the GitHub, but couldn’t find the place the atomic were hoped for.
With traditional hardware rasterization there are specialized hardware blocks which handle atomically updating the framebuffer to whichever sample is currently the closest to the camera, and discarding anything behind that. Nanite does software rasterization instead, and one of their insights was figuring out a practical way to cram all of the data needed for each pixel into just 64 bits (depth in the high bits and e…
UE5 Nanite in WebGPU
111–117 of 117 posts
Re: UE5 Nanite in WebGPU
#112Earlier quoted context omitted.
I'm a bit out of the GPU game but so this might be slightly wrong in some places: the issue is in small triangles because you end up paying a huge cost. GPUs ALWAYS shade in 2x2 blocks of pixels, not 1x1 pixels. So if you have a very small triangle (small as in how many pixels on the screen it covers) that covers 1 pixel you will still pay the price of a 2x2 block (4 pixels instead of 1), so you just wasted 300% of y…
> So even if you do it in software the point is that if you can get rid of that 2x2 block penalty as much as possible you could be faster than GPU doing 2x2 blocks in hardware since pixel shaders can be very expensive. Of course the obvious problem with that is if you don't have most of the screen covered in such small triangles then you're paying a large cost for nanite vs traditional means.
Re: UE5 Nanite in WebGPU
#113Re: UE5 Nanite in WebGPU
#114Earlier quoted context omitted.
A couple reasons 1. HW does 2x2 blocks of pixels always so it can have derivatives, even if you don't use them.. 2. Accessing SV_PrimitiveID is surprisingly slow on Nvidia/AMD, by writing it out in the PS you will take a huge perf hit in HW. There are ways to work around this, but they aren't trivial and differ between vendors, and you have to be aware of the issue it in the first place! I think some of the "software…
What's PS? Pixel shader? I'm guessing here.
Re: UE5 Nanite in WebGPU
#115Earlier quoted context omitted.
I appreciate that, anything in particular catch your interest?
I am most interested in speech recognition including diarization.
https://github.com/xenova/whisper-web/tree/experimental-webg...
https://huggingface.co/spaces/Xenova/whisper-speaker-diariza...
https://huggingface.co/onnx-community/pyannote-segmentation-...
Speaker diarization is quite difficult as you know, especially in loud or crowded environments, and the model is only part of the story. A lot of tooling needs to be built out for things like natural interruption, speaker memory, context-switching, etc. in order to create a believable experience.
Re: UE5 Nanite in WebGPU
#116Earlier quoted context omitted.
In a past life (2000's) I was doing some dev stuff on Ps3, trying to figure out so decent uses for Cell's mass of compute and working around RSX's limited memory bandwidth while having the luxury of Blu-ray storage to burn through. One such thing I did get a fair way into was something like Nanite - I called it compressive meshing. It is the typical case of misguided engineering hubris at work. The initial work looke…
Keep in mind, it took Epic a long time to get it sorted. I think I saw the primary creator say it took him a decade of research and work to come to the initial implementation of Nanite that shipped in Unreal.
Of course, the trajectory of GPU advancements is somewhat predictable, and settled down a little bit relative to the not-too-distant past. Perhaps some luck involved, too (:
Re: UE5 Nanite in WebGPU
#117Earlier quoted context omitted.
I am most interested in speech recognition including diarization.
I'll try to find time to write about it, but in the meantime if you just want to try something that works, Xenova published some tools and examples about two months ago which I'm sure will give you a good start. https://github.com/xenova/whisper-web/tree/experimental-webg... https://huggingface.co/spaces/Xenova/whisper-speaker-diariza... https://huggingface.co/onnx-community/pyannote-segmentation-... Speaker diarizat…