Chinamming / bullet

Automatically exported from code.google.com/p/bullet
Other
0 stars 0 forks source link

ARM-Neon code by Apple #738

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Build latest version for iOS with multi-threaded support.
2. Add Neon code contributed by Apple.
3. When submitting the code to Apple the reject for using Non-Public API.

What is the expected output? What do you see instead?
The line that xcode reports as non-public API is _get_cpu_capabilities() in the 
btVector3.cpp file for arm-neon files. Though the code was contributed by 
Apple, the function is considered as non-public API.

What version of the product are you using? On what operating system?
iOS, latest version r2648

Please provide any additional information below.
The function is used to select between 2 methods called v0 and v1. We removed 
the function and forced to use v1 and it worked on all devices. We tested the 
build on iPad 4, iPad 1, iPhone 4, and iPod Touch 3 and it works without any 
problem. But just wanted to confirm if there is any problem in using that way.

Original issue reported on code.google.com by nharisha...@gmail.com on 8 Sep 2013 at 4:44

GoogleCodeExporter commented 9 years ago
Thanks for sharing, that is pretty bad. Let's comment it out by default then, 
and use method v1.

Original comment by erwin.coumans on 8 Sep 2013 at 4:52

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago

Erwin,
Actually according to their code, iPad 1 and iPod Touch 3 used v0 code. But 
these devices also work in v1. Am not sure if there is any performance impact.

Original comment by nharisha...@gmail.com on 8 Sep 2013 at 5:12

GoogleCodeExporter commented 9 years ago
Is there another way to check for NEON? It seems from 3GS onwards it is 
available.

Original comment by erwin.coumans on 8 Sep 2013 at 5:24

GoogleCodeExporter commented 9 years ago
Yes, neon is available on devices starting from 3GS, but v0 and v1 both use 
different set of neon instructions. According to that if-loop, 3GS used v0 
code. There are not much information about that function. I've been trying to 
understand the function for couple of days now. Will keep you posted.

Original comment by nharisha...@gmail.com on 8 Sep 2013 at 5:34

GoogleCodeExporter commented 9 years ago
ok, fixed in latest revision (always using v1)
https://code.google.com/p/bullet/source/detail?r=2652
Thanks!

Original comment by erwin.coumans on 10 Sep 2013 at 8:00

GoogleCodeExporter commented 9 years ago
Fixed with new check. Thanks for the help!
https://code.google.com/p/bullet/source/detail?r=2657

Original comment by erwin.coumans on 10 Sep 2013 at 11:13