-
Notifications
You must be signed in to change notification settings - Fork 654
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
Update ASTC version #951
Update ASTC version #951
Conversation
Is this PR also suffering from the CRLF issue? Whole files appear different. |
6a8aaef
to
8ed788a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good improvement. Thanks for performance testing!
We probably need to check this internally. @marty-johnson59: Maybe something to put on next calls agenda? Or forward to Legal at Khronos. It's a different license, so we need to make sure that we can use it and that we don't block any current user from using our samples by that new license. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM aside from the legal stuff. I only have some minor remarks regarding some comments.
cbca8ac
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code LGTM.
We still need to check on licenses before merging.
@marty-johnson59 is a licence check needed on this? |
ATSC is under Apache 2 license, so we're OK with that. Merging with 3.. |
Looks like this broke builds on recent Apple devices (e.g. M1), see #965 |
@jherico @SaschaWillems there's another issue here: the newly added cmake modules check whether the compiler can produce the instructions, by trying various command line flags, and then forcibly enable them if so. This doesn't work when the build is intended for a machine that doesn't actually support those instructions; the checks should either try only the default compiler settings (e.g. no additional options), or have a switch to forcibly override ASTC_ARCH from cmake command line. This was exposed by trying to build for 32 bit x86 (yes, it's still a valid architecture in 2024) - the checks happily enable AVX2 because 32bit x86 compiler can do it if you ask, even though the overall build is configured for a mid 2000s x86 CPU model that can't possibly have that. |
Something like this should work, yes. I've tested a local patch that does something similar, and was going to open a pull request: While you're at it, SSE41 should become sse4.1 (with a dot), when lowercased, as that's how astc defines the target. |
Description
Performance
Ran the command_buffer_usage sample 5 times against this branch and against the current main branch, recording the Time spent loading images log line for each run. The target machine is a Ryzen Threadripper 1950X with 32 logical processor and for which the AVX2 ISA was detected and used.
This represents a 40% increase in ASTC image decompression performance.
Note that the only caveat for this is that the modules being used to detect the SIMD instruction set were only found under the license embedded in the added CMake files, which is a slight variant of the BSD-3 license. Hopefully this shouldn't be a problem.
General Checklist:
Please ensure the following points are checked:
Note: The Samples CI runs a number of checks including: