Nanite IS stepping around the fixed function pipeline because the triangles they draw are on the order or less of the size of a pixel. They only allow the fixed function pipeline to render the triangles when they are big (ie. almost never).
Current GPU memory models don't give you enough to guarantee progress. Most models seem to do that well enough, but there are pathological cases that aren't that uncommon.
Both of these are backed up from Nanite presentations. So, if you think those are false, know that you are disagreeing with Unreal who has put it on the record.
GPUs don't have MMUs. They have memory interfaces, but they don't have the parts that allow you to protect memory, handle system vs user protections, and manage load. This is why things like Shadertoy can bring your computer to a grinding halt or even cause you to crash.
About the only thing "false" was the fact that the graphics cards don't have a defined memory model. As was pointed out, Vulkan 1.3 does define a memory model. However, the manufacturers have yet to catch up nor are they compliant with that memory model.
Perchance you would like to revise your statement?
> I really wish that everybody would finally admit that the "fixed function pipeline" is dead and shift the development work to making the use of the GPU compute units mainstream. > Unreal Engine 5 ("nanite") shows that the high end game engines are already stepping around a lot of the fixed function pipeline. It's just going to get worse.
Nanite does everything you stated here and thereafter in your reply, but Nanite does not speak for high-end game engines from other companies, which do use ffp units like the rasterizer. Yes, those guys are also moving quite a bit of stuff to compute as I already stated, but to say that the ffp is dead at present is overblown. Nanite does everything you mentioned and for the reasons you mentioned; what I pointed out was not true was the generalization of that to other modern and respectable engines.
> GPUs don't yet have a well-defined memory model (to be fair, even CPUs are still a bit sketchy in places)--so you can't guarantee atomicity or progress or fairness.
This we already cleared up.
> GPUs don't have the equivalent of an MMU--so they can't be partitioned or protected. etc.
GPUs do have MMUs, like others have stated, that handle things like virtual address translation. See, for example: https://learn.microsoft.com/en-us/windows-hardware/drivers/d... Yes, you are probably right that they don't have complete isolation -- has anybody developed side-channel attacks for this yet? -- but that doesn't mean they lack an MMU.
Also, the part about handling load is a bit nuanced. Drivers typically put timeouts on calls, for example, that'll kill the application when it induces a hang (or something long enough to be flagged as a hang.) I've run into this on mobile devices in particular. So yeah, Shadertoy does grind down low-end devices and the result is not exactly pretty, but that does not mean there are absolutely no load protections in place (there are).
> The problem is that switching to a "compute" model and making that work well would commodify the GPU--and that's the last thing that AMD and NVIDIA want.
Speculation.