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

uint64_t4 missing from Metal backend #5062

Closed
natevm opened this issue Sep 13, 2024 · 3 comments
Closed

uint64_t4 missing from Metal backend #5062

natevm opened this issue Sep 13, 2024 · 3 comments
Assignees
Labels
goal:client support Feature or fix needed for a current slang user.

Comments

@natevm
Copy link
Contributor

natevm commented Sep 13, 2024

According to the Metal spec, there is no uint64_tN type. However, there are ulong4's which are 32 bytes total (8 bytes per component).

At the moment, Slang appears to map vec<uint64_t, 4> to uint64_t4, which is causing certain shaders to generate compilation errors. This is causing the tests for PR #5020 to fail.

Could we have vectors of 64-bit integers map to Metal's ulongN types?

@natevm
Copy link
Contributor Author

natevm commented Sep 13, 2024

Looks like we can fix this by adding a little logic to slang-emit-metal.cpp: #5020 (comment)

I'll should be able to fix this.

@natevm
Copy link
Contributor Author

natevm commented Sep 15, 2024

PR #5020 has a fix for this issue as part of the bitfield intrinsics. Once that’s merged, we can close this issue.

@bmillsNV bmillsNV added the goal:client support Feature or fix needed for a current slang user. label Sep 19, 2024
@bmillsNV bmillsNV added this to the Q4 2024 (Fall) milestone Sep 19, 2024
@csyonghe
Copy link
Collaborator

This is fixed. We now always emit long for int64_t and ulong for uint64_t on metal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
goal:client support Feature or fix needed for a current slang user.
Projects
None yet
Development

No branches or pull requests

3 participants