4 ms·
I think that about sums it up. The beauty of mesh shaders is that they don’t define how your input interface looks like, as long as you produce something in the
by ribit 4y ago
I think that about sums it up. The beauty of mesh shaders is that they don’t define how your input interface looks like, as long as you produce something in the end that the rasterizer can consume. Mesh shaders define two levels of compute shaders: one corresponds to an abstract “object” (which can be really anything you want) and one that corresponds to a more concrete “mesh” (a set of to be rasterizer primitives). The “object shader” can dynamically decide how many “meshes” will be generated and spawn the appropriate amount of “mesh shaders”. This gives you a level of indirection to do pretty much anything you want. It’s a generalization of the traditional rendering pipeline that supports user-defined types and structures and makes a lot of things simpler and more logical. Also a step to a more unified GPU programming model that actually exposes the massively parallel nature of the GPU hardware.
I am currently experimenting with polygon triangulation in the mesh shaders on Apple platforms and I’m rather happy with the results. The performance is excellent and the client code is radically simplified.