Commit Graph

13508 Commits

Author SHA1 Message Date
tomhudson
3a0f279167 Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702.
Also unifies that flag and this one into a struct so they and others can be computed together. The struct is stored const to enforce lifetime expectations. Adds a few new cases to the unit test.

BUG=skia:2700
R=mtklein@google.com, reed@google.com, robertphillips@google.com, tomhudson@google.com

Committed: https://skia.googlesource.com/skia/+/60c2a79cfa8ceebcbafc243407564dc71f5e3b4f

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/364823009
2014-08-20 05:29:41 -07:00
borenet
5dfe779c2e Copy skimage expectations for Recipes bots
BUG=skia:761
NOTRY=true
R=epoger@google.com, rmistry@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/480333003
2014-08-20 05:25:31 -07:00
caryclark
9a657fa0b4 fix #if to #ifdef for SK_DEBUG
fix the chrome build

R=mtklein@google.com
TBR=mtklein
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/495453003
2014-08-20 05:24:29 -07:00
kkinnunen
5b65357799 Simplify GrGLPathRendering interface
Simplify GrGLPathRendering interface by removing polymorphism and functions that
simply wrap GL functions unnecessarily.

Replace the polymorphism by if -condition.

Call the unconditional GL functions directly. GrGLPath, GrGLPathRange and
GrGLPathRendering are part of the same logical subsystem. This means that the
subsystem implementation details are taken into account within these
classes. Example: if support for using conics would be added, the feature flag
would go to GrGLPathRendering::Caps, the emulation would go to GrGLPath instead of
GrGLPathRendering::pathCommands. Wrapping glPathCommandsNV is not useful.

Try to expose the interface fully in same logical level; rename fragment input
function to reflect this.

R=bsalomon@google.com, cdalton@nvidia.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/450283002
2014-08-20 04:13:27 -07:00
kkinnunen
ccdaa04225 Separate GL path rendering state from GrGpuGL to GrGLPathRendering
Separate GL path rendering state from GrGpuGL to GrGLPathRendering. This
makes GrGpuGL code simpler.

The intention is that while GrGpuGL represents the global environment for GL,
the GrGLPathRendering represents the global environment for path rendering
extension.

Add GrPathRendering, a base class for path rendering, and inherit
GrGLPathRendering from that. Move the path rendering virtual functions from
GrGpu to GrPathRendering.

R=bsalomon@google.com, cdalton@nvidia.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/452823002
2014-08-20 01:36:24 -07:00
changjun.yang
cecc91c444 Make GrGLConfigConversionEffect work for Imagination and some other GPUs.
BUG=372341

Committed: https://skia.googlesource.com/skia/+/93cf46f7d687128d2ad05762bd65fea6c4539553

R=bsalomon@google.com, tomhudson@chromium.org

Author: changjun.yang@intel.com

Review URL: https://codereview.chromium.org/277323002
2014-08-19 18:24:30 -07:00
mtklein
a19afb4180 Cheat to go fast, but be careful in debug mode.
Turns out recording actual text metrics is currently really slow.
If we want to compete with the (cheating) status quo, gotta cheat too.

BUG=skia:
R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/494483002
2014-08-19 17:47:14 -07:00
mtklein
afb4379dbc Print max RSS in GM and nanobench too.
Everyone used MB, so update the API to just return that.

BUG=skia:
R=halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/483323002
2014-08-19 15:55:55 -07:00
piotaixr
d2a3522503 Add the method isOpaque() to SkImage
BUG=skia:2766
R=junov@chromium.org, halcanary@google.com, scroggo@google.com, reed@google.com, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/406673003
2014-08-19 14:29:02 -07:00
bsalomon
1d89ddc4a3 Revert of Add GrResourceCache2. (patchset #4 of https://codereview.chromium.org/481443002/)
Reason for revert:
Likely caused a leak detected in Chromium after last Skia roll.

Original issue's description:
> Add GrResourceCache2.
>
> Currently it just replaces GrGpu as the owner of the linked list of resources.
>
> Committed: https://skia.googlesource.com/skia/+/94ce9ac8624dbb45656b8f5c992fad9c9ff3ee5f

R=mtklein@google.com, robertphillips@google.com
TBR=mtklein@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/477323006
2014-08-19 14:20:58 -07:00
mtklein
a34633f358 Trim down OSX GYP rules. Same effect, shorter.
BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/486233003
2014-08-19 13:33:00 -07:00
bungeman
31c4772b78 Treat embedded bitmaps as a hinting method.
R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/483313002
2014-08-19 13:18:58 -07:00
mtklein
94e51567dd Add --options to nanobench, similar to --key but for non-identifying options.
Friends with https://codereview.chromium.org/487233003/

Example of out/Release/nanobench --options build_number 12374 --match patch_grid_texs_small

{
   "gitHash":"unknown-revision",
   "options":{
      "build_number":"12374",
      "system":"UNIX"
   },
   "results":{
      "patch_grid_texs_small_640_480":{
         "565":{
            "max_ms":0.268116,
            "mean_ms":0.2318529,
            "median_ms":0.235337,
            "min_ms":0.219158,
            "options":{
               "source_type":"bench"
            },
            "stddev_ms":0.01491263917658814
         },
         "8888":{
            "max_ms":0.231881,
            "mean_ms":0.2214668,
            "median_ms":0.219356,
            "min_ms":0.218887,
            "options":{
               "source_type":"bench"
            },
            "stddev_ms":0.004595541070791701
         },
         "gpu":{
            "max_ms":0.1398304782608696,
            "mean_ms":0.128833402173913,
            "median_ms":0.1316798695652174,
            "min_ms":0.1111915434782609,
            "options":{
               "GL_RENDERER":"Quadro 600/PCIe/SSE2",
               "GL_SHADING_LANGUAGE_VERSION":"4.40 NVIDIA via Cg compiler",
               "GL_VENDOR":"NVIDIA Corporation",
               "GL_VERSION":"4.4.0 NVIDIA 331.79",
               "source_type":"bench"
            },
            "stddev_ms":0.008923738937837156
         }
      }
   }
}

BUG=skia:
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/490683002
2014-08-19 12:41:56 -07:00
epoger
8ab362e6e5 rebaseline_server: in Pending Approval tab, change expected/actual labels to old/new
BUG=skia:1918
NOTREECHECKS=true
NOTRY=true
R=stephana@google.com
TBR=stephana

Author: epoger@google.com

Review URL: https://codereview.chromium.org/484763004
2014-08-19 12:17:06 -07:00
bsalomon
94ce9ac862 Add GrResourceCache2.
Currently it just replaces GrGpu as the owner of the linked list of resources.

R=robertphillips@google.com, mtklein@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/481443002
2014-08-19 08:21:25 -07:00
caryclark
38dd9f2e41 remove unused SkIntToFloatCast_NoOverflowCheck
R=reed@google.com, reed
BUG=skia:2849

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/483273003
2014-08-19 07:39:41 -07:00
mtklein
3ba54fa0ad Roll jsoncpp, drop dependency on Chromium overrides.
This rolls jsoncpp to head, crucially past "Added missing includes for
std::istream." which has given us some grief in the past. And it's required to
build jsoncpp against libc++.

Vanilla jsoncpp works just fine for us, so no need for Chromium's overrides.
Like all DEPS, only tools depend on jsoncpp.

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481823003
2014-08-19 07:21:00 -07:00
mtklein
6332f1dd20 Record concat as setMatrix.
Mainly this cuts out a type to have to think about in SkRecord world.
It also means all the CTMs are recorded directly in the SkRecord, so
we can track the current CTM by pointer rather than by copying.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/484673003
2014-08-19 07:09:40 -07:00
fmalita
8a39a6b2b1 Quickfix for incorrect PICTURE_MATRIX_PAINT & PATCH optimization.
DRAW_PICTURE_MATRIX_PAINT & DRAW_PATCH are drawing ops.

R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/480463004
2014-08-19 06:50:36 -07:00
halcanary
97d2c0a216 Move SkReadBuffer.h and SkReader32.h out of include.
Committed: https://skia.googlesource.com/skia/+/2a51d7c74cec217195f861677de8998b382b39e4

R=mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/481053002
2014-08-19 06:27:53 -07:00
caryclark
de218041b9 add patch grid update for 64 bit arm
TBR=
NOTREECHECKS=true
NOTRY=true

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/463353003
2014-08-19 05:28:23 -07:00
borenet
639663c7ab Update SKP version to 78
Automatic commit by the RecreateSKPs bot.

TBR=

Author: borenet@google.com

Review URL: https://codereview.chromium.org/487073003
2014-08-18 21:22:20 -07:00
Mike Klein
27dc17c297 Revert "Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702."
This reverts commit 60c2a79cfa.

BUG=skia:

Review URL: https://codereview.chromium.org/481173003
2014-08-18 18:35:16 -04:00
epoger
caa80b9a46 rebaseline_server: constrain setADir/setBDir to consistently refer to single directories, not lists
Before this CL, we supported multiple setADirs/setBDirs for some operations but
not others... now we consistently support a single pair of directories.

NOTRY=true
R=stephana@google.com
TBR=stephana

Author: epoger@google.com

Review URL: https://codereview.chromium.org/480293002
2014-08-18 15:14:46 -07:00
tomhudson
60c2a79cfa Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702.
Also unifies that flag and this one into a struct so they and others can be computed together. The struct is stored const to enforce lifetime expectations. Adds a few new cases to the unit test.

BUG=skia:2700
R=mtklein@google.com, reed@google.com, robertphillips@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/364823009
2014-08-18 15:07:13 -07:00
halcanary
f128f53a5b Revert "Move SkReadBuffer.h and SkReader32.h out of include."
This reverts commit 2a51d7c74c.

Breaking Blink

NOTRY=true
R=bungeman@google.com
TBR=bungeman@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/472303006
2014-08-18 13:48:13 -07:00
mtklein
3e8232b6ef Counterproposal for skirting the BBH when the query fully contains the picture.
BUG=skia:
R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/485703002
2014-08-18 13:39:11 -07:00
stephana
3b5c86c7a2 This adds renderMode and builder as columns to the front end when looking at SKPs.
BUG=skia:2833
NOTRY=true
R=epoger@google.com

Author: stephana@google.com

Review URL: https://codereview.chromium.org/480153002
2014-08-18 13:37:59 -07:00
halcanary
2a51d7c74c Move SkReadBuffer.h and SkReader32.h out of include.
R=mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/481053002
2014-08-18 13:04:59 -07:00
ajuma
750ae26745 Expose API for whether an SkPicture contains text
BUG=chromium:399728
R=reed@google.com, nduca@chromium.org

Author: ajuma@chromium.org

Review URL: https://codereview.chromium.org/478673002
2014-08-18 12:59:55 -07:00
bsalomon
637e57e3be Fix srcAlpaWillBeOne() for coverage drawing
R=egdaniel@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/480113002
2014-08-18 11:49:38 -07:00
mtklein
62b67ae96e Start actually bounding some draw ops.
This covers most of the common draws.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/469213007
2014-08-18 11:10:37 -07:00
bungeman
ed265558a6 Fix copyright on SkTLS.h.
R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/481783002
2014-08-18 10:29:57 -07:00
robertphillips
6617d509ab Rename GPUAccelData to GrAccelData
This is calved off of (Add new API to allow layer hoisting/atlasing across picture piles
- https://codereview.chromium.org/474623002/)

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/482773002
2014-08-18 09:39:34 -07:00
borenet
81d92659cf Copy N10 GM expectations for recipe bot
BUG=skia:761
R=epoger@google.com, rmistry@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/481963002
2014-08-18 08:50:43 -07:00
robertphillips
6f294af43b Refactor GrLayerCache for new API
The only substantive change in this CL is skipping atlasing
for any layers that are involved in nesting. Prior versions
have allowed nesting layers to be atlased.

--------------------------------------------------------

All times are on Windows with a repeat count of 200.
Format is: <time in ms> (<# of glBindframebuffer calls>)

How to interpret this:

For the boogie page:

 both columns should be the same (since boogie has no
        nested layers)
 without the new API the tiled case doesn't show any real
        benefit from hoisting

For the carsvg page:

 The nesting change does increase the number of FBO
      switches but doesn't kill performance
 Because of the location & size of the layers the
      tile case does show some improvement (even
      without the new API)

boogie
-------

		   w/o nested change   w/ nested change

simple                5.62 (811)           N/A

tiled                 7.72 (811)           N/A

simple w/ hoisting    5.23 (409)        5.77 (409)
(but no caching)

tiled w/ hoisting     7.57 (809)        7.49 (809)
(but no caching)

carsvg
------

		   w/o nested change   w/ nested change

simple 		      60.37 (141990)        N/A

tiled                115.13 (256929)        N/A

simple w/ hoisting    41.57 (64570)      42.82 (72279)
(but no caching)

tiled w/ hoisting     84.24 (154352)     84.71 (165630)
(but no caching)

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/476833004
2014-08-18 08:50:03 -07:00
mtklein
479601b9a7 Small tweaks and a bug fix.
Bug fixed: I was calling paint->canComputeFastBounds() where I should have been calling fSaveStack[i].paint->canComputeFastBounds().

This suggested I factor out the paint adjusting code, now called AdjustForPaint().  This removes the getImageFilter() check for SaveLayers, which seems like an optimization we can add back later if it proves important.

We're going to want to intersect the bounds with the current clip bounds eventually, so might as well land that here too.

Plus, more const.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481543002
2014-08-18 08:45:33 -07:00
mtklein
0459cc732b Android.mk: bench_pictures -> nanobench
We're only keeping bench_pictures around for the bots now.  For human-initiated work, nanobench is the way to go.

BUG=skia:
R=djsollen@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/484663002
2014-08-18 08:44:54 -07:00
halcanary
ea4673fde6 SkImage::NewFromGenerator(SkImageGenerator*), and a unit test.
R=reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/465823003
2014-08-18 08:27:09 -07:00
mtklein
0ed4e863c0 Stop sorting the results of SkBBH::search().
We only seem to need to sort with SkQuadTree, which is not actively used by
client code.  So it's really just wasted work.  SkQuadTree is interesting, but
I'd rather disable it than slow down the production code path.

BUG=skia:2834
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/471063004
2014-08-18 08:23:19 -07:00
borenet
dc0fcbb925 Fix Android platform self-tests
Remove things related to no-longer-existing unittests, run makefile_writer_tests --rebaseline

BUG=skia:2843
R=djsollen@google.com, scroggo@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/481943002
2014-08-18 08:13:12 -07:00
reed
bbe7a2ad32 eliminate code related to SkBitmap::Config
BUG=skia:
R=reed@google.com, mike@reedtribe.org

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/483593002
2014-08-18 08:13:03 -07:00
jshin
ad77e55cc0 Add alias mapping for Noto Sans CJK for ja/hans
Chrome/Chromium OS are getting a brand new CJK fonts (Noto Sans CJK).
We want them to be used in place of common Japanese and Simplified
Chinese sans-serif fonts.

BUG=chromium:399080
TEST=With CrOS CL
(https://chromium-review.googlesource.com/#/c/212624/), web pages
using 'Simhei' and 'MSP Gothic' are rendered with Noto Sans CJK.

R=reed@chromium.org, bungeman@google.com

Author: jshin@chromium.org

Review URL: https://codereview.chromium.org/476203003
2014-08-18 08:07:51 -07:00
bungeman
0a25b2ccf8 Correct order for alignment in name iterator record.
We must be quite careful about the order of fields in a 'pragma pack(1)'.
On Android the order 'uint16_t, void*' will misalign the pointer,
potentially leading to a crash.

In the future we should move anything which is not strictly part of the
table definition outside of the packed region.

R=mtklein@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/474313002
2014-08-18 08:07:44 -07:00
reed
f92c86642a simplify SkCanvas::init()
BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/472123002
2014-08-18 08:02:43 -07:00
krajcevski
95498ed2d8 Fix typo
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/478533002
2014-08-18 08:02:33 -07:00
bungeman
ec730b9caf Remove fOrigFontID from SkScalerContextRec.
With the recent Android changes and removal of chaining, this is no longer used.

R=djsollen@google.com, reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/476713003
2014-08-18 07:57:35 -07:00
bungeman
8a98672192 Remove unused SkGlyphCache::VisitAllCaches.
R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/472153002
2014-08-18 07:57:26 -07:00
krajcevski
0f149e5a78 Add scraper to find paths that fallback to software
R=robertphillips@google.com, krajcevski@gmail.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/475433004
2014-08-18 07:52:25 -07:00
krajcevski
b1aded8edd Add flag to bench/render pictures
R=robertphillips@google.com, bsalomon@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/464423003
2014-08-18 07:52:17 -07:00