-
Notifications
You must be signed in to change notification settings - Fork 908
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
Incorrect looping in shader on metal #5067
Comments
Would it be possible to test this with a newer wgpu (ideally trunk)? A lot has changed since 0.13 |
I just tried again with the current git main and the dev instructions and I get the same result. |
This sounds like a driver bug but could be #4972 as well since we desugar all loop types to |
Sorry, I'm afraid I don't know exactly how to do that - I thought it would require building a new libwgpu_native.dylib just changing the wgpu-native Cargo.tml file to point to your branch instead of the gfw-rs repository, but I get some kind of naga dependency error that I don't understand. Is there an example of building with a branch? (the gfw-rs/wgpu-native trunk builds fine). |
It could be because the API changed in a non-backwards compatible way since my PR is based on a recent version of trunk. I think the change can be applied cleanly to all recent versions of naga. You can clone the specific revision of naga you are currently using and apply the changes locally; then point wgpu-native to your local repo. |
@teoxoy would you be able to make a branch of wgpu-native that builds against the versions you described? I'm not really familiar with components of this project or the rust build systems so it's not clear to me how to proceed. |
Thank you @teoxoy , I tried your branch and it built but gave the same results as before. I agree it might be a driver bug, but I've never seen any other odd behavior from this machine and I use if every day for various purposes. Unless people have other suggestions I think I'll make a PR to add this snippet to the wgpu-native compute shader test. |
Is there a dashboard where tests are recorded and displayed for different platforms? I can test on this macos / driver version for now but it may get updated in the future. |
We currently run the tests in CI on all backends so are currently relying on that. All the tests should be clean, at they automatically manage their own expectations (i.e. A expected failure succeeds) |
The best place to put it would be honestly in a test in this repository, that way it gets actively tested |
Description
A triple-nested for loop behaves differently on a mac pro with AMD cards than it does on other platforms.
Repro steps
On most systems it runs normally (tested window and linux with nvidia GPUs and mac with M2 GPU).
On a mac pro with AMD Radeon Pro W5700X 16 GB, macOS 13.4, the error condition happen.
On the AMD mac, the max of
neighborsVisited
is 4 when it is 8 everywhere else. Also the value ofii
is zero, not 2.Expected vs observed behavior
The code should work the same everywhere : )
Extra materials
A full wgpu python script that demonstrates the issue is here.
Platform
AMD Radeon Pro W5700X 16 GB, macOS 13.4
wgpu '0.13.2'
The text was updated successfully, but these errors were encountered: