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

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: Created 6 years, 7 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') | gyp/skia_lib.gyp » ('J')
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 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 ], 166 ],
166 }], 167 }],
167 # (Mac has -mssse3 globally.) 168 # (Mac has -mssse3 globally.)
168 [ 'skia_arch_type == "x86"', { 169 [ 'skia_arch_type == "x86"', {
169 'sources': [ 170 'sources': [
170 '../src/opts/SkBitmapProcState_opts_SSSE3.cpp', 171 '../src/opts/SkBitmapProcState_opts_SSSE3.cpp',
171 ], 172 ],
172 }], 173 }],
173 ], 174 ],
174 }, 175 },
176 # For the same lame reasons as what is done for skia_opts, we also have to
177 # create another target specifically for SSE4 code as we would not want
178 # to compile the SSE2 code with -msse4 which would potentially allow
179 # gcc to generate SSE4 code.
180 {
181 'target_name': 'opts_sse4',
182 'product_name': 'skia_opts_sse4',
183 'type': 'static_library',
184 'standalone_static_library': 1,
185 'dependencies': [
186 'core.gyp:*',
187 'effects.gyp:*'
188 ],
189 'include_dirs': [
190 '../src/core',
191 ],
192 'conditions': [
193 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome os", "android", "mac"] \
194 and not skia_android_framework', {
195 'cflags': [
196 '-msse4',
197 ],
198 }],
199 [ 'skia_arch_width == 64 and skia_arch_type == "x86"', {
200 'sources': [
201 '../src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
202 ],
203 }],
204 [ 'skia_arch_width == 32 and skia_arch_type == "x86"', {
205 'sources': [
206 '../src/opts/SkBlitRow_opts_SSE4_asm.S',
207 ],
208 }],
209 ],
210 },
175 # NEON code must be compiled with -mfpu=neon which also affects scalar 211 # NEON code must be compiled with -mfpu=neon which also affects scalar
176 # code. To support dynamic NEON code paths, we need to build all 212 # code. To support dynamic NEON code paths, we need to build all
177 # NEON-specific sources in a separate static library. The situation 213 # NEON-specific sources in a separate static library. The situation
178 # is very similar to the SSSE3 one. 214 # is very similar to the SSSE3 and SSE4 one.
179 { 215 {
180 'target_name': 'opts_neon', 216 'target_name': 'opts_neon',
181 'product_name': 'skia_opts_neon', 217 'product_name': 'skia_opts_neon',
182 'type': 'static_library', 218 'type': 'static_library',
183 'standalone_static_library': 1, 219 'standalone_static_library': 1,
184 'dependencies': [ 220 'dependencies': [
185 'core.gyp:*', 221 'core.gyp:*',
186 'effects.gyp:*' 222 'effects.gyp:*'
187 ], 223 ],
188 'include_dirs': [ 224 'include_dirs': [
(...skipping 26 matching lines...) Expand all
215 '../src/opts/SkBitmapProcState_matrix_neon.h', 251 '../src/opts/SkBitmapProcState_matrix_neon.h',
216 '../src/opts/SkBlitMask_opts_arm_neon.cpp', 252 '../src/opts/SkBlitMask_opts_arm_neon.cpp',
217 '../src/opts/SkBlitRow_opts_arm_neon.cpp', 253 '../src/opts/SkBlitRow_opts_arm_neon.cpp',
218 '../src/opts/SkBlurImage_opts_neon.cpp', 254 '../src/opts/SkBlurImage_opts_neon.cpp',
219 '../src/opts/SkMorphology_opts_neon.cpp', 255 '../src/opts/SkMorphology_opts_neon.cpp',
220 '../src/opts/SkXfermode_opts_arm_neon.cpp', 256 '../src/opts/SkXfermode_opts_arm_neon.cpp',
221 ], 257 ],
222 }, 258 },
223 ], 259 ],
224 } 260 }
OLDNEW
« no previous file with comments | « no previous file | gyp/skia_lib.gyp » ('j') | gyp/skia_lib.gyp » ('J')

Powered by Google App Engine
This is Rietveld 408576698