Direct3D Mesh Shaders

What's memory usage like when using mesh shaders compared to fancy texture implementations to fake geometric detail?

I know we don't have any talks etc on what has been learned from implementing mesh shaders, so hopefully they'll do one.
 
What's memory usage like when using mesh shaders compared to fancy texture implementations to fake geometric detail?

I know we don't have any talks etc on what has been learned from implementing mesh shaders, so hopefully they'll do one.

I think this vid is quite new on the subject

Transform your geometry with Metal mesh shaders - WWDC22 - Videos - Apple Developer

"
Imagine that you want to generate some procedural geometry on the GPU.
For example, you've decided to add procedural fur to this bunny.
Traditionally, in order to generate procedural geometry, you would also need to have a compute command encoder that would perform a compute kernel dispatch.
The compute kernel would take the original mesh as an input, generate procedural geometry and output it back into device memory.
You would then use a render command encoder to execute a draw call that would take procedural geometry as an input and produce a final image .
Not only does this approach require two command encoders, it also requires you to allocate additional memory to store the procedural geometry.
In case of indirect draw calls or high expansion factors, the amount of this memory can be quite high and hard to predict.
There is also a barrier between the two encoders, serializing work across the GPU. Metal mesh shaders addresses all of those issues.
Mesh shaders is a new geometry pipeline that replaces the vertex shader stage with two new programmable stages
-- the object shader stage and the mesh shader stage.
In this example, the object shader would take geometry as an input , process it and output some data which we call "payload" to the mesh shader. It is up to you to decide what this data is. The mesh shader, in turn, would use this data to generate procedural geometry.
This procedural geometry would only exist inside the draw call, so it would not require you to allocate any device memory. It would be pipelined straight to the rasterizer and then to a fragment shader that would produce the final image.

"


Screenshot 2023-10-23 at 15.58.00.png

Screenshot 2023-10-23 at 15.58.11.png
 
AMD Fixed the Mesh Shader on N31. Can sombody test it maybe compare it to 4090?



mstest.png

Edit: For the fair comparison, I've removed the Radeon results which I randomly selected from the web.
 
Last edited:
I wonder how an "unsupported" h/w would run something which it can't unless there is an effort put into supporting it...

its in the vid i think older HW will struggle.

"Disadvantages:
1. Unsupported hardware
- Imitate effect with Vertex Shaders
- Hard to get performance without new GPU
"
 
its in the vid i think older HW will struggle.

"Disadvantages:
1. Unsupported hardware
- Imitate effect with Vertex Shaders
- Hard to get performance without new GPU
"
Which again imply that they are supporting the "unsupported" h/w for some reason despite it not being capable to run at good enough performance.

I'm just wondering if there is really any benefit in spending resources on such support if all you will get out of it is a bunch of old h/w owners unhappy with the performance.
 
Which again imply that they are supporting the "unsupported" h/w for some reason despite it not being capable to run at good enough performance.

I'm just wondering if there is really any benefit in spending resources on such support if all you will get out of it is a bunch of old h/w owners unhappy with the performance.

The reason would be purely economical i guess, lets say only 30% of the gamers have GPU capable of doing mesh shaders. You can go Remedy way and say sorry, and never see this piece of cake or try to do something and grab some coins.
But yeah depends on how bad end result will be.
 
Hopefully someone will bench a Pascal GPU. Curious if the drop off is as severe as for RDNA 1.


Have my answer. 5700xt 65-85% faster.
 
Last edited:
Hopefully someone will bench a Pascal GPU. Curious if the drop off is as severe as for RDNA 1.


Have my answer. 5700xt 65-85% faster.
RDNA1 still benefit from the majority of optimizations done for RDNA2. Pascal obviously wasn't even considered as a target for development so such difference isn't very surprising.
Does make the point about questionable waste of resources on that support even stronger though.
 
RDNA1 still benefit from the majority of optimizations done for RDNA2. Pascal obviously wasn't even considered as a target for development so such difference isn't very surprising.
Does make the point about questionable waste of resources on that support even stronger though.
With Pascal being superior at geometry I thought it may have fared better than RDNA 1.
 
RDNA1 launched at an unfortunate time. If you want to use a GPU for a long time, don't buy one right before a new console generation. If you wait 1-2 years after the consoles have launched your card will probably last much longer.
 
Back
Top