-
Notifications
You must be signed in to change notification settings - Fork 1k
Mesh Shaders Tracking Issue #7197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@cwfitzgerald |
Sounds fine - one thing to keep in mind that we want the IR to be compatible enough with how SPIR-V does stuff, such that |
@cwfitzgerald Thanks for the response. I'll try to keep a list of things that might be hard to implement in certain environments. |
@cwfitzgerald Should we wait for MVP before creating a |
10000% - We can add the feature to As a separate PR, it also would be good to add the spec as you laid out in the last issue into the repo under docs/specs and linked in the README (you can also look to how RT did this). |
@cwfitzgerald What's the guidance on creating tests that require spirv-passthrough? Should I just include the spirv binaries, or some assembly to go along with them, or the original source code? On an unrelated note, currently I am going with a unified Thanks! |
@cwfitzgerald More questions! No rush to answer of course. But I worry that if we extend the A similar point is that only one payload is allowed per entry point, so this must also be cleverly determined. I can't really think of any desirable workarounds for this, since generics are pretty much out of the question for now. Like I said, not a super huge issue, no rush for responses, I haven't even come up with a spec yet much less started implementing anything for |
Update for anyone following at home: there is only one PR until full support + testing + examples in wgpu. I will have a break in roughly a week(the week of March 24th), I expect this PR to be mostly completed by that point(by that I mean the PR will open and the remaining issues will be from reviews. It may still take longer to merge depending on wgpu maintenance). Currently the only issues that need to be resolved are with limits, and validation relating to them. So, #7345 will be the PR to watch for now. After that, the plan for naga is roughly
In particular, I also plan on getting a spec created by or during my break, as well as starting work on the core naga changes. |
I wouldn't worry too much about this, there are already various static-use rules within wgsl that need to be minded. Helper functions writing to payloads is an interesting conundrum. I don't have a great answer offhand. |
Should replace #3018.
Progress
Spec: todo, currently based on this comment.
Current open PR(s)
#7345
naga
wgpu-hal
can stop pretending they are compute shaders - Add mesh shader stages to wgt::ShaderStages and naga::ShaderStage #7292wgpu-hal
backendsOther
wgpu
API - Add mesh shading api to wgpu & wgpu-core #7345wgpu-core
pipeline validation - Add mesh shading api to wgpu & wgpu-core #7345 (?)Features
Current Priorities
wgpu-hal
- very simple - Add multiview mesh shaders to wgpu-hal #7278wgpu-hal
completeness(current code pretends they are compute shaders) - Add mesh shader stages to wgt::ShaderStages and naga::ShaderStage #7292wgpu
API - blocking many things - Add mesh shading api to wgpu & wgpu-core #7345wgpu
- Add mesh shading api to wgpu & wgpu-core #7345wgpu
implementationwgpu
implementationwgpu
implementationwgpu-hal
- desiredIssues to work out
API differences
Task payload handling
taskPayloadSharedEXT
storage class per compilation unit(or none). This is then automatically passed to the entry point.TaskPayloadWorkgroupEXT
storage class. This is then optionally passed as an argument toOpEmitMeshTasksEXT
. For mesh shaders the payload variable is inferred.in payload MeshPayloadStruct MeshPayload
in function signature.groupshared payload_t MeshPayload
is taken as an argument toDispatchMesh
in task shaders.object_data Payload& outPayload [[payload]]
in the function parameters. Mesh shaders read them withobject_data const Payload& payload [[payload]]
.Current proposed method: in WGSL, an
@payload(global_var)
attribute for entry points. Potential drawbacks:The text was updated successfully, but these errors were encountered: