Skip to content
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

Subgroup Operations #4190

Closed
wants to merge 53 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
14f6be2
subgroup: Implement subgroupBallot for wgsl-in, wgsl-out, spv-out, hl…
exrook Sep 30, 2023
e969f09
subgroup: subgroupBallot metal out
exrook Sep 30, 2023
05feb88
subgroup: require GroupNonUnifomBallot capability
exrook Sep 30, 2023
2ff8809
subgroup: Add subgroup invocation id and subgroup size builtins
exrook Oct 1, 2023
8cbf423
subgroup: SubgroupInvocationId is only valid in compute stages
exrook Oct 2, 2023
9430603
subgroup: expierment with subgroupBarrier() based on OpControlbarrier
exrook Oct 3, 2023
44f6929
subgroup: add statement for rest of subgroup ops
exrook Oct 14, 2023
b5be66e
subgroup: fix doc error on SubgroupBroadcast
exrook Oct 5, 2023
a277ec5
subgroup: wgsl-in and spv-out for subgroup operations
exrook Oct 5, 2023
dd49f99
subgroup: add optional predicate for subgroupBallot
exrook Oct 5, 2023
18ceb01
Renames SubgroupBroadcast => SubgroupGather and BroadcastMode => Gath…
Lichtso Oct 11, 2023
7c911ba
General fixes.
Lichtso Oct 14, 2023
f5c4ad7
Adds BuiltIn::NumSubgroups, BuiltIn::SubgroupId.
Lichtso Oct 14, 2023
f931a47
Adds GatherMode::Shuffle, GatherMode::ShuffleDown, GatherMode::Shuffl…
Lichtso Oct 14, 2023
d8e17e7
Implements all frontends and backends.
Lichtso Oct 14, 2023
43133d0
Adjusts metal backend test_stack_size().
Lichtso Oct 14, 2023
275a5a5
Adds test and snapshots.
Lichtso Oct 20, 2023
f04b71d
subgroup: fix spv-in
exrook Oct 21, 2023
7a5bf0f
subgroup: Add 0 arg subgroupBallot to tests and fix wgsl-out whitespace
exrook Oct 21, 2023
2aaf0a0
subgroup: Add spv-in test
exrook Oct 21, 2023
fb1e3f9
subgroup: resolve fixmes & fix typo
exrook Oct 21, 2023
209225a
subgroup: Add subgroup capability
exrook Oct 21, 2023
77d33b9
subgroup: Treat subgroup operation results as non-uniform
exrook Oct 18, 2023
1e51650
subgroup: refactor wgsl subgroup gather parsing
exrook Oct 21, 2023
68fc4d5
subgroup: doc comments for subgroup `Statement`s and `Expression`s
exrook Oct 21, 2023
91c569d
subgroup: add validation for each subgroup operation type
exrook Oct 24, 2023
6f6f789
Add feature for subgroup operations in fragment and compute shaders
exrook Oct 14, 2023
7d2e273
Adds feature detection for Vulkan.
exrook Sep 30, 2023
55e21e8
Adds feature detection for Metal.
Lichtso Oct 11, 2023
2e44fb1
Adds feature detection for DirectX 12.
Lichtso Oct 14, 2023
e186d0e
Adds subgroup_operations tests.
Lichtso Oct 11, 2023
9c12f08
Pass subgroup capability to naga
exrook Oct 22, 2023
358c2a7
Separate subgroup feature into one flag per shader stage
exrook Oct 24, 2023
9afec48
Merge branch 'trunk' into subgroup_feature
cwfitzgerald Oct 26, 2023
edd11d1
Merge branch 'trunk' into subgroup_feature
cwfitzgerald Oct 26, 2023
c821cc9
Merge branch 'trunk' into subgroup_feature
cwfitzgerald Oct 28, 2023
ebaf08d
Fix compiles
cwfitzgerald Oct 28, 2023
afaf441
subgroups: DX12 doesn't support subgroup ops in vertex stage
exrook Nov 1, 2023
fd14a43
Merge branch 'trunk' into subgroup_feature
exrook Nov 1, 2023
7e0060e
subgroup: fix hlsl subgroup_id
exrook Nov 5, 2023
d822524
subgroups: update naga snapshots
exrook Nov 5, 2023
a86a130
Merge branch 'trunk' into subgroup_feature
exrook Nov 5, 2023
011016f
subgroups: fix gpu test on systems with subgroup size of 1
exrook Nov 6, 2023
a68ef32
subgroup: emit Shuffle instead of Broadcast on spv-out
exrook Nov 7, 2023
3bc4aa9
subgroup: Use bitmask to track pass/failed tests
exrook Nov 16, 2023
8420c97
subgroups: Print detailed error message on test failure
exrook Nov 21, 2023
395cd21
subgroups: Add tests in divergent control flow
exrook Nov 21, 2023
f1a4d75
subgroups: correct changelog entry PR link
exrook Nov 21, 2023
4dd8e06
Merge branch 'trunk' into subgroup_feature
exrook Nov 22, 2023
50355e0
Merge branch 'trunk' into HEAD
exrook Nov 28, 2023
4bf0479
subgroups: Expect test failures on metal
exrook Nov 28, 2023
156f026
subgroups: Add test for divergent for loop
exrook Nov 28, 2023
f9fc7f0
subgroups: Verify convergence after finishing other tests
exrook Nov 28, 2023
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
Prev Previous commit
Next Next commit
Adjusts metal backend test_stack_size().
  • Loading branch information
Lichtso authored and exrook committed Oct 25, 2023
commit 43133d082f914e4c064e56bc1a181eb57120b33b
4 changes: 2 additions & 2 deletions naga/src/back/msl/writer.rs
Original file line number Diff line number Diff line change
@@ -4739,8 +4739,8 @@ fn test_stack_size() {
}
let stack_size = addresses_end - addresses_start;
// check the size (in debug only)
// last observed macOS value: 19152 (CI)
if !(9000..=20000).contains(&stack_size) {
// last observed macOS value: 22256 (CI)
if !(15000..=25000).contains(&stack_size) {
panic!("`put_block` stack size {stack_size} has changed!");
}
}