Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: gyp/opts.gyp

Issue 289473009: Add SSE4 optimization of S32A_Opaque_Blitrow (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix deferred test case for Valgrind Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | gyp/skia_lib.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Gyp file for opts projects 1 # Gyp file for opts projects
2 { 2 {
3 'targets': [ 3 'targets': [
4 # Due to an unfortunate intersection of lameness between gcc and gyp, 4 # Due to an unfortunate intersection of lameness between gcc and gyp,
5 # we have to build the *_SSE2.cpp files in a separate target. The 5 # we have to build the *_SSE2.cpp files in a separate target. The
6 # gcc lameness is that, in order to compile SSE2 intrinsics code, it 6 # gcc lameness is that, in order to compile SSE2 intrinsics code, it
7 # must be passed the -msse2 flag. However, with this flag, it may 7 # must be passed the -msse2 flag. However, with this flag, it may
8 # emit SSE2 instructions even for scalar code, such as the CPUID 8 # emit SSE2 instructions even for scalar code, such as the CPUID
9 # test used to test for the presence of SSE2. So that, and all other 9 # test used to test for the presence of SSE2. So that, and all other
10 # code must be compiled *without* -msse2. The gyp lameness is that it 10 # code must be compiled *without* -msse2. The gyp lameness is that it
(...skipping 28 matching lines...) Expand all
39 'cflags': [ 39 'cflags': [
40 '-msse2', 40 '-msse2',
41 ], 41 ],
42 }], 42 }],
43 ], 43 ],
44 'include_dirs': [ 44 'include_dirs': [
45 '../include/utils', 45 '../include/utils',
46 ], 46 ],
47 'dependencies': [ 47 'dependencies': [
48 'opts_ssse3', 48 'opts_ssse3',
49 'opts_sse4',
49 ], 50 ],
50 'sources': [ 51 'sources': [
51 '../src/opts/opts_check_x86.cpp', 52 '../src/opts/opts_check_x86.cpp',
52 '../src/opts/SkBitmapProcState_opts_SSE2.cpp', 53 '../src/opts/SkBitmapProcState_opts_SSE2.cpp',
53 '../src/opts/SkBitmapFilter_opts_SSE2.cpp', 54 '../src/opts/SkBitmapFilter_opts_SSE2.cpp',
54 '../src/opts/SkBlitRow_opts_SSE2.cpp', 55 '../src/opts/SkBlitRow_opts_SSE2.cpp',
55 '../src/opts/SkBlitRect_opts_SSE2.cpp', 56 '../src/opts/SkBlitRect_opts_SSE2.cpp',
56 '../src/opts/SkBlurImage_opts_SSE2.cpp', 57 '../src/opts/SkBlurImage_opts_SSE2.cpp',
57 '../src/opts/SkMorphology_opts_SSE2.cpp', 58 '../src/opts/SkMorphology_opts_SSE2.cpp',
58 '../src/opts/SkUtils_opts_SSE2.cpp', 59 '../src/opts/SkUtils_opts_SSE2.cpp',
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 ], 188 ],
188 }], 189 }],
189 # (Mac has -mssse3 globally.) 190 # (Mac has -mssse3 globally.)
190 [ 'skia_arch_type == "x86"', { 191 [ 'skia_arch_type == "x86"', {
191 'sources': [ 192 'sources': [
192 '../src/opts/SkBitmapProcState_opts_SSSE3.cpp', 193 '../src/opts/SkBitmapProcState_opts_SSSE3.cpp',
193 ], 194 ],
194 }], 195 }],
195 ], 196 ],
196 }, 197 },
198 # For the same lame reasons as what is done for skia_opts, we also have to
199 # create another target specifically for SSE4 code as we would not want
200 # to compile the SSE2 code with -msse4 which would potentially allow
201 # gcc to generate SSE4 code.
202 {
203 'target_name': 'opts_sse4',
204 'product_name': 'skia_opts_sse4',
205 'type': 'static_library',
206 'standalone_static_library': 1,
207 'dependencies': [
208 'core.gyp:*',
209 'effects.gyp:*'
210 ],
211 'include_dirs': [
212 '../src/core',
213 ],
214 'conditions': [
215 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome os", "android", "mac"] \
216 and not skia_android_framework', {
217 'cflags': [
218 '-msse4',
219 ],
220 }],
221 [ 'skia_arch_width == 64 and skia_arch_type == "x86"', {
222 'sources': [
223 '../src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
224 ],
225 }],
226 [ 'skia_arch_width == 32 and skia_arch_type == "x86"', {
227 'sources': [
228 '../src/opts/SkBlitRow_opts_SSE4_asm.S',
229 ],
230 }],
231 ],
232 },
197 # NEON code must be compiled with -mfpu=neon which also affects scalar 233 # NEON code must be compiled with -mfpu=neon which also affects scalar
198 # code. To support dynamic NEON code paths, we need to build all 234 # code. To support dynamic NEON code paths, we need to build all
199 # NEON-specific sources in a separate static library. The situation 235 # NEON-specific sources in a separate static library. The situation
200 # is very similar to the SSSE3 one. 236 # is very similar to the SSSE3 and SSE4 one.
201 { 237 {
202 'target_name': 'opts_neon', 238 'target_name': 'opts_neon',
203 'product_name': 'skia_opts_neon', 239 'product_name': 'skia_opts_neon',
204 'type': 'static_library', 240 'type': 'static_library',
205 'standalone_static_library': 1, 241 'standalone_static_library': 1,
206 'dependencies': [ 242 'dependencies': [
207 'core.gyp:*', 243 'core.gyp:*',
208 'effects.gyp:*' 244 'effects.gyp:*'
209 ], 245 ],
210 'include_dirs': [ 246 'include_dirs': [
(...skipping 26 matching lines...) Expand all
237 '../src/opts/SkBitmapProcState_matrix_neon.h', 273 '../src/opts/SkBitmapProcState_matrix_neon.h',
238 '../src/opts/SkBlitMask_opts_arm_neon.cpp', 274 '../src/opts/SkBlitMask_opts_arm_neon.cpp',
239 '../src/opts/SkBlitRow_opts_arm_neon.cpp', 275 '../src/opts/SkBlitRow_opts_arm_neon.cpp',
240 '../src/opts/SkBlurImage_opts_neon.cpp', 276 '../src/opts/SkBlurImage_opts_neon.cpp',
241 '../src/opts/SkMorphology_opts_neon.cpp', 277 '../src/opts/SkMorphology_opts_neon.cpp',
242 '../src/opts/SkXfermode_opts_arm_neon.cpp', 278 '../src/opts/SkXfermode_opts_arm_neon.cpp',
243 ], 279 ],
244 }, 280 },
245 ], 281 ],
246 } 282 }
OLDNEW
« no previous file with comments | « no previous file | gyp/skia_lib.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698