Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm pretty excited about this. Geometry shaders have been a poor fit, but mesh & task shaders seem poised to replace them and be much more performant (if also more complex conceptually).

For those unfamiliar (reorganizing a bit for clarity):

> A new, two-stage pipeline alternative supplements the classic attribute fetch, vertex, tessellation, geometry shader pipeline. This new pipeline consists of a task shader and mesh shader:

> Task shader: a programmable unit that operates in workgroups and allows each to emit (or not) mesh shader workgroups

> Mesh shader: a programmable unit that operates in workgroups and allows each to generate primitives

> [Mesh and Task] shaders bring the compute programming model to the graphics pipeline as threads are used cooperatively to generate compact meshes (meshlets) directly on the chip for consumption by the rasterizer. Applications and games dealing with high-geometric complexity benefit from the flexibility of the two-stage approach, which allows efficient culling, level-of-detail techniques as well as procedural generation.

> The mesh shader stage produces triangles for the rasterizer, but uses a cooperative thread model internally instead of using a single-thread program model, similar to compute shaders. Ahead of the mesh shader in the pipeline is the task shader. The task shader operates similarly to the control stage of tessellation, in that it is able to dynamically generate work. However, like the mesh shader, it uses a cooperative thread model and instead of having to take a patch as input and tessellation decisions as output, its input and output are user defined.

> This simplifies on-chip geometry creation compared to the previous rigid and limited tessellation and geometry shaders, where threads had to be used for specific tasks only, as shown in figure 3.

- https://developer.nvidia.com/blog/introduction-turing-mesh-s...



I'm pretty excited as well. This is another big step away from legacy hardware that implemented the OpenGL 1.0 API in the hardware. In case that sounds judgmental, it was awesome back in the 3dfx Voodoo days to have this kind of hardware.

What's really great here is that DirectX 12 (and now Vulkan too) allow the engine to access the underlying GPU hardware without this legacy baggage.

Apple Metal 3.0 will also support mesh shaders.


After a few code pages of setting everything up. :)


Nah, nobody writes raw Vulkan for every new implementation.

It'll show up somewhere and then everyone will copy/paste it. Or github copilot it - which is the same thing...


Geometry shaders in general always felt awkward with a lot of gotchas and unintuitive aspects. This, though more complex and abstract, seems a lot easier to use.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: