TomH, I includes more condition check to ensure that only android x86 build will disable ...
12 years, 7 months ago
(2012-05-14 05:19:14 UTC)
#1
TomH,
I includes more condition check to ensure that only android x86 build will
disable SSSE3 optimization.
I suppose it will not impact any other platforms as I added #if
!defined(SK_BUILD_FOR_ANDROID_NDK).
could you help to review it? thanks
On 2012/05/14 13:32:26, TomH wrote: > __SSSE3__ is not defined on Windows or Linux (I ...
12 years, 7 months ago
(2012-05-14 13:38:05 UTC)
#3
On 2012/05/14 13:32:26, TomH wrote:
> __SSSE3__ is not defined on Windows or Linux (I haven't personally checked
Mac,
> but I don't believe it's defined there).
I see. thanks for the explanation.
so i used !defined(SK_BUILD_FOR_ANDROID_NDK) to let other platforms except
android to enable that piece of SSSE3 code, is it ok? thanks
djsollen@ points out that SK_BUILD_FOR_ANDROID_NDK is more restrictive than SK_BUILD_FOR_ANDROID, and we probably want the ...
12 years, 7 months ago
(2012-05-15 15:50:28 UTC)
#4
djsollen@ points out that SK_BUILD_FOR_ANDROID_NDK is more restrictive than
SK_BUILD_FOR_ANDROID, and we probably want the broader #define.
But I'm not confident that __SSSE3__ will be #defined on Android platforms that
have it, either, since in email we discussed how you only got it on e.g. Linux
with the -march=native compiler flag, which isn't part of the standard build
process.
Could we fix this in the gyp files by passing in -DSSSE3 on most architectures,
and not passing that in on Android? As it is we're having to pass -msse2 (and I
assume -mssse3); we ought to be able to hook on those points?
On 2012/05/15 15:50:28, TomH wrote: > djsollen@ points out that SK_BUILD_FOR_ANDROID_NDK is more restrictive than ...
12 years, 7 months ago
(2012-05-16 09:55:23 UTC)
#5
On 2012/05/15 15:50:28, TomH wrote:
> djsollen@ points out that SK_BUILD_FOR_ANDROID_NDK is more restrictive than
> SK_BUILD_FOR_ANDROID, and we probably want the broader #define.
> But I'm not confident that __SSSE3__ will be #defined on Android platforms
that
> have it, either, since in email we discussed how you only got it on e.g. Linux
> with the -march=native compiler flag, which isn't part of the standard build
> process.
>
> Could we fix this in the gyp files by passing in -DSSSE3 on most
architectures,
> and not passing that in on Android? As it is we're having to pass -msse2 (and
I
> assume -mssse3); we ought to be able to hook on those points?
tom, as SSSE3 instruction set is optional on part of x86/x64 platforms, I
suspect that we cannot use -DSSSE3 in gyp files for all x86/x64 platforms.
actually, the CPU on Intel Android Phone does support SSSE3 instruction set, but
per Google's request, it is not enabled in ABI.
as stated in ndk docs/CPU-ARCH-ABIS.html
The ABI does *not* include any other optional IA-32 instruction set
extension, including, but not limited to:
- the MOVBE instruction
- the SSSE3 "supplemental SSE3" extension
- any variant of "SSE4"
So could I just use #if !defined(SK_BUILD_FOR_ANDROID) to fix this issue while
not impacting other platforms?
Issue 6198069: disable SSSE3 optimization for android x86 only
(Closed)
Created 12 years, 7 months ago by james.wei
Modified 12 years, 7 months ago
Reviewers: TomH, (pls use tomhudson at google), DerekS
Base URL: http://skia.googlecode.com/svn/trunk/src/
Comments: 0