Commit Graph

3831 Commits

Author SHA1 Message Date
digit@google.com
eec9dbcace arm: First step towards dynamic NEON support.
This patch adds minimal support for dynamic ARM NEON support,
i.e. the ability to probe the CPU at runtime for NEON and
provide alternate code paths when it is available.

- Add include/core/SkUtilsArm.h, which declares a few helper
  macros (e.g. SK_NEON_ARM_IS_DYNAMIC), plus the handy
  function 'sk_cpu_arm_has_neon()' which returns true if
  the target CPU supports the ARM NEON instruction set.

  Note that the header is in include/core/ because it will
  have to be included from NEON-specific code under src/code/

  It would probably be more logical to put it under include/opts/
  instead, but this would require moving all the NEON-specific
  stuff under src/code/ into src/opts/, which is not trivial
  due to the way the code is currently architected.

- Add src/core/SkUtilsArm.cpp which implements
  'sk_cpu_arm_has_neon' for ARM-based Linux systems, only
  when SK_NEON_ARM_IS_DYNAMIC is true.

  (For other cases, 'sk_cpu_arm_has_neon' is an inline function
   that returns a constant 'true' or 'false' value).

  There is no user-level accessible CPUID instruction on ARM,
  so do all CPU feature probing by parsing /proc/cpuinfo.
  This is Linux-specific.

  For Debug build types, the CPU probing result is printed
  to the Android log (or Linux command-line) for easier
  debugging.

- Create a new 'opts_neon' target (static library) which shall
  contain all the NEON-specific code paths for the library.

  This is necessary because -mfpu=neon impacts also non-scalar
  code. Just like with -mssse3 on x86, we can't build the rest
  of the library with this flag.

  Note that for now, we only include memset16_neon and
  memset32_neon in this library.

- Modify opts_check_arm.cpp to implement SK_ARM_NEON_IS_DYNAMIC
  properly.

Compared to a 'xoom' build, the only difference is the use of
NEON-optimized memset16/32 functions. Later patches will move
more NEON-specific code paths to 'opts_neon'.
Review URL: https://codereview.appspot.com/6247058

git-svn-id: http://skia.googlecode.com/svn/trunk@4069 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-30 13:54:41 +00:00
reed@google.com
c20bc25b6e use (float)(1 << 23) instead of 1.0p+23 since the latter isn't supported in VS
git-svn-id: http://skia.googlecode.com/svn/trunk@4068 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-30 13:48:14 +00:00
reed@google.com
c3b697298e win can't eat 1.0p+23 syntax for floats :(
git-svn-id: http://skia.googlecode.com/svn/trunk@4067 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-30 12:43:59 +00:00
reed@google.com
a7d7461cf0 remove debugf
git-svn-id: http://skia.googlecode.com/svn/trunk@4066 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-30 12:30:09 +00:00
reed@google.com
7f19241adb add bench for floor variants
git-svn-id: http://skia.googlecode.com/svn/trunk@4065 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-30 12:26:52 +00:00
robertphillips@google.com
e9b3f7dba0 Fixed small bug in shader generation
http://codereview.appspot.com/6259053/



git-svn-id: http://skia.googlecode.com/svn/trunk@4064 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-30 12:26:39 +00:00
epoger@google.com
6dbf6cde3b svndiff: report added and deleted files, not just modified files
Review URL: https://codereview.appspot.com/6260052

git-svn-id: http://skia.googlecode.com/svn/trunk@4063 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 21:28:12 +00:00
reed@google.com
3ec68f047a special-case dashing a single line-segment. We can go much faster since we
can apply the stroke as we go, eliminating the generic stroker.
Review URL: https://codereview.appspot.com/6250070

git-svn-id: http://skia.googlecode.com/svn/trunk@4062 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 20:48:50 +00:00
reed@google.com
744fabad47 addPoly() entry-point, to quickly add MoveTo+N*LineTo (useful in dashing)
Review URL: https://codereview.appspot.com/6256063

git-svn-id: http://skia.googlecode.com/svn/trunk@4061 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 19:54:52 +00:00
bsalomon@google.com
4196c0e0e8 Fix line ending, mark svn:eol-style LF
git-svn-id: http://skia.googlecode.com/svn/trunk@4060 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 19:44:14 +00:00
junov@chromium.org
8661baeb39 Fixing a reader size overflow with SkOrderedReadBuffer, when unflattening large bitmaps.
REVIEW=http://codereview.appspot.com/6250054/



git-svn-id: http://skia.googlecode.com/svn/trunk@4059 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 16:53:04 +00:00
epoger@google.com
47d3599669 Update list of trybots used by https://goto.google.com/HowToLandSkiaChangesThatChangeWebkitLayoutTests
TBR=reed
Review URL: https://codereview.appspot.com/6250071

git-svn-id: http://skia.googlecode.com/svn/trunk@4058 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 15:33:30 +00:00
reed@google.com
8b06f1a7ff Detect when the caller was hairline AND strokeandfill, and resolve that into FILL
This fixes the unittests on WIN in the trybot for DEPS roll 4048
Review URL: https://codereview.appspot.com/6242057

git-svn-id: http://skia.googlecode.com/svn/trunk@4057 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 12:03:46 +00:00
mike@reedtribe.org
398b1bcb7d add SkPoint::isZero(), match the existing method on SkIPoint
git-svn-id: http://skia.googlecode.com/svn/trunk@4055 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 01:40:15 +00:00
robertphillips@google.com
c077d1eaa8 Rolling back 4053
git-svn-id: http://skia.googlecode.com/svn/trunk@4054 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-28 14:10:15 +00:00
robertphillips@google.com
ab303ef6e8 Speculative fix for Android Debug only crash in r4049
http://codereview.appspot.com/6251049/



git-svn-id: http://skia.googlecode.com/svn/trunk@4053 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-28 13:37:25 +00:00
epoger@google.com
2e0a061c09 Add svndiff tool: runs skdiff over all pending changes in SVN checkout
This is needed for 
https://goto.google.com/HowToLandSkiaChangesThatChangeWebkitLayoutTests ,
and will be generally useful beyond that too.
Review URL: https://codereview.appspot.com/6256052

git-svn-id: http://skia.googlecode.com/svn/trunk@4052 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-25 19:48:05 +00:00
robertphillips@google.com
ac2c666e27 Rolling back r4049
git-svn-id: http://skia.googlecode.com/svn/trunk@4051 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-25 12:46:55 +00:00
robertphillips@google.com
57f0b62b52 Whitespace change - could not reproduce r4049's Debug Android failure locally
git-svn-id: http://skia.googlecode.com/svn/trunk@4050 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-25 12:26:30 +00:00
robertphillips@google.com
837576bf89 Altered GrDrawState to always ref textures and render target
http://codereview.appspot.com/6251049/



git-svn-id: http://skia.googlecode.com/svn/trunk@4049 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-25 11:45:40 +00:00
reed@google.com
fd4be26c42 Change patheffect to take a (new) StrokeRec object, which encapsulates the fill
or stroke parameters for a path.

Today, the patheffect only sees if the caller was going to stroke or fill, and
if stroke, it just sees the width. With this change, the effect can see all of the
related parameters (e.g. cap/join/miter). No other change is intended at this
time.

After this change, I hope to use this additional data to allow SkDashPathEffect
to, at times, apply the stroke as part of its effect, which may be much more
efficient than first dashing, and then reading that and stroking it.

Most of these files changed just because of the new parameter to filterPath. The
key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp
Review URL: https://codereview.appspot.com/6250051

git-svn-id: http://skia.googlecode.com/svn/trunk@4048 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-25 01:04:12 +00:00
reed@google.com
d3521f1a8d revert 4046 -- GM:pathfill failed on one bot, maybe uninitialized memory somewhere?
git-svn-id: http://skia.googlecode.com/svn/trunk@4047 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 20:32:22 +00:00
reed@google.com
9797272edf Change patheffect to take a (new) StrokeRec object, which encapsulates the fill
or stroke parameters for a path.

Today, the patheffect only sees if the caller was going to stroke or fill, and if
stroke, it just sees the width. With this change, the effect can see all of the
related parameters (e.g. cap/join/miter). No other change is intended at this
time.

After this change, I hope to use this additional data to allow SkDashPathEffect
to, at times, apply the stroke as part of its effect, which may be much more
efficient than first dashing, and then reading that and stroking it.

Most of these files changed just because of the new parameter to filterPath. The
key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp
Review URL: https://codereview.appspot.com/6249050

git-svn-id: http://skia.googlecode.com/svn/trunk@4046 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 20:13:57 +00:00
tomhudson@google.com
5259814305 Move swizzle & modulation computation, non-virtual functions onto
GrGLShaderBuilder. This lets us access all the default computations
when there's no GrCustomStage specified, and means that GrGLProgramStage
is effectively an interface class, all of whose functions can/should
be overriden.

http://codereview.appspot.com/6242051/



git-svn-id: http://skia.googlecode.com/svn/trunk@4045 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 17:44:30 +00:00
reed@google.com
3fd979874c add baselines for macpro
git-svn-id: http://skia.googlecode.com/svn/trunk@4044 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 16:28:11 +00:00
reed@google.com
434d467e92 add baselines for macpro
git-svn-id: http://skia.googlecode.com/svn/trunk@4043 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 16:25:13 +00:00
reed@google.com
7f40631b72 add baselines for macpro
git-svn-id: http://skia.googlecode.com/svn/trunk@4042 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 16:22:53 +00:00
reed@google.com
444335fd1f add baselines for macpro
git-svn-id: http://skia.googlecode.com/svn/trunk@4041 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 15:15:04 +00:00
tomhudson@google.com
6a820b652e First stage of reworking custom shader infrastructure to allow
radial mappings.

http://codereview.appspot.com/6239043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4040 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 15:10:14 +00:00
bsalomon@google.com
8137fcfa7d Fix some EOLs, mark files with the LF property.
Review URL: http://codereview.appspot.com/6230046/




git-svn-id: http://skia.googlecode.com/svn/trunk@4039 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 12:43:36 +00:00
robertphillips@google.com
8a4fc40b02 Updated useSWOnlyPath method to use path chain instead of raw path renderer methods
http://codereview.appspot.com/6211083/



git-svn-id: http://skia.googlecode.com/svn/trunk@4038 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 12:42:24 +00:00
caryclark@google.com
65f9f0a166 shape ops work in progress (get rid of some warnings)
git-svn-id: http://skia.googlecode.com/svn/trunk@4037 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-23 18:09:25 +00:00
robertphillips@google.com
72176b2d38 Removed SoftwarePathRenderer from GrContext's path renderer chain
http://codereview.appspot.com/6221065/



git-svn-id: http://skia.googlecode.com/svn/trunk@4036 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-23 13:19:12 +00:00
robertphillips@google.com
87baf8985a "fix" for r4034 issues
git-svn-id: http://skia.googlecode.com/svn/trunk@4035 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-23 12:02:21 +00:00
robertphillips@google.com
49d9fd5fdb Plumbing to propagate save & restore from SkCanvas down to GrContext & lower
http://codereview.appspot.com/6203067/



git-svn-id: http://skia.googlecode.com/svn/trunk@4034 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-23 11:44:08 +00:00
caryclark@google.com
af46cff4ee shape ops work in progress
git-svn-id: http://skia.googlecode.com/svn/trunk@4033 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 21:12:00 +00:00
robertphillips@google.com
2c75681e36 Remove GrClipMaskManager's path renderer chain (in favor of GrContext's)
http://codereview.appspot.com/6211078/



git-svn-id: http://skia.googlecode.com/svn/trunk@4032 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 20:28:23 +00:00
epoger@google.com
0f645b68a3 download_baselines.py : only set svn properties of files whose content has changed
and while I was at it, sort the filenames before acting on them, to make the output easier to read

BUG=http://code.google.com/p/skia/issues/detail?id=618
Review URL: https://codereview.appspot.com/6223061

git-svn-id: http://skia.googlecode.com/svn/trunk@4031 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 19:14:01 +00:00
robertphillips@google.com
a3e5c63ab0 Minor tweaks to SW-only clip mask generation logic
http://codereview.appspot.com/6218064/



git-svn-id: http://skia.googlecode.com/svn/trunk@4030 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 18:09:26 +00:00
caryclark@google.com
1577e8f9c5 shape ops work in progress
git-svn-id: http://skia.googlecode.com/svn/trunk@4029 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 17:01:14 +00:00
bsalomon@google.com
bcc8486ad4 Commit comment change that was supposed to go into r4024 but wasn't because I forgot to save.
git-svn-id: http://skia.googlecode.com/svn/trunk@4028 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 15:44:03 +00:00
epoger@google.com
46256ea736 Add to skdiff: test images for bitwise equality before testing for pixel-wise equality
- we now check for bitwise equality of files before bothering with pixel 
  comparisons (this will help with formats for which we don't have good
  decoders, like PDF)
- unparsable files are now reported as differing, unless they are bitwise equal
  (before, they were always reported as matching!)
- "largest area mismatch" is now based on same-size image pairs only;
  previously, if any image pairs had mismatching size, it was 100%
- removed repetitive "image size mismatch, so no diff to display" messages
- changed format of leftmost table cells to be more readable

BUG=http://code.google.com/p/skia/issues/detail?id=473
Review URL: https://codereview.appspot.com/6208089

git-svn-id: http://skia.googlecode.com/svn/trunk@4027 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 13:45:35 +00:00
robertphillips@google.com
21ddae75b2 White space change
git-svn-id: http://skia.googlecode.com/svn/trunk@4026 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 12:59:59 +00:00
robertphillips@google.com
67febd9506 Converted AAClips SampleApp slide to GM:simpleaaclip
http://codereview.appspot.com/6220043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4025 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-22 12:14:50 +00:00
bsalomon@google.com
f3fcbbea08 Kill GrGpuGL::fHWDrawState
Review URL: http://codereview.appspot.com/6227048/




git-svn-id: http://skia.googlecode.com/svn/trunk@4024 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-21 22:15:46 +00:00
bsalomon@google.com
255fa16fac Changes accidentally omitted from 4022.
git-svn-id: http://skia.googlecode.com/svn/trunk@4023 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-21 21:44:59 +00:00
bsalomon@google.com
8d49d93bb3 Stop Tracking const vertex attrib color and coverage using GrDrawState
Review URL: http://codereview.appspot.com/6219056/




git-svn-id: http://skia.googlecode.com/svn/trunk@4022 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-21 21:40:12 +00:00
bsalomon@google.com
457b8a3b49 Stop using GrDrawState to track stencil state
Review URL: http://codereview.appspot.com/6227047/



git-svn-id: http://skia.googlecode.com/svn/trunk@4021 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-21 21:19:58 +00:00
bsalomon@google.com
16fd21ba22 Rename GrProgramStageFactory::stageKey to GrProgramStageFactory::glStageKey since it is GL-specific
Review URL: http://codereview.appspot.com/6218060/



git-svn-id: http://skia.googlecode.com/svn/trunk@4020 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-21 21:18:13 +00:00
bsalomon@google.com
289efe014a Tunnel name requests through factory, forcing custom effect and custom prog stage to use same impl
Review URL: http://codereview.appspot.com/6220061/



git-svn-id: http://skia.googlecode.com/svn/trunk@4019 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-21 20:57:59 +00:00