Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
1c90d19
Initial commit
inner-daemons Aug 14, 2025
8c3e550
Other initial changes
inner-daemons Aug 14, 2025
85bbc5a
Updated shader snapshots
inner-daemons Aug 14, 2025
ccf8467
Added new HLSL limitation
inner-daemons Aug 17, 2025
e55c02f
Moved error to global variable error
inner-daemons Aug 17, 2025
f3a31a4
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Aug 17, 2025
0f6da75
Added docs to per_primitive
inner-daemons Aug 20, 2025
3017214
Added a little bit more docs here and there in IR
inner-daemons Aug 20, 2025
19b55b5
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Aug 20, 2025
198437b
Adding validation to ensure that task shaders have a task payload
inner-daemons Aug 20, 2025
64000e4
Updated spec to reflect the change to payload variables
inner-daemons Aug 20, 2025
0575e98
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Aug 22, 2025
b572ec7
Updated the mesh shading spec because it was goofy
inner-daemons Aug 24, 2025
34d0411
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Aug 24, 2025
02664e4
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Aug 24, 2025
7bec4dd
some doc tweaks
jimblandy Aug 25, 2025
2fcb853
Tried to clarify docs a little
inner-daemons Aug 25, 2025
3009b5a
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Aug 25, 2025
8bfe106
Tried to update spec
inner-daemons Aug 25, 2025
6ccaeec
Removed a warning
inner-daemons Aug 25, 2025
5b7ba11
Addressed comment about docs mistake
inner-daemons Aug 25, 2025
29c6972
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Aug 30, 2025
63fa8b5
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Sep 1, 2025
26c8681
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Sep 4, 2025
d9cac9c
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Sep 5, 2025
c112cb4
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Sep 8, 2025
e1ff67d
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Sep 11, 2025
64644f7
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Sep 15, 2025
739948b
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Sep 22, 2025
7ca25a4
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Sep 24, 2025
09ddbec
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Oct 1, 2025
2d6a647
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Oct 2, 2025
4657646
Review in progress
jimblandy Sep 2, 2025
41b654c
mesh_shading.md: more tweaks
jimblandy Oct 2, 2025
33ed0a6
Ran cargo fmt
inner-daemons Oct 2, 2025
53ecb39
Small tweaks
inner-daemons Oct 2, 2025
0ead329
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Oct 11, 2025
07bfb1f
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Oct 13, 2025
ba51fa2
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Oct 15, 2025
c4e3eef
[naga] Move definition of `ShaderStage::compute_like` to `proc`.
jimblandy Oct 15, 2025
8c9287d
Replace TODO comment with followup issue.
jimblandy Oct 16, 2025
8f04d4f
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Oct 16, 2025
3a8399d
Update analyzer.rs
inner-daemons Oct 16, 2025
879b79b
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Oct 16, 2025
d92fe67
Removed stuff in accordance with Jim's recommendation
inner-daemons Oct 16, 2025
2dc4090
minor changes for readability
jimblandy Oct 16, 2025
1ec734b
Pull mesh shader output type validation out into its own function.
jimblandy Oct 16, 2025
9ef0ed5
doc fixes
jimblandy Oct 16, 2025
1173b0f
remove duplicated task payload validation
jimblandy Oct 16, 2025
258e7e6
Quick little changes
inner-daemons Oct 16, 2025
8885c5d
Another quick fix
inner-daemons Oct 16, 2025
1cc3e85
Quick fix
inner-daemons Oct 16, 2025
3be2c25
Removed unnecessary TODO statement
inner-daemons Oct 16, 2025
21d3cc7
A
inner-daemons Oct 16, 2025
d5c11d3
Tried to be more expressive
inner-daemons Oct 16, 2025
82ec9c2
Merge branch 'trunk' into mesh-shading/naga-ir
inner-daemons Oct 16, 2025
e7faff6
Made functions only work in mesh shader entry points
inner-daemons Oct 17, 2025
385535a
Various validation fix attempts
inner-daemons Oct 17, 2025
c3f9acd
Undid capabilities resize
inner-daemons Oct 17, 2025
d15ba19
WGSL PR is up :)
inner-daemons Oct 17, 2025
f14e0f0
Update naga/src/ir/mod.rs
inner-daemons Oct 17, 2025
7e12d30
Update naga/src/front/wgsl/error.rs
inner-daemons Oct 17, 2025
ce517bb
Update naga/src/ir/mod.rs
inner-daemons Oct 17, 2025
083959e
Other Erich suggestion
inner-daemons Oct 17, 2025
16aa7d0
Updated docs & validation for some builtins
inner-daemons Oct 17, 2025
76bfca0
Added some docs & removed contentious "// TODO"
inner-daemons Oct 17, 2025
e68d0d2
Merge branch 'trunk' into mesh-shading/wgsl-parse
inner-daemons Oct 22, 2025
0fd0fdd
Merge remote-tracking branch 'upstream/trunk' into mesh-shading/wgsl-…
inner-daemons Oct 30, 2025
e100034
Fixed bad validation, formatted mesh shader wgsl
inner-daemons Oct 30, 2025
edea07e
Rewrote the IR and parser significantly
inner-daemons Oct 31, 2025
3905ae8
Improved validation slightly, remvoed obselete crap, fixed bug in com…
inner-daemons Oct 31, 2025
8f6332d
Merge remote-tracking branch 'upstream/trunk' into mesh-shading/wgsl-…
inner-daemons Oct 31, 2025
64798dd
Added changelog entry
inner-daemons Nov 1, 2025
c8dccd3
Merge branch 'trunk' into mesh-shading/wgsl-parse
inner-daemons Nov 3, 2025
bd923cd
Made parser respect enable extension
inner-daemons Nov 3, 2025
d95070a
Updated mesh shader spec
inner-daemons Nov 3, 2025
ace7e17
Cleaned up the mesh shader analyzer function
inner-daemons Nov 3, 2025
f55dbd9
Merge branch 'trunk' into mesh-shading/wgsl-parse
inner-daemons Nov 5, 2025
bd965a7
Merge branch 'trunk' into mesh-shading/wgsl-parse
inner-daemons Nov 6, 2025
c0278f3
Updated changelog
inner-daemons Nov 7, 2025
ab69a74
Merge branch 'trunk' into mesh-shading/wgsl-parse
inner-daemons Nov 7, 2025
e7dc9e5
Updated validation from spv-write
inner-daemons Nov 7, 2025
592ac16
Slight tweaks
inner-daemons Nov 7, 2025
4398171
Added capabilitiy thing blah blah blah
inner-daemons Nov 7, 2025
1f071a6
Fixed compaction & clean stuff up
inner-daemons Nov 8, 2025
7f744cf
Fixed compaction and such pt 2
inner-daemons Nov 8, 2025
9978847
Merge branch 'trunk' into mesh-shading/wgsl-parse
inner-daemons Nov 8, 2025
1d13726
Paved the way for primitive-index stuff
inner-daemons Nov 10, 2025
25afe48
Little bit of cleanup
inner-daemons Nov 10, 2025
453a150
Added new features/capabilities for point primitives and added snapsh…
inner-daemons Nov 10, 2025
2b96eb2
Updated spec to rename something
inner-daemons Nov 10, 2025
235a896
Updated some limits stuff
inner-daemons Nov 10, 2025
c62c023
Made some improvements
inner-daemons Nov 10, 2025
57c3132
Fixed doctests & webgpu stuff
inner-daemons Nov 10, 2025
f888b74
Fixed experimental features stuff
inner-daemons Nov 10, 2025
0407d6e
Merge branch 'mesh-shading/wgsl-parse' into mesh-shading/new-limits
inner-daemons Nov 10, 2025
3439a8b
A little more scaffolding
inner-daemons Nov 10, 2025
9c500ec
Added some initial validation
inner-daemons Nov 10, 2025
555fa2a
Added per primitive validation
inner-daemons Nov 10, 2025
a63a1b3
Improved per primitive validation
inner-daemons Nov 10, 2025
a952b34
Added some more validation
inner-daemons Nov 10, 2025
462765e
Fixed primitive index validation
inner-daemons Nov 10, 2025
703bac7
Updated the spec
inner-daemons Nov 10, 2025
0beb1a0
Updated comments on some limits
inner-daemons Nov 10, 2025
4cf07c6
Merge branch 'trunk' into mesh-shading/new-limits
inner-daemons Nov 10, 2025
dab8b09
Made some fixes
inner-daemons Nov 10, 2025
509bfdb
Merge branch 'mesh-shading/wgsl-parse' into mesh-shading/new-limits
inner-daemons Nov 10, 2025
6df4efa
Fixed new validation rule for task payload size
inner-daemons Nov 10, 2025
c52a867
Merge branch 'mesh-shading/wgsl-parse' into mesh-shading/new-limits
inner-daemons Nov 10, 2025
168111b
Merge remote-tracking branch 'upstream/trunk' into mesh-shading/new-l…
inner-daemons Nov 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions wgpu-core/src/command/bundle.rs
Original file line number Diff line number Diff line change
Expand Up @@ -816,8 +816,8 @@ fn draw_mesh_tasks(
let pipeline = state.pipeline()?;
let used_bind_groups = pipeline.used_bind_groups;

let groups_size_limit = state.device.limits.max_task_workgroups_per_dimension;
let max_groups = state.device.limits.max_task_workgroup_total_count;
let groups_size_limit = state.device.limits.max_task_mesh_workgroups_per_dimension;
let max_groups = state.device.limits.max_task_mesh_workgroup_total_count;
if group_count_x > groups_size_limit
|| group_count_y > groups_size_limit
|| group_count_z > groups_size_limit
Expand Down
9 changes: 7 additions & 2 deletions wgpu-core/src/command/render.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2709,8 +2709,13 @@ fn draw_mesh_tasks(
.base
.device
.limits
.max_task_workgroups_per_dimension;
let max_groups = state.pass.base.device.limits.max_task_workgroup_total_count;
.max_task_mesh_workgroups_per_dimension;
let max_groups = state
.pass
.base
.device
.limits
.max_task_mesh_workgroup_total_count;
if group_count_x > groups_size_limit
|| group_count_y > groups_size_limit
|| group_count_z > groups_size_limit
Expand Down
30 changes: 14 additions & 16 deletions wgpu-core/src/device/resource.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3972,7 +3972,7 @@ impl Device {
self.require_features(wgt::Features::VERTEX_ATTRIBUTE_64BIT)?;
}

let previous = io.insert(
let previous = io.varyings.insert(
attribute.shader_location,
validation::InterfaceVar::vertex_attribute(attribute.format),
);
Expand Down Expand Up @@ -4363,20 +4363,18 @@ impl Device {
)
.map_err(stage_err)?;

if validated_stages == wgt::ShaderStages::VERTEX {
if let Some(ref interface) = shader_module.interface {
io = interface
.check_stage(
&mut binding_layout_source,
&mut shader_binding_sizes,
&fragment_entry_point_name,
stage,
io,
desc.depth_stencil.as_ref().map(|d| d.depth_compare),
)
.map_err(stage_err)?;
validated_stages |= stage;
}
if let Some(ref interface) = shader_module.interface {
io = interface
.check_stage(
&mut binding_layout_source,
&mut shader_binding_sizes,
&fragment_entry_point_name,
stage,
io,
desc.depth_stencil.as_ref().map(|d| d.depth_compare),
)
.map_err(stage_err)?;
validated_stages |= stage;
}

if let Some(ref interface) = shader_module.interface {
Expand Down Expand Up @@ -4412,7 +4410,7 @@ impl Device {
}

if validated_stages.contains(wgt::ShaderStages::FRAGMENT) {
for (i, output) in io.iter() {
for (i, output) in io.varyings.iter() {
match color_targets.get(*i as usize) {
Some(Some(state)) => {
validation::check_texture_format(state.format, &output.ty).map_err(
Expand Down
Loading