shader-slang / slang

Making it easier to work with shaders
MIT License
1.78k stars 159 forks source link

Metal Meshshading support #3995

Open Dynamitos opened 2 months ago

Dynamitos commented 2 months ago

Basic metal support has already been added with #3967, it could be extended to support amplification(object) and mesh shaders. This would be immensely useful for the project I am working on right now, so I would be willing to try myself, although I have no experience with compiler programming, and worry if my contribution would even be helpful.

csyonghe commented 2 months ago

Hi @Dynamitos, as you have seen we have began the work to implement the Metal backend. For now our plan is to get to vertex+fragment+compute shader supported first, and make sure most intrinsics are supported, and then move on to mesh shaders and ray tracing. We welcome contributions at anytime. We are also happy to walkthrough the necessary parts of the codebase with you if you would like to help.

zmarlon commented 2 months ago

This looks amazing!

Dynamitos commented 1 month ago

@csyonghe, I finally had some time to start working on this, starting with something basic to get a feel for the codebase as a whole, though looking at the spec for mesh shading this will be quite challenging. Perhaps you could find some time to look over what I have so far or give some tips on how the mesh output type could be implemented