Commit Graph

8151 Commits

Author SHA1 Message Date
bungeman
c9232dcda0 Remove SK_FM_NEW_MATCH_FAMILY_STYLE_CHARACTER.
This removes the old guarded code and enables the new api
introduced with "Update fontMgr to take list of bcp47 language tags."
c20386e393 . Blink on Android is
already using the new code.

Review URL: https://codereview.chromium.org/705843004
2014-11-10 13:29:33 -08:00
scroggo
b61e206138 Add tests (and fix!) for known bad ICO files.
We previously saw crashes decoding bad ICO files. Add tests for
known bad files.

While testing, I learned that one of them still crashes. Check for
large offset and size separately to fix the crash.

BUG=skia:2878

Review URL: https://codereview.chromium.org/712123002
2014-11-10 13:12:25 -08:00
bsalomon
fe369ee34b Move GrResourceKey static functions from .h to .cpp to fix shared lib builds
TBR=robertphillips@google.com

Review URL: https://codereview.chromium.org/718493002
2014-11-10 11:59:06 -08:00
bsalomon
8b79d23f82 Use GrResourceCache2 to service content key lookups
BUG=skia:2889

Review URL: https://codereview.chromium.org/707493002
2014-11-10 10:19:06 -08:00
halcanary
8e74b1565c Fix SkTime::GetDateTime Posix implementation, add unit test.
The year was off by 1900

Review URL: https://codereview.chromium.org/714633002
2014-11-10 09:20:22 -08:00
reed
7c74885e01 flag imageinfo as srgb
intended uses:
- flag a SkSurface as sRGB (only supported by Ganesh for now)
- flag images (e.g. png or jpeg) as sRGB if the codec tells us that

wins:
- faster gamma-correct text (esp. w/ distance-fields) when we can use sRGB for text
- better color fidelity when the screen really is sRGB

Review URL: https://codereview.chromium.org/676883003
2014-11-10 08:57:21 -08:00
robertphillips
6beeb8f3cc Small refactoring of layer discovery code
This CL removes CollectLayers' reliance on having the top most picture (by removing the unused fPictureID member). This then allows making CollectLayers' API closer to that of SkRecordFillBounds in order to facilitate using them interchangeably.

Review URL: https://codereview.chromium.org/714533002
2014-11-10 08:48:29 -08:00
robertphillips
a63f32e879 Address MSAA rendering in layer hoisting
This became relevant whilst attempting to rebaseline the multipicturedraw GMs after turning on layer hoisting inside Skia.

Review URL: https://codereview.chromium.org/709943003
2014-11-10 08:10:42 -08:00
bungeman
336fdf2c5f With https://chromium.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20 blink_perf.layout regressed. It appears that the typeface cache is being missed. This is a partial revert of the Skia change which reverts the smallest amount of code to restore performance.
BUG=chromium:425566

Committed: https://skia.googlesource.com/skia/+/47eda52e8fb88f0725b401762a3e0bddc98e9fb3

Review URL: https://codereview.chromium.org/693213002
2014-11-10 07:48:55 -08:00
fmalita
8c89c528f3 Revert of Revert of SkDrawCommand scrubbing (patchset #1 id:1 of https://codereview.chromium.org/712683002/)
Reason for revert:
Chromium clients updated, this should be canary-proof now.

Original issue's description:
> Revert of SkDrawCommand scrubbing (patchset #2 id:20001 of https://codereview.chromium.org/706363002/)
>
> Reason for revert:
> Canary borkage.
>
> Original issue's description:
> > SkDrawCommand scrubbing
> >
> > Remove unused ctor, constify, etc.
> >
> > R=robertphillips@google.com
> >
> > Committed: https://skia.googlesource.com/skia/+/1931ec5b5dac68f1e452af0c65161bdce35b2dec
>
> TBR=robertphillips@google.com
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/9063ddd511f8e0d8c7454950cbc56e273678bf60

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/708333002
2014-11-08 16:18:56 -08:00
joshualitt
4973d9da4a Default geometry processor
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/ff343074b2a3fdaa5f120600e28717e366bceadd

Review URL: https://codereview.chromium.org/678953002
2014-11-08 09:24:25 -08:00
joshualitt
4b68ec08c6 simple cl to cleanup friends in GrGpu
BUG=skia:

Review URL: https://codereview.chromium.org/709003006
2014-11-07 14:11:45 -08:00
joshualitt
f4e5e3394f cleaning up geometry handling in gpu
BUG=skia:

Review URL: https://codereview.chromium.org/707953004
2014-11-07 12:58:47 -08:00
cdalton
c4650ee786 Update GrTRecorder to preserve memory allocations
Rather than freeing almost all of its memory on calls to reset(), this
change updates GrTRecorder so it keeps around enough to satisfy the
storage requirements from last time, plus up to ~50% growth. This is
based on the assumption that subsequent draw calls require roughly the
same amount of memory.

BUG=skia:

Review URL: https://codereview.chromium.org/684203003
2014-11-07 12:51:19 -08:00
fmalita
9063ddd511 Revert of SkDrawCommand scrubbing (patchset #2 id:20001 of https://codereview.chromium.org/706363002/)
Reason for revert:
Canary borkage.

Original issue's description:
> SkDrawCommand scrubbing
>
> Remove unused ctor, constify, etc.
>
> R=robertphillips@google.com
>
> Committed: https://skia.googlesource.com/skia/+/1931ec5b5dac68f1e452af0c65161bdce35b2dec

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/712683002
2014-11-07 12:26:46 -08:00
fmalita
1931ec5b5d SkDrawCommand scrubbing
Remove unused ctor, constify, etc.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/706363002
2014-11-07 12:09:20 -08:00
joshualitt
ee0ea3f0dd Revert of Default geometry processor (patchset #9 id:160001 of https://codereview.chromium.org/678953002/)
Reason for revert:
breaks nexus 5

Original issue's description:
> Default geometry processor
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/ff343074b2a3fdaa5f120600e28717e366bceadd

TBR=bsalomon@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/691313003
2014-11-07 12:08:03 -08:00
joshualitt
ff343074b2 Default geometry processor
BUG=skia:

Review URL: https://codereview.chromium.org/678953002
2014-11-07 11:47:10 -08:00
reed
7a72c6702d add patch and clicktracking to lua
BUG=skia:

Review URL: https://codereview.chromium.org/712613002
2014-11-07 10:23:55 -08:00
derekf
32f80ca382 Mesa ES 3.0 requires sized internal formats
Mesa's ES 3.0 implementation requires GL_R8 as an internal format instead
of GL_RED

Review URL: https://codereview.chromium.org/705183002
2014-11-07 09:39:27 -08:00
joshualitt
3322fa432a Refactor DrawTarget and GPU to be independent
BUG=skia:

Review URL: https://codereview.chromium.org/705593002
2014-11-07 08:48:51 -08:00
jvanverth
4736e1434a Get gpudft support working in dm, gm, nanobench and bench_pictures
Adds a new config to test distance field text.
Clean up some flags and #defines to read "distance field text",
not "distance field fonts" to be consistent with Chromium

NOTREECHECKS=true

Committed: https://skia.googlesource.com/skia/+/06ba179838ba4fe187cf290750aeeb4a02a2960b

Review URL: https://codereview.chromium.org/699453005
2014-11-07 07:12:46 -08:00
halcanary
f0de423f09 for X in {Dec,BigDec,Scalar}, SkWStream::write"X"AsText no longer mallocs
Review URL: https://codereview.chromium.org/706063002
2014-11-07 06:07:23 -08:00
cdalton
38e13adc18 Remove 1d glyph positions from nvpr text
Removes the case for x-only glyph positions from nvpr text, opting to
always send 2d glyph positions instead. The 1d glyph positions saved a
bit on memory bandwidth, but ended up a net loss because they required
more updates to the view matrix. Now we can draw an entire paragraph
without touching the GL state, whereas before we would have to update
the view matrix at every new line.

BUG=skia:

Review URL: https://codereview.chromium.org/700283002
2014-11-07 06:02:15 -08:00
jvanverth
aa30ab3079 Revert of Get gpudft support working in dm, gm, nanobench and bench_pictures (patchset #2 id:20001 of https://codereview.chromium.org/699453005/)
Reason for revert:
Not compiling in ANGLE build

Original issue's description:
> Get gpudft support working in dm, gm, nanobench and bench_pictures
>
> Adds a new config to test distance field text.
> Clean up some flags and #defines to read "distance field text",
> not "distance field fonts" to be consistent with Chromium
>
> NOTREECHECKS=true
>
> Committed: https://skia.googlesource.com/skia/+/06ba179838ba4fe187cf290750aeeb4a02a2960b

TBR=bsalomon@google.com,mtklein@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/707723005
2014-11-06 13:52:45 -08:00
jvanverth
06ba179838 Get gpudft support working in dm, gm, nanobench and bench_pictures
Adds a new config to test distance field text.
Clean up some flags and #defines to read "distance field text",
not "distance field fonts" to be consistent with Chromium

NOTREECHECKS=true

Review URL: https://codereview.chromium.org/699453005
2014-11-06 13:38:52 -08:00
joshualitt
2c93efeb6f Clip in grdrawtarget
NOTREECHECKS=true
BUG=skia:

Review URL: https://codereview.chromium.org/685883003
2014-11-06 12:57:13 -08:00
egdaniel
e27065ae24 Send coverage VA as floats instead of bytes
NOTREECHECKS=True

BUG=skia:

Review URL: https://codereview.chromium.org/700943005
2014-11-06 08:00:48 -08:00
bsalomon
3343557421 Add mock context and use in ResourceCacheTest.
BUG=skia:2889

Committed: https://skia.googlesource.com/skia/+/820dd6c335411aad889c1d7e8a857642ecd87e30

Review URL: https://codereview.chromium.org/702083003
2014-11-05 14:47:42 -08:00
bsalomon
fdcf2c0863 Revert of Add mock context and use in ResourceCacheTest. (patchset #4 id:60001 of https://codereview.chromium.org/702083003/)
Reason for revert:
Breaking tests

Original issue's description:
> Add mock context and use in ResourceCacheTest.
>
> BUG=skia:2889
>
> Committed: https://skia.googlesource.com/skia/+/820dd6c335411aad889c1d7e8a857642ecd87e30

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2889

Review URL: https://codereview.chromium.org/704563004
2014-11-05 12:30:32 -08:00
bsalomon
820dd6c335 Add mock context and use in ResourceCacheTest.
BUG=skia:2889

Review URL: https://codereview.chromium.org/702083003
2014-11-05 12:09:45 -08:00
mtklein
225fb98e1e Avoid dec = -dec overflow when appending most negative signed integers.
BUG=skia:3096

Review URL: https://codereview.chromium.org/700953003
2014-11-05 11:35:21 -08:00
mtklein
e974c6244c Whitelist intentionally racy TRACE_EVENT reads and writes.
Chrome's tracing framework appears to be intentionally racy on its
quick-reject checks, trading some data loss for better performance
when disabled.  People will never notice the data loss, but TSAN does.
Let's assuage TSAN with some annotations.

The 'volatile' val in SK_ANNOTATE_UNPROTECTED_WRITE was making this
not compile, but that volatile doesn't really make sense there: the value we're
writing is not what we care about, it's the destination.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot

No API changes.
TBR=reed

BUG=skia:

Review URL: https://codereview.chromium.org/702883002
2014-11-05 08:03:27 -08:00
egdaniel
a3d3065eea Revert of Bisect Mac performance regression. (patchset #6 id:100001 of https://codereview.chromium.org/693213002/)
Reason for revert:
Block deps roll by breaking webkit test hit-test-counts on mac.

Original issue's description:
> With https://chromium.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20 blink_perf.layout regressed. It appears that the typeface cache is being missed. This is a partial revert of the Skia change which reverts the smallest amount of code to restore performance.
>
> BUG=chromium:425566
>
> Committed: https://skia.googlesource.com/skia/+/47eda52e8fb88f0725b401762a3e0bddc98e9fb3

TBR=reed@google.com,bungeman@google.com
NOTREECHECKS=true
NOTRY=true
BUG=chromium:425566

Review URL: https://codereview.chromium.org/683753003
2014-11-05 07:40:07 -08:00
bsalomon
63b2196286 Workaround for PowerVR clear issue.
BUG=skia:

Review URL: https://codereview.chromium.org/701573002
2014-11-05 07:05:34 -08:00
egdaniel
21402e3851 Bug fix for cull_line in SkDashPathEffect.
In cull_line we must also check if both points are the same. Otherwise we
fail the assert in the else "SkASSERT(dy && !dx)".

This is currently blocking the roll as it fails a webkit test.

BUG=skia:

Review URL: https://codereview.chromium.org/703783002
2014-11-05 05:02:27 -08:00
robertphillips
9f2251c73e Crop the fast path dashed lines to the cull rect
Without:

maxrss  loops   min     median  mean    max     stddev  samples         config  bench
  56M   1       13.3ms  13.6ms  13.6ms  14.2ms  2%      Ooooo.....      8888    GM_dashing5_bw
  56M   13      390us   417us   416us   459us   5%      ooooO..o.o      gpu     GM_dashing5_bw
  56M   1       13.4ms  13.9ms  14.1ms  15ms    3%      Oooo..ooOo      8888    GM_dashing5_aa
  56M   13      402us   421us   416us   425us   2%      Ooo.ooOOOO      gpu     GM_dashing5_aa

With:

  40M   1       1.53ms  1.54ms  1.54ms  1.55ms  0%      oo.O...o..      8888    GM_dashing5_bw
  40M   12      407us   412us   415us   445us   3%      ...Oo.....      gpu     GM_dashing5_bw
  40M   1       1.7ms   1.7ms   1.7ms   1.72ms  0%      o.O.......      8888    GM_dashing5_aa
  43M   13      405us   409us   409us   415us   1%      ooo.Ooo..o      gpu     GM_dashing5_aa

The GM images (including the new one) are the same with and without this CL.

BUG=428296

Review URL: https://codereview.chromium.org/699623003
2014-11-04 13:33:50 -08:00
jvanverth
0e66aaa503 DFText: fix placement of glyphs when we fall back to paths
Rendering a glyph with a path wants to place it at the (sx, sy) we get
as input to the method, but we add (dx, dy) for the clipRect check.
Hence, we need to subtract that out before we render the path.

Review URL: https://codereview.chromium.org/699283003
2014-11-04 13:32:53 -08:00
reed
7b8646669f update slides
BUG=skia:

Review URL: https://codereview.chromium.org/686853005
2014-11-04 13:24:47 -08:00
piotaixr
2bf8d09689 Revert of Override SkCanvas::drawImage() in SkDeferredCanvas and SkGPipe (patchset #8 id:140001 of https://codereview.chromium.org/613673005/)
Reason for revert:
The patch is breaking the telemetry blink build on some windows configurations

Original issue's description:
> Override SkCanvas::drawImage() in SkDeferredCanvas and SkGPipe
>
> Depend on https://codereview.chromium.org/663233002
>
> BUG=skia:2947
>
> Committed: https://skia.googlesource.com/skia/+/687732fe046c9cfec940f2d7f661cd97651d10a8
>
> Committed: https://skia.googlesource.com/skia/+/9bb7539a59ab15749fe26fecfec05330cffae684

BUG=skia:2947, 426708

Review URL: https://codereview.chromium.org/705633002
2014-11-04 13:21:41 -08:00
danakj
8f757f540a Add tracing to the SkCanvas drawFoo() methods to find long draw ops.
BUG=skia:3088

Review URL: https://codereview.chromium.org/702473004
2014-11-04 11:48:44 -08:00
reed
36c9c11ed9 add more typeface methods to lua
BUG=skia:
NOTRY=True
TBR=

Review URL: https://codereview.chromium.org/697053004
2014-11-04 10:58:42 -08:00
bungeman
4b86bacb04 Allow all font weights on Android and respect overrides.
This removes the code which forces 400 and 700 weights only,
and also overrides the font weight with the configured weight.

Review URL: https://codereview.chromium.org/694533006
2014-11-04 10:54:32 -08:00
bungeman
47eda52e8f With https://chromium.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20 blink_perf.layout regressed. It appears that the typeface cache is being missed. This is a partial revert of the Skia change which reverts the smallest amount of code to restore performance.
BUG=chromium:425566

Review URL: https://codereview.chromium.org/693213002
2014-11-04 10:27:35 -08:00
scroggo
ccae588932 Include SkTypes so that SK_SUPPORT_GPU is meaningful.
For the Android framework build, we get our defines from
SkUserConfig, rather than from the makefile, so we need to
include it (via SkTypes) before we can use our defines.

Fixes Android framework build.

Review URL: https://codereview.chromium.org/700893002
2014-11-04 08:11:07 -08:00
jvanverth
f7007b023d Enable distance field path rendering in Chrome.
- Add stat tracking for df-renderable paths
- Modify GPU rasterization veto to account for df-renderable paths
- Remove #define hiding df paths from Chromium and Android

BUG=skia:2935

Review URL: https://codereview.chromium.org/685113003
2014-11-04 07:59:01 -08:00
joshualitt
d1aa8ff870 removing setVertexArraySource from drawtarget
BUG=skia:

Review URL: https://codereview.chromium.org/699733002
2014-11-04 07:47:55 -08:00
robertphillips
b32f0ad891 Fix layer cache memory leak
The issue was that, with caching disabled, the layer cache code was removing layers outside of a purge (i.e., in unlock) but not correctly cleaning up the GrPictureInfo objects (as is done in purgePlot).

Review URL: https://codereview.chromium.org/703643002
2014-11-04 06:46:11 -08:00
reed
5698f91d60 remove dead SK_DISABLE_DASHING_OPTIMIZATION flag
BUG=skia:

Review URL: https://codereview.chromium.org/698003004
2014-11-04 05:17:39 -08:00
reed
bb8a0ababa update slide content
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/698563004
2014-11-03 22:32:08 -08:00
reed
1b6ab4417e add textblobs to lua
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/688363003
2014-11-03 19:55:41 -08:00
mtklein
ecf987559b Turn SkTaskGroups back on.
Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."

NOTREECHECKS=true

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/2100c5ed7a5e5470a04e7af7309d8bd3fc4249f7

Review URL: https://codereview.chromium.org/687263007
2014-11-03 17:41:08 -08:00
mtklein
db8d0e5bb0 Manually load CONDITION_VARIABLE methods on Windows, checking for failure (XP).
Tested by running DM on XP.  Before this patch, it fails at startup (even just out/Debug/dm --help).  Now it asserts for other reasons later on in user code, which is just fine by me.

The net effect is that SkTaskGroups will always be synchronous on XP.  That's not ideal, but a step up from crashing.

CQ_EXTRA_TRYBOTS=client.skia:Test-Win7-ShuttleA-HD2000-x86-Release-Trybot,Test-Win7-ShuttleA-HD2000-x86_64-Release-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/700683002
2014-11-03 17:25:54 -08:00
reed
615c593780 move SkTextBox into utils
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/696293005
2014-11-03 14:55:40 -08:00
bsalomon
87a94eb163 Rename and clarify semantics of GrContext::resolveRenderTarget.
Review URL: https://codereview.chromium.org/696293004
2014-11-03 14:28:32 -08:00
joshualitt
a702415d9e Temporary fix to remove drawrect call from GpuGL
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/d4a5c2028117c100ccf44263c0118a0b4745f627

Review URL: https://codereview.chromium.org/694933002
2014-11-03 14:16:35 -08:00
jvanverth
ada68ef2dc Improve quality of distance field rendering
- Update spacing of LODs to get better results scaling up to 256
- Remove unnecessary "bolding" from dftext
- Add debug colors for dftext LODs

BUG=skia:2933,skia:2935

Review URL: https://codereview.chromium.org/703463002
2014-11-03 14:00:24 -08:00
derekf
a6ca5a002e Detect Mesa OpenGL ES
Original-Author: Henry Song <henrysong@samsung.com>

Review URL: https://codereview.chromium.org/700633002
2014-11-03 13:36:40 -08:00
bsalomon
0537f290c5 Revert changes to GrContext::resolveRenderTarget
TBR=joshualitt@google.com,egdaniel@google.com

Review URL: https://codereview.chromium.org/700483003
2014-11-03 13:32:00 -08:00
danakj
d239d42514 Add comments to SkRecordDraw to help people follow.
The calls to visit() to execute the SkRecord::Draw::operator() code path
is not clear to read, so adding some comments to help other new-comers
follow this through to the SkCanvas calls.

R=mtklein@chromium.org

Review URL: https://codereview.chromium.org/695403003
2014-11-03 12:43:30 -08:00
joshualitt
50408adfd2 Test factory uses the inorder draw buffer
BUG=skia:

Review URL: https://codereview.chromium.org/696353002
2014-11-03 12:31:15 -08:00
bsalomon
89c62980c1 Don't allow renderTarget==NULL to GrContext::clear() and friends.
Review URL: https://codereview.chromium.org/680413005
2014-11-03 12:08:42 -08:00
bsalomon
bcaefb0622 Remove GrGLTexID
BUG=skia:2889

Review URL: https://codereview.chromium.org/695133003
2014-11-03 11:07:12 -08:00
egdaniel
37b4d866b1 Force input coverage to be only a byte in gpu shaders.
Prime coverage invariant output calculations with single component

BUG=skia:

Review URL: https://codereview.chromium.org/649783003
2014-11-03 10:07:07 -08:00
bsalomon
37dd331b20 Add class GrGLTextureRenderTarget for GL texture/rendertarget objects
BUG=skia:2889

Review URL: https://codereview.chromium.org/695813003
2014-11-03 08:47:23 -08:00
robertphillips
4d52afef5c Shrink saveLayer device bounds when it supplies an explicit bounds and has a complex paint
This CL shrinks the bound computed for saveLayers that possess both an explicit
bound and a complex paint (e.g., one that affects transparent black). In this
case the bound of the layer should be the clipped explicit bound rather then
the clip prior/after the saveLayer/restore block.

In the following the first bound is the currently computed bound
while the second is the new/desired one:

For a 100x100 picture

saveLayer (no bound, no paint) [ 0 0 100 100 ]  [ 50 50 100 100 ]
  setMatrix (translate 50, 50) [ 0 0 100 100 ] [ 50 50 100 100 ]
  saveLayer (bound of 0, 0, 50, 50 - complex paint) [ 0 0 100 100 ] [ 50 50 100 100 ]
  restore [ 0 0 100 100 ] [ 50 50 100 100 ]
restore [ 0 0 100 100 ] [ 50 50 100 100 ]

Review URL: https://codereview.chromium.org/696763002
2014-11-03 08:19:44 -08:00
robertphillips
66cad7669b Always enable layer hoisting in Skia
This will prevent bit rot of the layer hoisting code and position us better for turning this on in Chromium.

Review URL: https://codereview.chromium.org/698493002
2014-11-03 07:19:30 -08:00
joshualitt
a393127de5 Revert of Temporary fix to remove drawrect call from GpuGL (patchset #6 id:90005 of https://codereview.chromium.org/694933002/)
Reason for revert:
patch breaks angle bots and K1

Original issue's description:
> Temporary fix to remove drawrect call from GpuGL
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d4a5c2028117c100ccf44263c0118a0b4745f627

TBR=bsalomon@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/693223002
2014-10-31 16:32:22 -07:00
joshualitt
d4a5c20281 Temporary fix to remove drawrect call from GpuGL
BUG=skia:

Review URL: https://codereview.chromium.org/694933002
2014-10-31 15:49:46 -07:00
joshualitt
5c55fef032 GrContext no longer ever draws on Gpu
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/7a75e5230872732e71ea99058d9afe5d4b6758b0

Review URL: https://codereview.chromium.org/683733005
2014-10-31 14:04:35 -07:00
joshualitt
92e496f96a Beginning to refactor nvpr code
BUG=skia:

Review URL: https://codereview.chromium.org/687563008
2014-10-31 13:56:50 -07:00
jvanverth
2faa228435 Some distance field text optimizations.
- Add clipRect check
- Remove creation of scalerContext to check for color fonts in canDraw()
   (no longer needed)

BUG=skia:2933

Review URL: https://codereview.chromium.org/696503004
2014-10-31 12:59:57 -07:00
joshualitt
b9e8230b50 Revert of GrContext no longer ever draws on Gpu (patchset #7 id:120001 of https://codereview.chromium.org/683733005/)
Reason for revert:
breaks some android bots

Original issue's description:
> GrContext no longer ever draws on Gpu
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7a75e5230872732e71ea99058d9afe5d4b6758b0

TBR=bsalomon@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/694983002
2014-10-31 12:20:08 -07:00
joshualitt
7a75e52308 GrContext no longer ever draws on Gpu
BUG=skia:

Review URL: https://codereview.chromium.org/683733005
2014-10-31 11:34:53 -07:00
mtklein
e9f7fbfaee Revert of Turn SkTaskGroups back on. (patchset #1 id:1 of https://codereview.chromium.org/687263007/)
Reason for revert:
precautionary revert.  may have caused WinXP crashes on Chrome tree: https://code.google.com/p/chromium/issues/detail?id=429207

Original issue's description:
> Turn SkTaskGroups back on.
>
> Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
> Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."
>
> NOTREECHECKS=true
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/2100c5ed7a5e5470a04e7af7309d8bd3fc4249f7

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/693993002
2014-10-31 11:30:22 -07:00
joshualitt
3bdd7dce5e small fix for cache clear
BUG=skia:

Review URL: https://codereview.chromium.org/695873002
2014-10-31 08:27:39 -07:00
reed
c17c6582ec SK_USE_SCALED_FONTMETRICS for correct scaling
related blink change:
https://codereview.chromium.org/691133002

Review URL: https://codereview.chromium.org/692083002
2014-10-31 08:20:46 -07:00
sugoi
8b602ddd59 Objects should be unrefed instead of deleted
When an error occurs reading a flattenable object, it should be unrefed instead of deleted because, in the case of SkXferMode, for example, we'd actually be deleting a cached object kept in a static array.

BUG=428789

Review URL: https://codereview.chromium.org/695633003
2014-10-31 07:16:16 -07:00
tfarina
38406c82b9 Cleanup: Go with SkDebugf instead of GrPrintf.
Since GrPrintf is just defined to SkDebugf, we can go with the later
directly.

BUG=None
TEST=None
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/695663003
2014-10-31 07:11:12 -07:00
egdaniel
ed3af6648f Use Color Processor for color bitmap text draws on gpu.
This change is here since previously color bitmap text was rendered using a
geometry processor in the coverage stage. The problem with this is that we
cannot correctly do xfer modes with this method. So I now make color bitmap text
draw using a color stage in the same was as a draw bitmap call.

One issue that arrises from this fix is that we end up adding this final color
processor after any previous color processors. Thus if we have a custom blend
implemented as a color processor it will be before this text one and we won't
blend correctly. This issue will get fixed once an xfer processor is fully
implemented. I have hacked a test locally to show that if we can add the text
color processor to the begining of the color stages we do blend correctly in all
cases (so the xfer processor will be a fix).

BUG=skia:

Review URL: https://codereview.chromium.org/689923004
2014-10-31 06:55:45 -07:00
mtklein
2100c5ed7a Turn SkTaskGroups back on.
Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."

NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/687263007
2014-10-31 06:38:25 -07:00
robertphillips
d8aa7b74c8 Upgrade GPUOptimize
This will be a bit hairy to review.

The FillBounds and CollectLayers code has diverged significantly resulting in the rendering path seeing different bounds than the hoisting path. This CL merges the FillBounds changes into CollectLayers. A follow on CL will, hopefully, find a way to layer CollectLayers on top of FillBounds.

The only code in CollectLayers that is different from FillBounds is bracketed by "LAYER HOISTING" comments.

NOTREECHECKS=true

Review URL: https://codereview.chromium.org/685263004
2014-10-30 16:45:02 -07:00
sugoi
9bde31e95d Trying to be consistent when members are allowed to be NULL
Got a few crashes running the fuzzer locally, all related to handling NULL members/parameters in an inconsistent way.

BUG=skia:

Review URL: https://codereview.chromium.org/675013003
2014-10-30 14:05:15 -07:00
djsollen
058f01eb68 Cleanup conversion that the new NDK compiler tries to over optimize.
This allows us to upgrade to NDK r10c as the dftext gm no longer fails
when compiled with -O2.

Review URL: https://codereview.chromium.org/690053002
2014-10-30 11:54:43 -07:00
robertphillips
0882fdcc15 Add return value on GrRecordReplaceDraw
This assists debugging layer hoisting errors (e.g., when a layer is hoisted but not actually used in subsequent rendering).

Review URL: https://codereview.chromium.org/694533004
2014-10-30 11:54:31 -07:00
robertphillips
189fc98e08 Fix member variable naming
This renaming was missed in (MultiPictureDraw is taskgroup aware - https://codereview.chromium.org/684923002)

TBR=reed@google.com

Review URL: https://codereview.chromium.org/654293005
2014-10-30 11:49:37 -07:00
bungeman
967937c282 Combine nameFontStyleProc and FindByNameStyle.
These two functions do the same thing, combine them.

Review URL: https://codereview.chromium.org/688133003
2014-10-30 11:49:27 -07:00
junov
a41d3c33bc Make RTree handle the case where the playback canvas has empty clip bounds
BUG=skia:3074

Review URL: https://codereview.chromium.org/678303004
2014-10-30 11:44:20 -07:00
robertphillips
225a627ccb Fix bug in aggressive layer cache purging
A picture may possess many layers that get placed in one plot of the atlas. In this case we can only remove the plot from the plotUsage tracking structure when all the layers belonging to the picture in that plot have been removed.

Review URL: https://codereview.chromium.org/654463004
2014-10-30 11:39:19 -07:00
djsollen
a3a706fcd4 Cleanup android to ensure it can compile with clang
Review URL: https://codereview.chromium.org/694533002
2014-10-30 11:39:13 -07:00
reed
f037e0bf13 allow SkUserConfig.h to control NOGPU
BUG=skia:

Review URL: https://codereview.chromium.org/685243002
2014-10-30 11:34:15 -07:00
reed
789e327ad9 tell our grcontext to abandon its backend
BUG=skia:

Review URL: https://codereview.chromium.org/692803003
2014-10-30 11:29:08 -07:00
robertphillips
650076027f Revert of scale xmin and xmax for FontMetrics (patchset #1 id:1 of https://codereview.chromium.org/685153004/)
Reason for revert:
Experimental revert to see if this is blocking the DEPS roll

Original issue's description:
> scale xmin and xmax for FontMetrics
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/79c276e4fd93d9c9fd57a45bc6929c48e4415b2f

TBR=mtklein@google.com,bungeman@google.com,reed@google.com,reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/691033002
2014-10-30 09:59:43 -07:00
mtklein
7f36ae1314 Disable SkTaskGroup in SkMultiPictureDraw temporarily.
Think this should be enough to get rolling again.

NOTREECHECKS=true

Review URL: https://codereview.chromium.org/687273006
2014-10-30 07:19:11 -07:00
jvanverth
b61283f9c7 Support multiple scales for dfpaths.
Adds miplevel as part of dfpath key, and scale factor so we know
how much to adjust to fit desired scale.

BUG=skia:2935

Review URL: https://codereview.chromium.org/687283002
2014-10-30 05:57:21 -07:00
joshualitt
7a6184fdf7 cleanup reentrance logic in CMM
BUG=skia:

Review URL: https://codereview.chromium.org/684223002
2014-10-29 18:29:27 -07:00
mtklein
ed167acb7b Revert of Use SkTypeface::getBounds() in bounding-box calculations. (patchset #5 id:80001 of https://codereview.chromium.org/680363003/)
Reason for revert:
Mac mini asserting

Original issue's description:
> Use SkTypeface::getBounds() in bounding-box calculations.
>
> This should produce tighter conservative bounding boxes for text than the
> approximation code it replaces.
>
> Recording performance is neutral on my desktop.  Playback performance
> improves by up to 15% on text heavy pages, e.g.
>
>   desk_pokemonwiki.skp_1 3.24ms -> 2.83ms  0.87x
>         desk_baidu.skp_1 1.91ms -> 1.58ms  0.83x
>
> Committed: https://skia.googlesource.com/skia/+/bf8dc343df4fbdcb8af546eb68b640e011a33489
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/c51add674dfb89b988a7fbc05f41838c203f9dcd

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/690833002
2014-10-29 16:07:11 -07:00
reed
67c71203a4 use SkTaskGroup::batch
BUG=skia:

Review URL: https://codereview.chromium.org/688753002
2014-10-29 15:44:25 -07:00
mtklein
c51add674d Use SkTypeface::getBounds() in bounding-box calculations.
This should produce tighter conservative bounding boxes for text than the
approximation code it replaces.

Recording performance is neutral on my desktop.  Playback performance
improves by up to 15% on text heavy pages, e.g.

  desk_pokemonwiki.skp_1 3.24ms -> 2.83ms  0.87x
        desk_baidu.skp_1 1.91ms -> 1.58ms  0.83x

Committed: https://skia.googlesource.com/skia/+/bf8dc343df4fbdcb8af546eb68b640e011a33489

CQ_EXTRA_TRYBOTS=client.skia:Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot

Review URL: https://codereview.chromium.org/680363003
2014-10-29 15:36:38 -07:00
mtklein
e71cd54ed4 SkTaskGroup::batch(fn, args, N)
Porting QuiltTask isn't important in itself; this is mostly an API feeler.

BUG=skia:

Review URL: https://codereview.chromium.org/689673003
2014-10-29 14:17:13 -07:00
robertphillips
4ab5a9048c Discard atlas after every MultiPictureDraw::draw
This is intended to prevent ghosting on tiled architectures.

This CL also defers creation of the atlas (and its texture) until it is actually needed.

Committed: https://skia.googlesource.com/skia/+/6d5b5455743414ddb11d2b8c1fe9d7959f2b853d

Review URL: https://codereview.chromium.org/678403002
2014-10-29 13:56:03 -07:00
reed
79c276e4fd scale xmin and xmax for FontMetrics
BUG=skia:

Review URL: https://codereview.chromium.org/685153004
2014-10-29 13:43:50 -07:00
bungeman
7316b100df Revert of scale xmin/xmax etc in fontmetrics (patchset #1 id:1 of https://codereview.chromium.org/690533004/)
Reason for revert:
Breaking tests in Chromium, and not in a good way.

Original issue's description:
> scale xmin/xmax etc in fontmetrics
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/f8c2feffd68b3262f3c039ec1bd517c5f6cc9e4c

TBR=reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/686263002
2014-10-29 12:46:52 -07:00
bsalomon
b15b4c1ce0 Separate out GrSurfaceConfig's fields from other structs used to create GrGL* subclasses of GrSurface.
BUG=skia:2889

Review URL: https://codereview.chromium.org/691523002
2014-10-29 12:41:57 -07:00
humper
9c30ea4c86 remove now unused (by Chrome) ifdef
BUG=skia:

Review URL: https://codereview.chromium.org/688043002
2014-10-29 12:41:39 -07:00
reed
89889b6939 MultiPictureDraw is taskgroup aware.
SampleApp is multipicturedraw aware.

BUG=skia:

Review URL: https://codereview.chromium.org/684923002
2014-10-29 12:36:45 -07:00
senorblanco
8f3937d9fc Fix bounds computation of all 0-input filters.
The SkRectShaderImageFilter had the same bug as previously fixed for
SkBitmapSource and SkPictureImageFilter. Rather than copy-and-paste
the implementation, this change makes all filters with 0 inputs return
their source bounds, instead of returning false.

BUG=427251

Review URL: https://codereview.chromium.org/681643003
2014-10-29 12:36:32 -07:00
joshualitt
329bf4862e BUG=skia:
Review URL: https://codereview.chromium.org/683933003
2014-10-29 12:31:28 -07:00
mtklein
fa494718d4 SkTaskGroup::add(fn, arg)
NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/687953003
2014-10-29 09:21:47 -07:00
joshualitt
6db519c424 clear stencil clip on draw target
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/683673002
2014-10-29 08:48:19 -07:00
mtklein
27f965a577 Revert of Use SkTypeface::getBounds() in bounding-box calculations. (patchset #3 id:40001 of https://codereview.chromium.org/680363003/)
Reason for revert:
http://build.chromium.org/p/client.skia/builders/Test-Win7-ShuttleA-HD2000-x86-Debug/builds/97/steps/nanobench/logs/stdio

Original issue's description:
> Use SkTypeface::getBounds() in bounding-box calculations.
>
> This should produce tighter conservative bounding boxes for text than the
> approximation code it replaces.
>
> Recording performance is neutral on my desktop.  Playback performance
> improves by up to 15% on text heavy pages, e.g.
>
>   desk_pokemonwiki.skp_1 3.24ms -> 2.83ms  0.87x
>         desk_baidu.skp_1 1.91ms -> 1.58ms  0.83x
>
> Committed: https://skia.googlesource.com/skia/+/bf8dc343df4fbdcb8af546eb68b640e011a33489

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/685173002
2014-10-29 08:33:38 -07:00
robertphillips
9f36b8719b Revert of Discard atlas after every MultiPictureDraw::draw (patchset #4 id:60001 of https://codereview.chromium.org/678403002/)
Reason for revert:
Breaking bots

Original issue's description:
> Discard atlas after every MultiPictureDraw::draw
>
> This is intended to prevent ghosting on tiled architectures.
>
> This CL also defers creation of the atlas (and its texture) until it is actually needed.
>
> Committed: https://skia.googlesource.com/skia/+/6d5b5455743414ddb11d2b8c1fe9d7959f2b853d

TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/687233002
2014-10-29 08:17:36 -07:00
mtklein
bf8dc343df Use SkTypeface::getBounds() in bounding-box calculations.
This should produce tighter conservative bounding boxes for text than the
approximation code it replaces.

Recording performance is neutral on my desktop.  Playback performance
improves by up to 15% on text heavy pages, e.g.

  desk_pokemonwiki.skp_1 3.24ms -> 2.83ms  0.87x
        desk_baidu.skp_1 1.91ms -> 1.58ms  0.83x

Review URL: https://codereview.chromium.org/680363003
2014-10-29 08:12:08 -07:00
robertphillips
6d5b545574 Discard atlas after every MultiPictureDraw::draw
This is intended to prevent ghosting on tiled architectures.

This CL also defers creation of the atlas (and its texture) until it is actually needed.

Review URL: https://codereview.chromium.org/678403002
2014-10-29 08:05:21 -07:00
reed
f8c2feffd6 scale xmin/xmax etc in fontmetrics
BUG=skia:

Review URL: https://codereview.chromium.org/690533004
2014-10-29 07:53:24 -07:00
joshualitt
79f8faeea2 OptState owns program descriptor
BUG=skia:

Review URL: https://codereview.chromium.org/674543004
2014-10-28 17:59:26 -07:00
bungeman
14df833984 Extend SkFontMgr_Custom to cover ttc, otf, pfb.
Adds ability to test ScanFont with Type1 (pfb) fonts
and fonts with multiple faces (ttc).

Committed: https://skia.googlesource.com/skia/+/ee0c2e4fd429424beaa35f29e7f656997ba3f115

Review URL: https://codereview.chromium.org/672723002
2014-10-28 15:07:23 -07:00
bsalomon
f2703d83da rename GrTextureDesc->GrSurfaceDesc, GrTextureFlags->GrSurfaceFlags
Review URL: https://codereview.chromium.org/682223002
2014-10-28 14:33:06 -07:00
bungeman
32501a1bd4 Revert of Extend SkFontMgr_Custom to cover ttc, otf, pfb. (patchset #2 id:20001 of https://codereview.chromium.org/672723002/)
Reason for revert:
Reverting as this appears to be causing issues with color fonts on Android.

Original issue's description:
> Extend SkFontMgr_Custom to cover ttc, otf, pfb.
>
> Adds ability to test ScanFont with Type1 (pfb) fonts
> and fonts with multiple faces (ttc).
>
> Committed: https://skia.googlesource.com/skia/+/ee0c2e4fd429424beaa35f29e7f656997ba3f115

TBR=reed@google.com,halcanary@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/685803003
2014-10-28 12:03:55 -07:00
piotaixr
5ae89d1fa8 Removing dead code from CanvasTest
BUG=skia:3054

Review URL: https://codereview.chromium.org/681083002
2014-10-28 11:13:59 -07:00
jvanverth
6d22ecaa71 Distance field path optimizations and clean up.
Adds the following:
- Use cached geometry processor rather than recreating all the time.
- Use context's quad index buffer.

Review URL: https://codereview.chromium.org/683923002
2014-10-28 11:10:49 -07:00
hcm
27c46a08a9 Revert of harden pathops for pathological test (patchset #19 id:410001 of https://codereview.chromium.org/633393002/)
Reason for revert:
Compile errors on bots

Original issue's description:
> These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions.
>
> The fixes include
> - detect when finding the active top loops between two possible answers
> - preflight chasing winding to ensure answer is consistent
> - binary search more often when quadratic intersection fails
> - add more failure paths when an intersect is missed
>
> While this fixes the chrome bug, reenabling path ops in svg should be deferred until additional fixes are landed.
>
> TBR=
> BUG=421132
>
> Committed: https://skia.googlesource.com/skia/+/6f726addf3178b01949bb389ef83cf14a1d7b6b2

TBR=caryclark@google.com
NOTREECHECKS=true
NOTRY=true
BUG=421132

Review URL: https://codereview.chromium.org/686843002
2014-10-28 10:55:54 -07:00
bungeman
ee0c2e4fd4 Extend SkFontMgr_Custom to cover ttc, otf, pfb.
Adds ability to test ScanFont with Type1 (pfb) fonts
and fonts with multiple faces (ttc).

Review URL: https://codereview.chromium.org/672723002
2014-10-28 10:46:06 -07:00
caryclark
6f726addf3 These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions.
The fixes include
- detect when finding the active top loops between two possible answers
- preflight chasing winding to ensure answer is consistent
- binary search more often when quadratic intersection fails
- add more failure paths when an intersect is missed

While this fixes the chrome bug, reenabling path ops in svg should be deferred until additional fixes are landed.

TBR=
BUG=421132

Review URL: https://codereview.chromium.org/633393002
2014-10-28 10:33:09 -07:00
joshualitt
0e602827df Working patch to remove constant attributes. This may cause some gm mismatches, I will rebaseline tonight.
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/84c94c0dfd1e12e97d8a835882dda575f36e41d2

Committed: https://skia.googlesource.com/skia/+/95f5194abce19e8ed875f3495fd16c79a9b931b4

Review URL: https://codereview.chromium.org/678073005
2014-10-28 10:27:44 -07:00
joshualitt
98102a8f79 Revert of Patch to remove constant attributes (patchset #8 id:120002 of https://codereview.chromium.org/678073005/)
Reason for revert:
I'll checkin tonight when the tree is quieter

Original issue's description:
> Working patch to remove constant attributes.  This may cause some gm mismatches, I will rebaseline tonight.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/84c94c0dfd1e12e97d8a835882dda575f36e41d2
>
> Committed: https://skia.googlesource.com/skia/+/95f5194abce19e8ed875f3495fd16c79a9b931b4

TBR=bsalomon@google.com,egdaniel@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/683203002
2014-10-28 09:08:35 -07:00
joshualitt
b44293e712 aa rect renderer takes a gpu on construction
BUG=skia:

Review URL: https://codereview.chromium.org/683483004
2014-10-28 08:12:19 -07:00
piotaixr
e5909d3d69 Override SkCanvas::drawImage[Rect]() in SkProxyCanvas
BUG=skia:2947

Review URL: https://codereview.chromium.org/679293002
2014-10-28 08:10:42 -07:00
joshualitt
95f5194abc Working patch to remove constant attributes. This may cause some gm mismatches, I will rebaseline tonight.
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/84c94c0dfd1e12e97d8a835882dda575f36e41d2

Review URL: https://codereview.chromium.org/678073005
2014-10-28 07:54:54 -07:00
robertphillips
fd61ed0d79 Alter layer hoisting to only hoist layers for one canvas at a time
This CL alters layer hoisting to defer creation of the free floating layers until they are actually needed (rather than creating _all_ the hoisted layers at the start).

It also fixes a pre vs. post Concat bug with how matrices were being accumulated.

BUG=skia:2315

Review URL: https://codereview.chromium.org/657383004
2014-10-28 07:21:44 -07:00
egdaniel
a703b841e3 Add Geometry processor to srcAlphaWillBeOne check.
BUG=skia:

Review URL: https://codereview.chromium.org/681333002
2014-10-28 07:06:36 -07:00
hcm
4396fa594e Revert of Use approximate scratch textures for image filters. (patchset #2 id:20001 of https://codereview.chromium.org/679113004/)
Reason for revert:
Continued GM failures

Original issue's description:
> Use approximate scratch textures for image filters.
>
> Committed: https://skia.googlesource.com/skia/+/96c60686eef6fc514feba6136f1b475f71dbf3ec
>
> Committed: https://skia.googlesource.com/skia/+/50a140563c5960acb2479d2be7c437d146963b3f

TBR=senorblanco@google.com,senorblanco@chromium.org,bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/681183002
2014-10-27 21:43:30 -07:00
hcm
d0f1969100 Revert of Fix bounds computation of all 0-input filters. (patchset #2 id:20001 of https://codereview.chromium.org/681643003/)
Reason for revert:
try again

Original issue's description:
> Fix bounds computation of all 0-input filters.
>
> The SkRectShaderImageFilter had the same bug as previously fixed for
> SkBitmapSource and SkPictureImageFilter. Rather than copy-and-paste
> the implementation, this change makes all filters with 0 inputs return
> their source bounds, instead of returning false.
>
> BUG=427251
>
> Committed: https://skia.googlesource.com/skia/+/ba036cc82b5a543a13cafd11a19ba0e3087fca38

TBR=bsalomon@google.com,senorblanco@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=427251

Review URL: https://codereview.chromium.org/678273002
2014-10-27 20:55:01 -07:00
joshualitt
9f2825f249 Revert of Patch to remove constant attributes (patchset #6 id:100001 of https://codereview.chromium.org/678073005/)
Reason for revert:
Breaks the K1

Original issue's description:
> Working patch to remove constant attributes.  This may cause some gm mismatches, I will rebaseline tonight.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/84c94c0dfd1e12e97d8a835882dda575f36e41d2

TBR=bsalomon@google.com,egdaniel@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/679363002
2014-10-27 17:56:18 -07:00
joshualitt
84c94c0dfd Working patch to remove constant attributes. This may cause some gm mismatches, I will rebaseline tonight.
BUG=skia:

Review URL: https://codereview.chromium.org/678073005
2014-10-27 15:33:33 -07:00
joshualitt
77b1307c1f Scissor rect on drawinfo
BUG=skia:

Review URL: https://codereview.chromium.org/678683005
2014-10-27 14:51:01 -07:00
bsalomon
50a140563c Use approximate scratch textures for image filters.
Committed: https://skia.googlesource.com/skia/+/96c60686eef6fc514feba6136f1b475f71dbf3ec

Review URL: https://codereview.chromium.org/679113004
2014-10-27 13:56:20 -07:00
senorblanco
ba036cc82b Fix bounds computation of all 0-input filters.
The SkRectShaderImageFilter had the same bug as previously fixed for
SkBitmapSource and SkPictureImageFilter. Rather than copy-and-paste
the implementation, this change makes all filters with 0 inputs return
their source bounds, instead of returning false.

BUG=427251

Review URL: https://codereview.chromium.org/681643003
2014-10-27 13:38:13 -07:00
bsalomon
a9a80e5f42 Revert of Use approximate scratch textures for image filters. (patchset #1 id:1 of https://codereview.chromium.org/679113004/)
Reason for revert:
Images change on some machines. Mostly look OK but not sure about imagefiltersbase on N5.

Old"
http://chromium-skia-gm.commondatastorage.googleapis.com/gm/bitmap-64bitMD5/imagefiltersbase/11449357083048653160.png

New:
http://chromium-skia-gm.commondatastorage.googleapis.com/gm/bitmap-64bitMD5/imagefiltersbase/14279906119350384263.png

Original issue's description:
> Use approximate scratch textures for image filters.
>
> Committed: https://skia.googlesource.com/skia/+/96c60686eef6fc514feba6136f1b475f71dbf3ec

TBR=senorblanco@google.com,senorblanco@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/664823003
2014-10-27 12:59:03 -07:00
bsalomon
c6327a8f7e stuff
BUG=skia:

Review URL: https://codereview.chromium.org/655913003
2014-10-27 12:53:08 -07:00
bsalomon
96c60686ee Use approximate scratch textures for image filters.
Review URL: https://codereview.chromium.org/679113004
2014-10-27 12:41:45 -07:00
bungeman
5f6094a1eb Match language tags by prefix on Android.
A request for 'zh' should match 'zh-Hans' and 'zh-Hant'.

Review URL: https://codereview.chromium.org/681823003
2014-10-27 11:51:58 -07:00
humper
535e3b2025 Fix the way we patch up the matrix for scaled images that aren't
clamp/clamp

BUG=skia:2904
TBR=reed

Review URL: https://codereview.chromium.org/675823002
2014-10-27 10:32:07 -07:00
mtklein
4477c3c0e6 Cut down SkBBH API more.
- The expected case is now a single bulk-load insert() call instead of N;
  - reserve() and flushDeferredInserts() can fold into insert() now;
  - SkBBH subclasses may take ownership of the bounds

This appears to be a performance no-op on both my Mac and N5.  I guess
even the simplest indirect branch predictor ("same as last time") can predict
the repeated virtual calls to SkBBH::insert() perfectly.

BUG=skia:

Review URL: https://codereview.chromium.org/670213002
2014-10-27 10:27:10 -07:00
scroggo
13f701a14d Allow index sources to be unpremul.
This only affects the PNG image decoder, where we have already created
the color table without premultiplication. Since the RowProcChooser is
just providing a proc that chooses indices into the color table, it can
just return the same RowProc.

Update test_row_proc_choice. It was testing to ensure that we hadn't
changed the behavior from the original version of setPrefConfigTable.
In this case, we deliberately changed the behavior, so we need to
change the test.

BUG=b/12024301

Review URL: https://codereview.chromium.org/657863005
2014-10-27 08:43:12 -07:00
joshualitt
a58fe35fda Clip mask manager sets stencil on draw type
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/7afb5aa201e4b59397cbd8480e121d7501a227e7

Review URL: https://codereview.chromium.org/676983003
2014-10-27 08:39:00 -07:00
joshualitt
3a0cfeb961 Revert of Clip mask manager sets stencil on draw type (patchset #3 id:40001 of https://codereview.chromium.org/676983003/)
Reason for revert:
seems to cause a gm issue on windows.

Original issue's description:
> Clip mask manager sets stencil on draw type
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7afb5aa201e4b59397cbd8480e121d7501a227e7

TBR=bsalomon@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/678843003
2014-10-27 07:38:01 -07:00
joshualitt
7afb5aa201 Clip mask manager sets stencil on draw type
BUG=skia:

Review URL: https://codereview.chromium.org/676983003
2014-10-27 07:17:17 -07:00
halcanary
c8306779b8 In SkPDFDocumentToBitmap, use SkCreateDataProviderFromStream
CGDataProviderCreateWithData to SkCreateDataProviderFromStream in
SkPDFDocumentToBitmap

Review URL: https://codereview.chromium.org/678763003
2014-10-27 07:06:47 -07:00
reed
86217d831d add saveLayer to lua
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/679903002
2014-10-25 20:44:40 -07:00
joshualitt
d3de40dfdf bug fix for k1
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/675213003
2014-10-24 15:02:11 -07:00
egdaniel
27c1521ccf Add gpu support for glVertexAttrb1f, 2fv, and 3fv
BUG=skia:

Review URL: https://codereview.chromium.org/662583003
2014-10-24 15:00:50 -07:00
halcanary
f622a6c8fd Add SkIRect bounds() convenience method to SkImageInfo and SkBitmap.
Review URL: https://codereview.chromium.org/646213003
2014-10-24 12:54:53 -07:00
bsalomon
a0036c6e33 Delete unused method aliases and texture flag.
Committed: https://skia.googlesource.com/skia/+/7fdffe41494cbd78a8ee2a6ef0509e46ec77039f

Review URL: https://codereview.chromium.org/672753002
2014-10-24 12:46:57 -07:00
bsalomon
e79a2dab91 When bmp is not cached don't upload as index8 format.
Review URL: https://codereview.chromium.org/673883002
2014-10-24 12:42:51 -07:00
jvanverth
0deb2d9c5d Add some more volatile paths.
Some clip paths were not marked as volatile, and ending up in the
distance field path renderer when they shouldn't.

BUG=skia:3066

Review URL: https://codereview.chromium.org/680543002
2014-10-24 12:41:32 -07:00
joshualitt
74077b9941 Added varying struct
TBR=
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/852ae80b9c3c6fd53f993ac35133d80863993cbe

Review URL: https://codereview.chromium.org/671023002
2014-10-24 11:26:03 -07:00
reed
e332396d2f move c api into include
BUG=skia:

Review URL: https://codereview.chromium.org/665203004
2014-10-24 11:16:19 -07:00
mtklein
60b6e9dbbc Remove a pointless use of SkWeakRefCnt.
Can't quite get rid of SkWeakRefCnt yet... SkFontMgr_indirect uses it to cache
SkTypefaces, and I don't quite understand it enough yet to cut out the weak refs.

BUG=skia:3065

Review URL: https://codereview.chromium.org/664173003
2014-10-24 10:43:15 -07:00
bsalomon
24234fe777 Build gpu stats tracking in dev builds.
Fix cache stats, add more info.

BUG=skia:2889

Review URL: https://codereview.chromium.org/655263005
2014-10-24 09:34:41 -07:00
joshualitt
c6f3e2c17b Revert of Added varying struct (patchset #9 id:160001 of https://codereview.chromium.org/671023002/)
Reason for revert:
may have caused gm change on arm

Original issue's description:
> Added varying struct
>
> TBR=
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/852ae80b9c3c6fd53f993ac35133d80863993cbe

TBR=bsalomon@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/675193002
2014-10-24 08:24:08 -07:00
joshualitt
852ae80b9c Added varying struct
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/671023002
2014-10-24 07:56:04 -07:00
jvanverth
b3eb687f8a Set temporary paths volatile so we don't cache them.
Any path that is generated frame-to-frame should not be rendered by using the
DistanceFieldPathRenderer, because generating the initial distance field,
uploading it and rendering it takes longer than the SoftwarePathRenderer.

BUG=skia:2935

Review URL: https://codereview.chromium.org/677463002
2014-10-24 07:12:51 -07:00
scroggo
3ceef9a66a Add test for new FrontBufferedStream behavior.
Test for https://skia.googlesource.com/skia/+/dd5a1e094c19fa10202c37c50a1f799e5af5dac0

Verify that FrontBufferedStream does not attempt to read beyond the
end of its underlying stream.

Make SkStreamToCGImageSource handle an empty stream better.

Review URL: https://codereview.chromium.org/641813009
2014-10-24 06:55:07 -07:00
scroggo
b752f9f838 Don't read random data in ICO check.
Check to ensure SkStream::read succeeds before checking the result.

Review URL: https://codereview.chromium.org/656673005
2014-10-24 06:49:57 -07:00
joshualitt
976386b75d Possible optimization to SkString
BUG=skia:

Review URL: https://codereview.chromium.org/679433003
2014-10-23 18:23:32 -07:00
tfarina
bf54e49e30 Cleanup: Turn GrReducedClip into a class with a static function.
Clean up namespace usage.

Similar to what was done in
https://skia.googlesource.com/skia/+/a5414c4a8efc3119ee20fcee96c0bf68a04909c7

BUG=None
TEST=None
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/653393003
2014-10-23 17:47:18 -07:00
mtklein
14e4d392d4 Revert "Revert of create shaderproc for nofilter-opaque-dx (patchset #7 id:120001 of https://codereview.chromium.org/664783004/)"
This reverts commit 430b795cc8 and adds suppressions.

BUG=skia:

Review URL: https://codereview.chromium.org/673023002
2014-10-23 14:35:01 -07:00
bsalomon
efd7d45fc0 Don't use MIP filter mode on compressed textures
Add compressed texture image downsample GMs

BUG=chromium:426331

Review URL: https://codereview.chromium.org/672863003
2014-10-23 14:17:46 -07:00
sugoi
234f036b3e Adding an option to render only the shadow in SkDropShadowImageFilter
This is basically how blink uses the filter. Currently, I can't use it for "ShadowOnly" mode with the filter at all, but instead of copying the code and risking to have the codepaths diverge, I'm simply going to add the option here.

BUG=skia:

Review URL: https://codereview.chromium.org/646213004
2014-10-23 13:59:52 -07:00
pavel
47eedcc848 Add utils to better quantize grayscale values to three bit indices while
compressing coverage masks.

Signed-off-by: Pavel Krajcevski <pavel@cs.unc.edu>

BUG=skia:

Review URL: https://codereview.chromium.org/669243003
2014-10-23 13:18:50 -07:00
caryclark
08fa28cd31 add float equivalent in dumpHex output as comment
R=reed@google.com,bsalomon@google.com

Review URL: https://codereview.chromium.org/676803002
2014-10-23 13:08:57 -07:00
mtklein
430b795cc8 Revert of create shaderproc for nofilter-opaque-dx (patchset #7 id:120001 of https://codereview.chromium.org/664783004/)
Reason for revert:
Many GMs fixed.  Needs rebaseline, perhaps layout test rebaselines.

Original issue's description:
> create shaderproc for nofilter-opaque-dx
>
>
> speedup nofilter
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/a40a276bcee2246439dcf816273c1307f5c3c69f

TBR=djsollen@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/656913005
2014-10-23 12:44:40 -07:00
reed
4dca7a8296 use SkMaskCache inside SkBlurMaskFilter
depends on https://codereview.chromium.org/670063004/

BUG=skia:

Review URL: https://codereview.chromium.org/669993003
2014-10-23 12:42:46 -07:00
bungeman
4aa75b7980 Correct typo in SkRemotableFontMgr_win_dw.cpp.
New code was introduced behind a flag, but in that code there is a comma
before a parameter name instead of after.

Review URL: https://codereview.chromium.org/646323003
2014-10-23 12:25:29 -07:00
reed
a40a276bce create shaderproc for nofilter-opaque-dx
speedup nofilter

BUG=skia:

Review URL: https://codereview.chromium.org/664783004
2014-10-23 12:22:40 -07:00
jvanverth
73f1053450 Allocate only the vertices we need for text.
This restructures the vertex allocation for text rendering to compute
the max number of vertices we would need for a line of text, and then
only allocate that much. If this number exceeds the quad index limit,
then it will allocate for the max number of quads, and reallocate for
the rest later.

Review URL: https://codereview.chromium.org/663423003
2014-10-23 11:57:12 -07:00
djsollen
e3aee8fb7b Remove android specific genID from SkPaint.
Review URL: https://codereview.chromium.org/677453002
2014-10-23 10:23:07 -07:00
mtklein
df78d0a81c This return_false is now only used on Android. Squelch a warning.
BUG=skia:

Review URL: https://codereview.chromium.org/659393004
2014-10-23 10:13:21 -07:00
qiankun.miao
d9aac34ece Add SkMaskCache
BUG=skia:

Review URL: https://codereview.chromium.org/670063004
2014-10-23 07:58:17 -07:00
bsalomon
26979c8260 Revert of Delete unused method aliases and texture flag. (patchset #1 id:1 of https://codereview.chromium.org/672753002/)
Reason for revert:
Need to remove one more reference to this in blink before relanding.

Original issue's description:
> Delete unused method aliases and texture flag.
>
> Committed: https://skia.googlesource.com/skia/+/7fdffe41494cbd78a8ee2a6ef0509e46ec77039f

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/671203002
2014-10-23 07:41:29 -07:00
bungeman
c20386e393 Update fontMgr to take list of bcp47 language tags.
This will enable clients to pass more than one bcp47 tag to ensure
that the most appropriate font is selected.

BUG=chromium:422180

Review URL: https://codereview.chromium.org/670243002
2014-10-23 07:08:06 -07:00
bsalomon
7fdffe4149 Delete unused method aliases and texture flag.
Review URL: https://codereview.chromium.org/672753002
2014-10-23 06:56:55 -07:00
joshualitt
58a654452f fix memory leak
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/668333005
2014-10-22 20:53:26 -07:00
joshualitt
5ead6da4ab Oval and stroke AA rect now batch
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/bc54fab1a4e5b51628a8c1557c62bc74e078870d

Committed: https://skia.googlesource.com/skia/+/18055afb838a278b5a8436cd51dbfbb688e1e0a0

Review URL: https://codereview.chromium.org/664193002
2014-10-22 16:00:30 -07:00
joshualitt
67f7f74fb2 Revert of Oval and stroke AA rect now batch (patchset #7 id:110001 of https://codereview.chromium.org/664193002/)
Reason for revert:
whoops, accidental commit

Original issue's description:
> Oval and stroke AA rect now batch
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/bc54fab1a4e5b51628a8c1557c62bc74e078870d
>
> Committed: https://skia.googlesource.com/skia/+/18055afb838a278b5a8436cd51dbfbb688e1e0a0

TBR=robertphillips@google.com,bsalomon@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/675623002
2014-10-22 15:51:52 -07:00
joshualitt
18055afb83 Oval and stroke AA rect now batch
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/bc54fab1a4e5b51628a8c1557c62bc74e078870d

Review URL: https://codereview.chromium.org/664193002
2014-10-22 15:48:48 -07:00
mtklein
9deb696f58 Revert of Oval and stroke AA rect now batch (patchset #7 id:110001 of https://codereview.chromium.org/664193002/)
Reason for revert:
Many GMs failing, e.g. http://build.chromium.org/p/client.skia.android/builders/Test-Android-Nexus5-Adreno330-Arm7-Release/builds/95/steps/Compare%20GMs/logs/stdio

Original issue's description:
> Oval and stroke AA rect now batch
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/bc54fab1a4e5b51628a8c1557c62bc74e078870d

TBR=robertphillips@google.com,joshualitt@google.com,bsalomon@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/671993003
2014-10-22 15:23:29 -07:00
joshualitt
bc54fab1a4 Oval and stroke AA rect now batch
BUG=skia:

Review URL: https://codereview.chromium.org/664193002
2014-10-22 14:41:45 -07:00
reed
a0c814cffb Add SkTypeface::getBounds()
mirrored from https://codereview.chromium.org/666303002/

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/676523002
2014-10-22 13:20:58 -07:00
scroggo
2a1208017d Qualify the return value of SkImageDecoder::decode
Add a new enum to differentiate between a complete decode and a
partial decode (with the third value being failure). Return this
value from SkImageDecoder::onDecode (in all subclasses, plus
SkImageDecoder_empty) and ::decode.

For convenience, if the enum is treated as a boolean, success and
partial success are both considered true.

Note that the static helper functions (DecodeFile etc) still return
true and false (for one thing, this allows us to continue to use
SkImageDecoder::DecodeMemory as an SkPicture::InstallPixelRefProc in
SkPicture::CreateFromStream).

Also correctly report failure in SkASTCImageDecoder::onDecode when
SkTextureCompressor::DecompressBufferFromFormat fails.

BUG=skia:3037
BUG:b/17419670

Review URL: https://codereview.chromium.org/647023006
2014-10-22 12:07:00 -07:00
fmalita
171e5b73a8 SkResourceCache::Key namespace support.
Add a unique-per-subclass namespace tag to make Keys from different
domains comparable.

Also drop the SkPictureShader cache and convert to using the global
resource cache instead.

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

Review URL: https://codereview.chromium.org/668223002
2014-10-22 11:20:40 -07:00
piotaixr
9bb7539a59 Override SkCanvas::drawImage() in SkDeferredCanvas and SkGPipe
Depend on https://codereview.chromium.org/663233002

BUG=skia:2947

Committed: https://skia.googlesource.com/skia/+/687732fe046c9cfec940f2d7f661cd97651d10a8

Review URL: https://codereview.chromium.org/613673005
2014-10-22 11:02:32 -07:00
joshualitt
c369e7c999 GP Emit Code takes a struct
BUG=skia:

Review URL: https://codereview.chromium.org/666693012
2014-10-22 10:56:26 -07:00
piotaixr
46c248da26 More genericity: overload isPaintOpaque(SkPaint, SkBitmap)
Instead of taking a Bitmap as an argument this version
takes only the type of content (None/Opaque/Transparent).
This will be used to check the opaqueness of a SkPaint
that draws a SkImage.

BUG=skia:3042

Review URL: https://codereview.chromium.org/663233002
2014-10-22 08:35:45 -07:00
bungeman
d2ae72858e Use correct size for font style name search.
This fixes an out of bounds read introduced with
a4c4a2d8cd
"Replace SkTypeface::Style with SkFontStyle."

BUG=chromium:425856

Review URL: https://codereview.chromium.org/645223006
2014-10-22 08:25:44 -07:00
fmalita
23df2d6933 Picture shader resource caching.
Replace the current/naive shader caching mechanism with a more general
implementation based on SkResourceCache.

Caching the bitmap shader itself (as opposed to just the tile bitmap)
makes for a chunkier key, but OTOH avoids allocating new shaders on
cache hit.

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

Review URL: https://codereview.chromium.org/671683004
2014-10-22 07:39:08 -07:00
robertphillips
9e6835da41 Track nested picture xform state for layer hoisting
The accumulated matrix state of any enclosing SkPictures must be stored separate from the picture-local CTM. Any setMatrix calls inside a layer need to replace the picture-local CTM but concatenate with the enclosing SkPicture transform state (and the transform state needed to translate the layer to the correct location in the cached GrTexture).

Review URL: https://codereview.chromium.org/639863005
2014-10-22 05:33:52 -07:00
joshualitt
b4384b9bba Bug fix for es 3.00 fb fetch
patch for es 300 shader fb fetch

BUG=skia:

Review URL: https://codereview.chromium.org/665893008
2014-10-21 12:53:16 -07:00
mtklein
e9e0dea15b SkLazyPtr follow ups
- moves test to LazyPtrTest.cpp
 - adds the ability to use a Create() method with an argument

BUG=skia:

Review URL: https://codereview.chromium.org/669783002
2014-10-21 12:20:04 -07:00
robertphillips
183e98559c Widen the set of nested rects that can be drawn natively on the GPU
GrAARectRenderer::fillAANestedRects only handles thin stroked rects correctly if the margins are all the same. It is also correct if all the margins are >= 1.0f. This CL allows such cases to use the fillAANestedRects fast path.

This seems to halve the gpu rendering time of the picture in bug crbug.com/425427.

Review URL: https://codereview.chromium.org/672473002
2014-10-21 11:25:37 -07:00
mtklein
484bbe5be6 small tweaks to SkResourceCache::Key
- remove unused method and obsolete note
  - add a reminder that yes, we are checking counts are equal

BUG=skia:

Review URL: https://codereview.chromium.org/667993002
2014-10-21 10:55:22 -07:00
robertphillips
b9750892dd Fix debugger's SaveAs functionality
Without this patch the SaveAs functionality only copies the portion of the picture from the current command in the GUI.

Review URL: https://codereview.chromium.org/672453002
2014-10-21 10:31:38 -07:00
scroggo
dd5a1e094c Check SkStream::isAtEnd before attempting to read.
In FrontBufferedStream, when attempting to read and buffer more
data, do not try to read if the underlying stream is at the end.

Prevents a bug where we continue trying to read a stream that
has nothing more to read.

Review URL: https://codereview.chromium.org/665303002
2014-10-21 08:06:06 -07:00
egdaniel
c0651c14ed Add check to see if we need to remove fixed funciton VA in OptDrawState
BUG=skia:

Review URL: https://codereview.chromium.org/667033003
2014-10-21 07:47:10 -07:00
mtklein
d157b6aed2 Clean up some warnings about unused code.
BUG=skia:

Review URL: https://codereview.chromium.org/663093004
2014-10-21 07:21:36 -07:00
reed
9fbc3f31c0 add gradients and drawPaint to lua
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/667803004
2014-10-21 07:12:58 -07:00
mtklein
1f66e45391 Add an assert that we still have a buffer to readFromBuffer().
sk_free(fBuffer.detach()) means fBuffer will be left as NULL, not a zero-length malloc.

BUG=skia:

Review URL: https://codereview.chromium.org/669813002
2014-10-21 07:12:52 -07:00
senorblanco
b0e89dcc1d Fix image filters for PDF backend.
Currently, the PDF backend does not support image filters (since PDF
does not have that functionality), so it simply removes them. This is
causing Chrome print preview to render incorrectly (see bug). The fix
here is to fall back to a raster device for image filters, as we used
to do in Blink. The resulting bitmap will be drawn to the destination
device as a normal main-memory-backed bitmap.

Note: this change invalidates the PDF results of all GMs containing
image filters (since they'll actually be rendered).

BUG=422144

Review URL: https://codereview.chromium.org/644323006
2014-10-20 14:03:13 -07:00
mtklein
1d932663e1 SkLazyPtr suitable as a local or class member.
BUG=skia:

Review URL: https://codereview.chromium.org/653183006
2014-10-20 13:46:11 -07:00
mtklein
41966d49b0 Dilate approximated text bounds to squelch recent assertion failure.
This is once again an issue related to logo fonts, so I don't
see any easy way to add a regression test for this.

BUG=424824

Review URL: https://codereview.chromium.org/665103002
2014-10-20 13:44:24 -07:00
bungeman
a4c4a2d8cd Replace SkTypeface::Style with SkFontStyle.
Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20

Review URL: https://codereview.chromium.org/488143002
2014-10-20 13:33:19 -07:00
jvanverth
fca302ccf4 Add color emoji fallback for distance field text.
BUG=skia:3033

Review URL: https://codereview.chromium.org/670533002
2014-10-20 13:12:55 -07:00
mtklein
c7eb58c8b4 Stop doing at-exit cleanup of lazy pointers.
There are only a fixed number of them, and we're already intentionally leaking in Release.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN-Trybot

BUG=skia:2940

Review URL: https://codereview.chromium.org/606013004
2014-10-20 13:07:03 -07:00
mtklein
802ad83dca Revert of Replace SkTypeface::Style with SkFontStyle. (patchset #9 id:160001 of https://codereview.chromium.org/488143002/)
Reason for revert:
CrOS GM failures:

[*] 2 ExpectationsMismatch: fontmgr_iter_565.png fontmgr_iter_8888.png

Original issue's description:
> Replace SkTypeface::Style with SkFontStyle.
>
> Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20

TBR=reed@google.com,bungeman@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/667023002
2014-10-20 12:54:31 -07:00
bungeman
43b8b36b20 Replace SkTypeface::Style with SkFontStyle.
Review URL: https://codereview.chromium.org/488143002
2014-10-20 12:33:59 -07:00
mtklein
dba3e64ab9 Revert of Start to vectorize SkTileGrid. (patchset #48 id:1670001 of https://codereview.chromium.org/634543004/)
Reason for revert:
breaks chrome GPU debug bots

Original issue's description:
> Start to vectorize SkTileGrid.
>
> This adds Sk4x.h to help.
>
> BUG=skia:3041
>
> Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/958e9628d5f9a81aeafa78572cb4afc4b19a455a

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:3041

Review URL: https://codereview.chromium.org/637863005
2014-10-20 10:43:55 -07:00
robertphillips
3aac6e0848 Add clip to layer cache
This CL adds the clip region to the GPU layer hoisting image cache. It also switches back to the old caching behavior of using the entire CTM in the cache key rather then just the upper 2x2. This latter change is to focus more on hoisting rather then caching.

It also includes 2 smaller fixes:
a) layer's that have an image filter are no longer atlased (b.c. doing so complicates applying the image filter)

b) the result of clipping the layer's bounds to the current clip is used as the hoisted layer's size. This reduces the amount of pixels drawn to match a normal (non-hoisted) draw pass.

Review URL: https://codereview.chromium.org/640773004
2014-10-20 08:52:40 -07:00
robertphillips
6219e1fa0b Remove unused parameters from filter_texture
Trivial cleanup.

Review URL: https://codereview.chromium.org/665863003
2014-10-20 08:12:04 -07:00
mtklein
958e9628d5 Start to vectorize SkTileGrid.
This adds Sk4x.h to help.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot

Review URL: https://codereview.chromium.org/634543004
2014-10-20 07:12:34 -07:00
jvanverth
2b9dc1d0ff When rendering df fonts, pass drawText() down to drawPosText().
First pass at getting color emoji working for distance fields.

BUG=skia:3033

Review URL: https://codereview.chromium.org/660853003
2014-10-20 06:48:59 -07:00
mtklein
a71aee6afd Remove obsolete SkRecording.
Can land after https://codereview.chromium.org/664583002/ does.

BUG=skia:

Only API removed.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/660903002
2014-10-20 06:44:58 -07:00
kkinnunen
93b255b19e Make SkImageDecoder_libpng be compilable with Chromium libpng
Chromium has libpng with pngusr.h that disables certain functionality with
defines. Use those defines when compiling SkImageDecoder_libpng.cpp.

This makes it possible to use Skia PNG decoder and encoder when compiling dm
with Chromium. Skia PNG decoder and encoder of course is not compiled to the
skia library, but to dm with Chromium.

BUG=skia:2992

Review URL: https://codereview.chromium.org/645883004
2014-10-19 22:07:24 -07:00
reed
468b1815d2 add blurimagefilter to lua
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/663993002
2014-10-19 11:42:54 -07:00
joshualitt
2813f34492 bug fix for glsl identity string
BUG=skia:

Review URL: https://codereview.chromium.org/659313004
2014-10-17 10:54:04 -07:00
rmistry
6fedd3a4e6 Revert of Override SkCanvas::drawImage() in SkDeferredCanvas and SkGPipe (patchset #5 id:80001 of https://codereview.chromium.org/613673005/)
Reason for revert:
Trying to fix DEPS roll failure:
https://codereview.chromium.org/660113002/

Link to failing builds:
http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/29578
http://build.chromium.org/p/tryserver.blink/builders/linux_blink_dbg/builds/29354

Original issue's description:
> Override SkCanvas::drawImage() in SkDeferredCanvas and SkGPipe
>
> BUG=skia:2947
>
> Committed: https://skia.googlesource.com/skia/+/687732fe046c9cfec940f2d7f661cd97651d10a8

TBR=junov@chromium.org,reed@google.com,bsalomon@chromium.org,piotaixr@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:2947

Review URL: https://codereview.chromium.org/658293004
2014-10-17 06:19:27 -07:00
rmistry
63a9f842a1 Revert of Revert of Support GLSL es 3.00 (patchset #1 id:1 of https://codereview.chromium.org/661603009/)
Reason for revert:
DEPS roll still failing:
https://codereview.chromium.org/661993002/

Reverting the revert.

Original issue's description:
> Revert of Support GLSL es 3.00 (patchset #5 id:80001 of https://codereview.chromium.org/659443007/)
>
> Reason for revert:
> Trying to fix DEPS roll failure:
> https://codereview.chromium.org/660113002/
>
> Link to failing builds:
> http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/29578
> http://build.chromium.org/p/tryserver.blink/builders/linux_blink_dbg/builds/29354
>
> Original issue's description:
> > Support GLSL es 3.00
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/62372bcc6abe3537dac98dd9b9172cf3b85afa2b
>
> TBR=bsalomon@google.com,joshualitt@google.com,joshualitt@chromium.org
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/79b2b1fb12202d22411b607a095cb26c6e4fe8b7

TBR=bsalomon@google.com,joshualitt@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/647043005
2014-10-17 06:07:08 -07:00
rmistry
79b2b1fb12 Revert of Support GLSL es 3.00 (patchset #5 id:80001 of https://codereview.chromium.org/659443007/)
Reason for revert:
Trying to fix DEPS roll failure:
https://codereview.chromium.org/660113002/

Link to failing builds:
http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/29578
http://build.chromium.org/p/tryserver.blink/builders/linux_blink_dbg/builds/29354

Original issue's description:
> Support GLSL es 3.00
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/62372bcc6abe3537dac98dd9b9172cf3b85afa2b

TBR=bsalomon@google.com,joshualitt@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/661603009
2014-10-17 05:14:28 -07:00
mtklein
2348199907 Revert of Start to vectorize SkTileGrid. (patchset #45 id:1430002 of https://codereview.chromium.org/634543004/)
Reason for revert:
Many GCC bots missing __builtin_shuffle, e.g. Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot.

Original issue's description:
> Start to vectorize SkTileGrid.
>
> This adds Sk4x.h to help.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/663663002
2014-10-16 15:27:47 -07:00
mtklein
90c7992bfc Start to vectorize SkTileGrid.
This adds Sk4x.h to help.

BUG=skia:

Review URL: https://codereview.chromium.org/634543004
2014-10-16 15:21:43 -07:00
robertphillips
70171683e6 "Fix" debugger's setMatrix handling
This remedies two problems with the debugger's matrix handling:
1) the user matrix was not being passed to the setMatrix command (for a concat)
2) the setting of the user matrix was not consistently forcing a complete re-rendering of the scene

BUG=skia:3018

Review URL: https://codereview.chromium.org/660883002
2014-10-16 14:28:28 -07:00
bsalomon
427cf28861 Remove AutoScratchTexture
Remove AST from GrClipMaskCache

Remove AST from GrClipMaskManager

BUG=skia:2889

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/663583002
2014-10-16 13:41:43 -07:00
sugoi
b227e37eae JPEG YUV Decoding
Enabling JPEG YUV Decoding in Skia

BUG=skia:3005, skia:1674, skia:3029

Committed: https://skia.googlesource.com/skia/+/8e6c3b93a39e19111662a760ede97df55e51d39f

Review URL: https://codereview.chromium.org/399683007
2014-10-16 13:10:57 -07:00
joshualitt
62372bcc6a Support GLSL es 3.00
BUG=skia:

Review URL: https://codereview.chromium.org/659443007
2014-10-16 12:25:11 -07:00
piotaixr
65151754b9 Override SkCanvas::drawImage() in SkRecorder.
BUG=skia:2947

Review URL: https://codereview.chromium.org/610003002
2014-10-16 11:58:39 -07:00
piotaixr
687732fe04 Override SkCanvas::drawImage() in SkDeferredCanvas and SkGPipe
BUG=skia:2947

Review URL: https://codereview.chromium.org/613673005
2014-10-16 11:55:35 -07:00
fmalita
19653d1d00 Implicit SkTextBlob bounds
Compute blob bounds when the client doesn't pass explicit run rects to
the builder. This allows us to remove a couple of internal workarounds.

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

Review URL: https://codereview.chromium.org/654873003
2014-10-16 11:53:30 -07:00
halcanary
2f912f39b0 Const-correctness in PDF drawText() call
If SkPDFDevice::drawText is called with glyph encoding and a font with
cubic outlines (CFF or Type1) and a glyph code > 255 then it was
mutating the in(const) glyph codes in place.  Instead, a copy is made.

BUG=skia:3019

Review URL: https://codereview.chromium.org/656143002
2014-10-16 09:53:21 -07:00
mtklein
4ba7686eb7 Tweak out SkTileGrid::insert() loop.
BUG=skia:

Review URL: https://codereview.chromium.org/658913002
2014-10-16 09:23:21 -07:00
bsalomon
420d7e9a79 Auto-compare GrProcessors' texture accesses in isEqual().
R=joshualitt@google.com

Review URL: https://codereview.chromium.org/654313002
2014-10-16 09:18:09 -07:00
jvanverth
aab626c367 Revert of Change drawText() to generate positions and send to drawPosText() (patchset #4 id:60001 of https://codereview.chromium.org/653133004/)
Reason for revert:
A large number of GMs on Ubuntu12 are failing. The text layout on GPU is visibly different than that for 8888.

Original issue's description:
> Change drawText() to generate positions and send to drawPosText()
>
> The idea here is to have a central place that does layout for drawText(), and
> then always feed text through drawPosText(). This both makes all of the
> GrTextContexts consistent in drawText() output, and does a better job of
> stressing drawPosText().
>
> Because of the effect of matrices on hinting and approximation error, the
> generated text is not 100% identical to that produced by the raster pipeline.
>
> BUG=skia:2778
>
> Committed: https://skia.googlesource.com/skia/+/7851a56895c9c076f73a835a7dd51d3c6180c16f

TBR=cdalton.nvidia@gmail.com,bungeman@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2778

Review URL: https://codereview.chromium.org/659993003
2014-10-16 08:04:39 -07:00
jvanverth
7851a56895 Change drawText() to generate positions and send to drawPosText()
The idea here is to have a central place that does layout for drawText(), and
then always feed text through drawPosText(). This both makes all of the
GrTextContexts consistent in drawText() output, and does a better job of
stressing drawPosText().

Because of the effect of matrices on hinting and approximation error, the
generated text is not 100% identical to that produced by the raster pipeline.

BUG=skia:2778

Review URL: https://codereview.chromium.org/653133004
2014-10-16 06:20:35 -07:00
sugoi
ff58e4679b Disabled YUV decoding for subsets
Image subsets were always showing the same tile and were causing an image to be fully YUV decoded once per tile, which was both slow and wrong.

BUG=413001, 419718

Review URL: https://codereview.chromium.org/661483002
2014-10-16 05:19:31 -07:00
kkinnunen
30bc88ccd5 Refactor SkGLContext to be actually extendable
Refactor SkGLContext to be actually extendable. Before, non-trivial subclass
would need to destroy the GL connection upon running the destructor. However,
the base class would run GL commands in its own destructor (with destroyed GL
connection)

Refactor so that SkGLContext subclass object creation is completely done by
the factory function. If the factory function returns a non-NULL ptr, it means the context
is usable.

The destruction is done with the destructor instead of virtual function called
upon destruction. Make the destructors not to call virtual functions, for
clarity.

Remove custom 1x1 FBO setup code from the base class. It appears not to be used
anymore.

BUG=skia:2992

Review URL: https://codereview.chromium.org/640283004
2014-10-15 23:03:54 -07:00
bsalomon
de258cd6b4 Make GrFragmentProcessor auto-compare coord xforms.
Review URL: https://codereview.chromium.org/657923002
2014-10-15 19:06:21 -07:00
bsalomon
000f829f14 Prefer to recycle non-RT scratch textures that don't have pending IO
BUG=skia:2889

Review URL: https://codereview.chromium.org/650283002
2014-10-15 19:04:14 -07:00
bsalomon
f2765410ba Last round of effect->processor (for now)
R=joshualitt@google.com

Review URL: https://codereview.chromium.org/659803005
2014-10-15 18:34:46 -07:00
mtklein
826a503336 Treat (private, internal) grid bounds as doubly-inclusive in SkTileGrid.
The net effect is that two "+1" instructions are removed from insert().
search() nets no change: two +1 removed, two +1 added.

When vectorized, this removes the need to add in userToGrid() at all and
so the need to read an awkward {0, 0, 1, 1} constant from memory.  Mostly
the benefit is less vector code to look at and think about.

BUG=skia:

Review URL: https://codereview.chromium.org/659823004
2014-10-15 14:20:01 -07:00
egdaniel
9e4d6d180f Move willUseInputColor check to computeInvariantOutput
BUG=skia:

Review URL: https://codereview.chromium.org/656503002
2014-10-15 13:49:02 -07:00
cdalton
6819df3644 Adds a GrTRecorder class that GrInOrderDrawBuffer uses to allocate
all its commands interleaved in contiguous memory. GrTRecorder also
supports extra data associated with objects, so we can store arrays
inline without having to call malloc().

Committed: https://skia.googlesource.com/skia/+/360b6801cfd90485891d709e44cf395d527ba69e

Review URL: https://codereview.chromium.org/628453002
2014-10-15 13:43:48 -07:00
scroggo
80a720eb82 Remove unused NeedsDeepCopy.
It was used to check to see if an SkPaint had mutable fields on it.
Now that all the fields are immutable, this function is no longer
used. Remove it.

BUG=skia:2097

Review URL: https://codereview.chromium.org/661543002
2014-10-15 13:43:36 -07:00
rmistry
3ac569b37a Revert of JPEG YUV Decoding (patchset #5 id:180001 of https://codereview.chromium.org/399683007/)
Reason for revert:
Caused many test bots to go red:
http://build.chromium.org/p/client.skia/builders/Test-ChromeOS-Alex-GMA3150-x86-Release/builds/22/steps/dm/logs/stdio
http://build.chromium.org/p/client.skia/builders/Test-ChromeOS-Link-HD4000-x86_64-Debug/builds/168/steps/dm/logs/stdio
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu12-ShuttleA-GTX660-x86-Release/builds/38/steps/dm/logs/stdio

Original issue's description:
> JPEG YUV Decoding
>
> Enabling JPEG YUV Decoding in Skia
>
> BUG=skia:3005, skia:1674
>
> Committed: https://skia.googlesource.com/skia/+/8e6c3b93a39e19111662a760ede97df55e51d39f

TBR=reed@google.com,scroggo@google.com,sugoi@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:3005, skia:1674

Review URL: https://codereview.chromium.org/656163002
2014-10-15 13:15:58 -07:00
bsalomon
b762cb548b More effect->processor cleanup
R=joshualitt@google.com

Review URL: https://codereview.chromium.org/660563003
2014-10-15 11:25:21 -07:00
bsalomon
98b33ebe6f Some cleanup in processor header files.
R=joshualitt@google.com

Review URL: https://codereview.chromium.org/659803004
2014-10-15 11:05:26 -07:00
sugoi
8e6c3b93a3 JPEG YUV Decoding
Enabling JPEG YUV Decoding in Skia

BUG=skia:3005, skia:1674

Review URL: https://codereview.chromium.org/399683007
2014-10-15 11:04:18 -07:00
bsalomon
6251d17dfa Split GrFragmentProcessor into its own header
Review URL: https://codereview.chromium.org/660573002
2014-10-15 10:50:36 -07:00
reed
c553b7a717 update dox for bounds in supersampler
BUG=skia:
TBR=caryclark@google.com
NOTRY=True

Review URL: https://codereview.chromium.org/657793003
2014-10-15 09:00:27 -07:00
reed
bcba2c9f9f interesct path bounds with clip bounds before initializing supersampler
BUG=skia:

Review URL: https://codereview.chromium.org/656473004
2014-10-15 08:52:00 -07:00
bsalomon
0e08fc17e4 Push isEqual/onIsEqual down from GrProcessor to subclasses.
R=joshualitt@google.com

Review URL: https://codereview.chromium.org/654273002
2014-10-15 08:19:04 -07:00
mtklein
f439c77e9c Revert of Create a single command buffer for GrInOrderDrawBuffer (patchset #17 id:1240001 of https://codereview.chromium.org/628453002/)
Reason for revert:
Leaking memory:
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu12-ShuttleA-GTX550Ti-x86_64-Release-Valgrind/builds/9/steps/gm/logs/stdio

Original issue's description:
> Adds a GrTRecorder class that GrInOrderDrawBuffer uses to allocate
> all its commands interleaved in contiguous memory. GrTRecorder also
> supports extra data associated with objects, so we can store arrays
> inline without having to call malloc().
>
> Committed: https://skia.googlesource.com/skia/+/360b6801cfd90485891d709e44cf395d527ba69e

TBR=bsalomon@google.com,reed@google.com,cdalton@nvidia.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/654863003
2014-10-14 14:29:30 -07:00
sugoi
80cc420934 Changed "Profile" to "Cube" in ColorCube
A few references to "profile" still existed in SkColorCubeFilter, so I removed them.

BUG=skia:

Review URL: https://codereview.chromium.org/651303002
2014-10-14 13:15:58 -07:00
bsalomon
e488d63312 Only use sized format on IMG/ES3 for single channel.
BUG=skia:2922

Review URL: https://codereview.chromium.org/638293004
2014-10-14 12:29:17 -07:00
cdalton
360b6801cf Adds a GrTRecorder class that GrInOrderDrawBuffer uses to allocate
all its commands interleaved in contiguous memory. GrTRecorder also
supports extra data associated with objects, so we can store arrays
inline without having to call malloc().

Review URL: https://codereview.chromium.org/628453002
2014-10-14 11:53:05 -07:00
bsalomon
e30597375c Remove uses of GrAutoScratchTexture.
Rename GrContext::lockAndRefScratchTexture to refScratchTexture.

GrSurface::writePixels returns bool instead of void.

BUG=skia:2889

Review URL: https://codereview.chromium.org/638403003
2014-10-14 11:47:22 -07:00
bsalomon
ec87dc64dd Flush text contexts before drawing text as path
BUG=416289

Review URL: https://codereview.chromium.org/636233008
2014-10-14 10:52:00 -07:00
reed
bdc49ae0d4 create and modify matrices in lua
BUG=skia:

Review URL: https://codereview.chromium.org/651823004
2014-10-14 09:34:52 -07:00
jvanverth
8c27a188a0 Change GrTextContext fallbacks to be a linked list chain.
Preliminary work for getting color emoji working with
distance field text.

BUG=skia:2887

Review URL: https://codereview.chromium.org/650273003
2014-10-14 08:45:50 -07:00
bsalomon
b501ecd0d7 Use GL_R8 rather than GL_RED for glTexImage2D on IMG/ES3. Check for failure of FP creation in SkImageFilter
BUG=skia:2922

Review URL: https://codereview.chromium.org/656853002
2014-10-14 08:40:57 -07:00
reed
b2d77e4d74 add gamma value to deviceproperties
BUG=skia:

Review URL: https://codereview.chromium.org/652273002
2014-10-14 08:26:33 -07:00
robertphillips
84ac082fd4 Add GrLayerCache::writeLayersToDisk
I'm tired of readding this capability whenever I need to debug.

Review URL: https://codereview.chromium.org/654653006
2014-10-14 07:08:00 -07:00
mtklein
07894c4d7d Revert of Create a single command buffer for GrInOrderDrawBuffer (patchset #14 id:1050001 of https://codereview.chromium.org/628453002/)
Reason for revert:
New test failing on Android: http://build.chromium.org/p/client.skia.android/builders/Test-Android-Nexus7-Tegra3-Arm7-Release/builds/89/steps/dm/logs/stdio

Original issue's description:
> Adds a GrTBaseList class that GrInOrderDrawBuffer uses to allocate
> all its commands interleaved in contiguous memory. GrTBaseList also
> supports extra data associated with objects, so we can store arrays
> inline without having to call malloc().
>
> Committed: https://skia.googlesource.com/skia/+/47c844aaba81e5a29c773b660e1d6062c766d253

TBR=bsalomon@google.com,reed@google.com,cdalton@nvidia.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/652843002
2014-10-13 14:00:42 -07:00
mtklein
148ec59001 Require SK_DECLARE_STATIC_LAZY_PTR is used in global scope.
Function- or method- local scope isn't threadsafe; the pointer is generally
zero-initialized on first use in function scope (i.e. lazily... we have to go
deeper), but for globals we can be pretty sure the linker will do that for us.

BUG=skia:

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/651723003
2014-10-13 13:17:56 -07:00
egdaniel
ccb2e384a0 Create helper functions to use in computeInvariantOutput calls
BUG=skia:

Review URL: https://codereview.chromium.org/643743003
2014-10-13 12:53:46 -07:00
mtklein
c09e2af17f Fix race in supports_simd().
Local statics are not thread safe in Chrome.  Use an SkLazyPtr instead.

See https://code.google.com/p/chromium/issues/detail?id=418041

BUG=418041

Review URL: https://codereview.chromium.org/655573002
2014-10-13 12:48:16 -07:00
cdalton
47c844aaba Adds a GrTBaseList class that GrInOrderDrawBuffer uses to allocate
all its commands interleaved in contiguous memory. GrTBaseList also
supports extra data associated with objects, so we can store arrays
inline without having to call malloc().

Review URL: https://codereview.chromium.org/628453002
2014-10-13 12:43:10 -07:00
reed
96affcde22 add pictures to lua
BUG=skia:

Review URL: https://codereview.chromium.org/650263002
2014-10-13 12:38:04 -07:00
bsalomon
81beccc4fb Devirtualize read/write pixels on surface.
Consolidate read/write funcs in context.

Remove support for reading pixels from a surface that's not a target. It's currently broken and neither used nor tested.

Review URL: https://codereview.chromium.org/648863002
2014-10-13 12:32:55 -07:00
reed
f355df5851 add canvas:clear to lua
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/648083002
2014-10-12 12:18:40 -07:00
reed
485557f95d add surfaces to lua
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/649973002
2014-10-12 10:36:48 -07:00
reed
09a1d6751c add key handlers to lua
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/652473002
2014-10-11 13:13:11 -07:00
joshualitt
a5305a110a Opt state takes a GP instead of a GeometryStage
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/71856d520461ae025a0332aa0ce9735a096d9baf

Review URL: https://codereview.chromium.org/637003003
2014-10-10 17:47:00 -07:00
reed
ba5fb932a1 add drawImageRect to lua, update sample
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/642353005
2014-10-10 15:28:19 -07:00
joshualitt
89c7a2ec3e Revert of Opt state takes a GP instead of a GeometryStage (patchset #18 id:1500001 of https://codereview.chromium.org/637003003/)
Reason for revert:
Revert because this may be causing a break in a chrome gpu test

Original issue's description:
> Opt state takes a GP instead of a GeometryStage
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/71856d520461ae025a0332aa0ce9735a096d9baf

TBR=bsalomon@google.com,egdaniel@google.com,danakj@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/647183002
2014-10-10 14:11:59 -07:00
robertphillips
7bb9ed756e Fix bug in GrCachedLayer reuse
In the new MultiPictureDraw tests a single hoisted layer is reused multiple times. The previous plot locking scheme allowed GrCachedLayer objects to be aggressively deleted prematurely leaving the reusing GrHoistedLayer objects with dangling pointers.

This CL changes adds a new pseudo-ref to GrCachedLayer. (It can't be a real ref since the cached layers aren't deleted when it goes to 0).

NOTRY=true

Committed: https://skia.googlesource.com/skia/+/5c481666c9678f43e039ad605457be3854cf8de3

Review URL: https://codereview.chromium.org/640323002
2014-10-10 11:38:29 -07:00
jvanverth
294c32612d Fix color emoji.
Removes the GrMaskFormat and single atlas in GrTextStrike.
Replaces it by storing the GrMaskFormat in each GrGlyph, and
doing a lookup for the correct atlas based on that.

Disables color glyph rendering in GrDistanceFieldTextContext
for now.

BUG=skia:2887

Committed: https://skia.googlesource.com/skia/+/bc92163ddfe957ad6ffbb02ac40e0ba75ff82216

Review URL: https://codereview.chromium.org/636183005
2014-10-10 11:36:12 -07:00
joshualitt
71856d5204 Opt state takes a GP instead of a GeometryStage
BUG=skia:

Review URL: https://codereview.chromium.org/637003003
2014-10-10 09:56:55 -07:00
jvanverth
e817dbb889 Revert of Fix color emoji. (patchset #11 id:320001 of https://codereview.chromium.org/636183005/)
Reason for revert:
Crashing the Windows bots.

Original issue's description:
> Fix color emoji.
>
> Removes the GrMaskFormat and single atlas in GrTextStrike.
> Replaces it by storing the GrMaskFormat in each GrGlyph, and
> doing a lookup for the correct atlas based on that.
>
> Disables color glyph rendering in GrDistanceFieldTextContext
> for now.
>
> BUG=skia:2887
>
> Committed: https://skia.googlesource.com/skia/+/bc92163ddfe957ad6ffbb02ac40e0ba75ff82216

TBR=robertphillips@google.com,bungeman@google.com,reed@google.com,bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2887

Review URL: https://codereview.chromium.org/640413004
2014-10-10 08:52:03 -07:00
jvanverth
bc92163ddf Fix color emoji.
Removes the GrMaskFormat and single atlas in GrTextStrike.
Replaces it by storing the GrMaskFormat in each GrGlyph, and
doing a lookup for the correct atlas based on that.

Disables color glyph rendering in GrDistanceFieldTextContext
for now.

BUG=skia:2887

Review URL: https://codereview.chromium.org/636183005
2014-10-10 08:21:29 -07:00
reed
40636a5303 faster SkRect::sort
BUG=skia:

Review URL: https://codereview.chromium.org/646863002
2014-10-10 05:50:15 -07:00
mtklein
092dab9822 Use BBH reserve hook to preallocate space for tiles.
Before getting too far into changing how SkTileGrid stores its tiles, I figured I'd
better see how much I can tweak out the existing format.  Cleverly, that way
any improvements I make by changing the format will look that much less
impressive.

This CL looks like it will be a 5-15% win in time spent recording, with no effect
on playback.

This CL also shrinks the tiles to fit exactly when we're done inserting,
using newly added SkTDArray::shrinkToFit().  It's quite cheap to run (maybe
taking back 1-2% from those 5-15% wins), and means we'll lug around about 15%
fewer bytes in the tile grids.  Note though this strategy temporarily uses up to
30% more memory while building the tile grid.  For our largest SKPs, that's
maybe 75-100K extra.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/52455cbc02d7f480d988ae7cdacc11ad69078c2c

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot

Review URL: https://codereview.chromium.org/639823005
2014-10-09 18:22:41 -07:00
robertphillips
232f6b0f90 Remove unused SaveLayerInfo::fValid field
Minor code cleanup

Review URL: https://codereview.chromium.org/643713002
2014-10-09 16:43:42 -07:00
robertphillips
cbe80caedd Refactor GrLayerHoister::FindLayersToHoist to prep for adding clip to cache key
NOTRY=true

Committed: https://skia.googlesource.com/skia/+/27415b71bd529456165945e19b5b7efbebf6fb51

Review URL: https://codereview.chromium.org/640373002
2014-10-09 15:36:06 -07:00
joshualitt
1598899975 FPs now use the correct builder types(just a rename)
BUG=skia:

Review URL: https://codereview.chromium.org/648463003
2014-10-09 15:04:05 -07:00
reed
1119c87065 cleanup and optimize rect intersect routines
BUG=skia:

Review URL: https://codereview.chromium.org/640723004
2014-10-09 14:29:01 -07:00
mtklein
7062a262e2 Revert of Use BBH reserve hook to preallocate space for tiles. (patchset #2 id:80001 of https://codereview.chromium.org/639823005/)
Reason for revert:
failed assertion "fXTiles * fYTiles != 0"

Original issue's description:
> Use BBH reserve hook to preallocate space for tiles.
>
> Before getting too far into changing how SkTileGrid stores its tiles, I figured I'd
> better see how much I can tweak out the existing format.  Cleverly, that way
> any improvements I make by changing the format will look that much less
> impressive.
>
> This CL looks like it will be a 5-15% win in time spent recording, with no effect
> on playback.
>
> This CL also shrinks the tiles to fit exactly when we're done inserting,
> using newly added SkTDArray::shrinkToFit().  It's quite cheap to run (maybe
> taking back 1-2% from those 5-15% wins), and means we'll lug around about 15%
> fewer bytes in the tile grids.  Note though this strategy temporarily uses up to
> 30% more memory while building the tile grid.  For our largest SKPs, that's
> maybe 75-100K extra.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/52455cbc02d7f480d988ae7cdacc11ad69078c2c

TBR=reed@google.com,robertphillips@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/642933002
2014-10-09 13:55:20 -07:00
egdaniel
d9aa218e81 Store color and coverage stages in a single array in GrOptDrawState.
BUG=skia:

Review URL: https://codereview.chromium.org/641223002
2014-10-09 13:47:05 -07:00
joshualitt
9e87fa7c0e Force linking of static member variables for GLPrograms
BUG=skia:

Review URL: https://codereview.chromium.org/614163002
2014-10-09 13:12:35 -07:00
robertphillips
00878a1f36 Revert of Refactor GrLayerHoister::FindLayersToHoist to prep for adding clip to cache key (patchset #1 id:1 of https://codereview.chromium.org/640373002/)
Reason for revert:
Failing unit tests

Original issue's description:
> Refactor GrLayerHoister::FindLayersToHoist to prep for adding clip to cache key
>
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/27415b71bd529456165945e19b5b7efbebf6fb51

TBR=jvanverth@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/644823003
2014-10-09 12:47:08 -07:00
robertphillips
a32c6bce1b Revert of Fix bug in plot locking system (patchset #3 id:80001 of https://codereview.chromium.org/640323002/)
Reason for revert:
Failing unit tests

Original issue's description:
> Fix bug in plot locking system
>
> In the new MultiPictureDraw tests a single hoisted layer is reused multiple times. The previous plot locking scheme allowed GrCachedLayer objects to be aggressively deleted prematurely leaving the reusing GrHoistedLayer objects with dangling pointers.
>
> This CL changes the plot locking system to add a pseudo-ref for each GrHoistedLayer.
>
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/5c481666c9678f43e039ad605457be3854cf8de3

TBR=jvanverth@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/643673004
2014-10-09 12:47:01 -07:00
mtklein
52455cbc02 Use BBH reserve hook to preallocate space for tiles.
Before getting too far into changing how SkTileGrid stores its tiles, I figured I'd
better see how much I can tweak out the existing format.  Cleverly, that way
any improvements I make by changing the format will look that much less
impressive.

This CL looks like it will be a 5-15% win in time spent recording, with no effect
on playback.

This CL also shrinks the tiles to fit exactly when we're done inserting,
using newly added SkTDArray::shrinkToFit().  It's quite cheap to run (maybe
taking back 1-2% from those 5-15% wins), and means we'll lug around about 15%
fewer bytes in the tile grids.  Note though this strategy temporarily uses up to
30% more memory while building the tile grid.  For our largest SKPs, that's
maybe 75-100K extra.

BUG=skia:

Review URL: https://codereview.chromium.org/639823005
2014-10-09 12:36:48 -07:00
robertphillips
5c481666c9 Fix bug in plot locking system
In the new MultiPictureDraw tests a single hoisted layer is reused multiple times. The previous plot locking scheme allowed GrCachedLayer objects to be aggressively deleted prematurely leaving the reusing GrHoistedLayer objects with dangling pointers.

This CL changes the plot locking system to add a pseudo-ref for each GrHoistedLayer.

NOTRY=true

Review URL: https://codereview.chromium.org/640323002
2014-10-09 12:30:10 -07:00
robertphillips
27415b71bd Refactor GrLayerHoister::FindLayersToHoist to prep for adding clip to cache key
NOTRY=true

Review URL: https://codereview.chromium.org/640373002
2014-10-09 12:29:24 -07:00
egdaniel
acd3e6d342 Fix restore in AVMR to have correct coverage count.
BUG=skia:

Review URL: https://codereview.chromium.org/638173003
2014-10-09 12:07:21 -07:00
mtklein
e099dd73df Small improvements to SkBitSet:
- implement O(1) operations in SkBitSet.h so they can inline away
  - use calloc to allocate empty bitsets instead of malloc then clear
  - little style things

BUG=skia:

Review URL: https://codereview.chromium.org/640243003
2014-10-09 11:49:30 -07:00
jmuizelaar
60e4ad7b29 Improve SkARGB32_A8_BlitMask_SSE2
With clang this:

-       movzbl  -3(%rbx), %edx
-       pxor    %xmm5, %xmm5
-       pinsrw  $0, %edx, %xmm5
-       pinsrw  $1, %edx, %xmm5
-       movzbl  -2(%rbx), %edx
-       pinsrw  $2, %edx, %xmm5
-       pinsrw  $3, %edx, %xmm5
-       movzbl  -1(%rbx), %edx
-       pinsrw  $4, %edx, %xmm5
-       pinsrw  $5, %edx, %xmm5
-       movzbl  (%rbx), %edx
-       pinsrw  $6, %edx, %xmm5
-       pinsrw  $7, %edx, %xmm5

becomes:

+       movd    (%rbx), %xmm4
+       punpcklbw       %xmm9, %xmm4
+       punpcklwd       %xmm4, %xmm4

And clang already does better codegen than msvc 2013 on this.

BUG=skia:

Review URL: https://codereview.chromium.org/609823003
2014-10-09 11:43:02 -07:00
egdaniel
089f8de82d Remove tab parameter from GrGLSLMulVarBy4f function
With pretty printing of shader code, there is no longer a need to explictily
have tabs in our code.

BUG=skia:

Review URL: https://codereview.chromium.org/648463002
2014-10-09 10:34:59 -07:00
bsalomon
1e2530babb Use presence of a content key as non-scratch indicator
BUG=skia:2889

Committed: https://skia.googlesource.com/skia/+/9eefe0851eeaa8ded05b4774ebcb38ed201d5dbf

Review URL: https://codereview.chromium.org/639873002
2014-10-09 09:57:18 -07:00
sugoi
9a7f29ee5e Leak fixed
BUG=skia:

Review URL: https://codereview.chromium.org/639423002
2014-10-09 08:09:04 -07:00
joshualitt
651713408c gl programs rewrite
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/07a255310aca9f3e83bf741dc663a58818ad681c

Review URL: https://codereview.chromium.org/628633003
2014-10-09 07:25:36 -07:00
mtklein
208d1704c2 Add SkBBoxHierarchy::reserve() as an optional size hint.
I want to play around with how SkTileGrid stores its tiles.  Having a
cap on the number of insert() calls can be pretty handy.

While I'm at it, I gave flush() a default empty impl.  Like reserve(),
it's really an optional hook for subclasses.

BUG=skia:

Review URL: https://codereview.chromium.org/639933003
2014-10-09 06:49:47 -07:00
caryclark
feff7d2d77 Draw more accurate thick-stroked Beziers (disabled)
Draw thick-stroked Beziers by computing the outset quadratic, measuring the error, and subdividing until the error is within a predetermined limit.

To try this CL out, change src/core/SkStroke.h:18 to

  #define QUAD_STROKE_APPROXIMATION 1

or from the command line: CPPFLAGS="-D QUAD_STROKE_APPROXIMATION=1" ./gyp_skia

Here's what's in this CL:

bench/BezierBench.cpp : a microbench for examining where the time is going
gm/beziers.cpp        : random Beziers with various thicknesses
gm/smallarc.cpp       : a distillation of bug skia:2769
samplecode/SampleRotateCircles.cpp : controls added for error, limit, width
src/core/SkStroke.cpp : the new stroke implementation (disabled)
tests/StrokerTest.cpp : a stroke torture test that checks normal and extreme values

The new stroke algorithm has a tweakable parameter:

  stroker.setError(1);  (SkStrokeRec.cpp:112)

The stroke error is the allowable gap between the midpoint of the stroke quadratic and the center Bezier. As the projection from the quadratic approaches the endpoints, the error is decreased proportionally so that it is always inside the quadratic curve.

An overview of how this works:
- For a given T range of a Bezier, compute the perpendiculars and find the points outset and inset for some radius.
- Construct tangents for the quadratic stroke.
- If the tangent don't intersect between them (may happen with cubics), subdivide.
- If the quadratic stroke end points are close (again, may happen with cubics), draw a line between them.
- Compute the quadratic formed by the intersecting tangents.
- If the midpoint of the quadratic is close to the midpoint of the Bezier perpendicular, return the quadratic.
- If the end of the stroke at the Bezier midpoint doesn't intersect the quad's bounds, subdivide.
- Find where the Bezier midpoint ray intersects the quadratic.
- If the intersection is too close to the quad's endpoints, subdivide.
- If the error is large proportional to the intersection's distance to the quad's endpoints, subdivide.

BUG=skia:723,skia:2769

Review URL: https://codereview.chromium.org/558163005
2014-10-09 05:36:04 -07:00
reed
5867736b08 use real pdfdevice behind SkDocument
BUG=skia:
TBR=bungeman@google.com

Review URL: https://codereview.chromium.org/645563002
2014-10-09 05:30:10 -07:00
sugoi
ce686270f5 Adding 3D lut color filter
Included in this cl is support for 3D textures.

BUG=skia:

Review URL: https://codereview.chromium.org/580863004
2014-10-09 05:27:23 -07:00
kkinnunen
9e61bb7815 Make the Sk GL context class an abstract base class
Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before,
it depended on ifdefs to implement the platform dependent polymorphism.  Move
the logic to subclasses of the various platform implementations.

This a step to enable Skia embedders to compile dm and bench_pictures. The
concrete goal is to support running these test apps with Chromium command buffer.

With this change, Chromium can implement its own version of SkGLNativeContext
that uses command buffer, and host the implementation in its own repository.

Implements the above by renaming the SkGLContextHelper to SkGLContext and
removing the unneeded SkGLNativeContext. Also removes
SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused:
no use in Skia code, and no tests.

BUG=skia:2992

Committed: https://skia.googlesource.com/skia/+/a90ed4e83897b45d6331ee4c54e1edd4054de9a8

Review URL: https://codereview.chromium.org/630843002
2014-10-09 05:24:15 -07:00
bsalomon
81e64484ff Remove ~GrIORef since last remaining virtual and now all inline
TBR=reed@google.com
NOTRY=true

Review URL: https://codereview.chromium.org/638003003
2014-10-08 11:42:10 -07:00
bsalomon
0f9e8a720c Revert of Use presence of a content key as non-scratch indicator (patchset #5 id:80001 of https://codereview.chromium.org/639873002/)
Reason for revert:
breaking nanobench on ubuntu

Original issue's description:
> Use presence of a content key as non-scratch indicator
>
> BUG=skia:2889
>
> Committed: https://skia.googlesource.com/skia/+/9eefe0851eeaa8ded05b4774ebcb38ed201d5dbf

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2889

Review URL: https://codereview.chromium.org/642493003
2014-10-08 11:21:33 -07:00
bsalomon
9eefe0851e Use presence of a content key as non-scratch indicator
BUG=skia:2889

Review URL: https://codereview.chromium.org/639873002
2014-10-08 10:48:15 -07:00
jvanverth
0fedb19812 Rearrange code in TextContexts to be more consistent and match style guide.
Review URL: https://codereview.chromium.org/641613003
2014-10-08 09:07:27 -07:00
bsalomon
bcf0a52d4f GrResourceCache2 manages scratch texture.
BUG=skia:2889

Review URL: https://codereview.chromium.org/608883003
2014-10-08 08:40:09 -07:00
egdaniel
47326ab5bb Fix conditional check when copying coverage stages in ODS
BUG=skia:

Review URL: https://codereview.chromium.org/639773004
2014-10-08 07:39:19 -07:00
egdaniel
9cf45bf119 Delay copying effects from DS or ODS till end of creating ODS
Also delay the removal of fixed function VA's until so we only have to do a single removal step

BUG=skia:

Review URL: https://codereview.chromium.org/634073002
2014-10-08 06:49:10 -07:00
reed
9d93c2ebb3 Add SkCachedData and use it for SkMipMap
This reverts commit 37c5a815d8.

TBR=mtklein

Review URL: https://codereview.chromium.org/635333002
2014-10-08 05:17:12 -07:00
robertphillips
d61ef01f17 Expose layer hoisting API in GrContext
This CL exposes the layer hoisting API in GrContext for use in SkMultiPictureDraw::draw. It basically mirrors what SkGpuDevice::EXPERIMENTAL_drawPicture has been doing.

Review URL: https://codereview.chromium.org/533673002
2014-10-08 05:17:02 -07:00
bsalomon
10805961ce Revert of Make the Sk GL context class an abstract base class (patchset #4 id:60001 of https://codereview.chromium.org/630843002/)
Reason for revert:
nanobech failing on Android

Original issue's description:
> Make the Sk GL context class an abstract base class
>
> Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before,
> it depended on ifdefs to implement the platform dependent polymorphism.  Move
> the logic to subclasses of the various platform implementations.
>
> This a step to enable Skia embedders to compile dm and bench_pictures. The
> concrete goal is to support running these test apps with Chromium command buffer.
>
> With this change, Chromium can implement its own version of SkGLNativeContext
> that uses command buffer, and host the implementation in its own repository.
>
> Implements the above by renaming the SkGLContextHelper to SkGLContext and
> removing the unneeded SkGLNativeContext. Also removes
> SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused:
> no use in Skia code, and no tests.
>
> BUG=skia:2992
>
> Committed: https://skia.googlesource.com/skia/+/a90ed4e83897b45d6331ee4c54e1edd4054de9a8

TBR=kkinnunen@nvidia.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992

Review URL: https://codereview.chromium.org/639793002
2014-10-08 04:45:10 -07:00
bsalomon
a5ee45ce9d Revert of speculative fix for ios (patchset #1 id:1 of https://codereview.chromium.org/637293003/)
Reason for revert:
Need to revert a90ed4e838

Original issue's description:
> speculative fix for ios
>
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/96e89d5b45e8e293139ecd95302b5b4f07f8e9dc

TBR=
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/636153002
2014-10-08 04:43:50 -07:00
Brian Salomon
96e89d5b45 speculative fix for ios
TBR=

Review URL: https://codereview.chromium.org/637293003
2014-10-08 07:40:25 -04:00
kkinnunen
a90ed4e838 Make the Sk GL context class an abstract base class
Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before,
it depended on ifdefs to implement the platform dependent polymorphism.  Move
the logic to subclasses of the various platform implementations.

This a step to enable Skia embedders to compile dm and bench_pictures. The
concrete goal is to support running these test apps with Chromium command buffer.

With this change, Chromium can implement its own version of SkGLNativeContext
that uses command buffer, and host the implementation in its own repository.

Implements the above by renaming the SkGLContextHelper to SkGLContext and
removing the unneeded SkGLNativeContext. Also removes
SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused:
no use in Skia code, and no tests.

BUG=skia:2992

Review URL: https://codereview.chromium.org/630843002
2014-10-08 04:14:24 -07:00
joshualitt
47bb382830 Cleanup of shader building system
this is a huge refactor and cleanup of the gl shader building system in
Skia.  The entire shader building pipeline is now part of
GrGLProgramCreator, which takes a gp, and some fps, and creates a
program.  I added some subclasses of GrGLProgram to handle the
eccentricities of Nvpr/Nvpres.  Outside of the builders folder
and GrGLPrograms, this change is basically just a rename

solo gp

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/fe1233c3f12f81bb675718516bbb32f72af726ec

Review URL: https://codereview.chromium.org/611653002
2014-10-07 16:43:25 -07:00
derekf
e6efd39a33 Only use msaa target for blur mask when doAA is true
BUG=skia:2995

Review URL: https://codereview.chromium.org/639523002
2014-10-07 14:44:34 -07:00
joshualitt
db0d3ca070 Revert of Cleanup of shader building system (patchset #25 id:470001 of https://codereview.chromium.org/611653002/)
Reason for revert:
Seems to have messed up windows 7 gms

Original issue's description:
> Cleanup of shader building system
>
> this is a huge refactor and cleanup of the gl shader building system in
> Skia.  The entire shader building pipeline is now part of
> GrGLProgramCreator, which takes a gp, and some fps, and creates a
> program.  I added some subclasses of GrGLProgram to handle the
> eccentricities of Nvpr/Nvpres.  Outside of the builders folder
> and GrGLPrograms, this change is basically just a rename
>
>
> solo gp
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/fe1233c3f12f81bb675718516bbb32f72af726ec

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

Review URL: https://codereview.chromium.org/635533005
2014-10-07 12:42:26 -07:00
joshualitt
fe1233c3f1 Cleanup of shader building system
this is a huge refactor and cleanup of the gl shader building system in
Skia.  The entire shader building pipeline is now part of
GrGLProgramCreator, which takes a gp, and some fps, and creates a
program.  I added some subclasses of GrGLProgram to handle the
eccentricities of Nvpr/Nvpres.  Outside of the builders folder
and GrGLPrograms, this change is basically just a rename

solo gp

BUG=skia:

Review URL: https://codereview.chromium.org/611653002
2014-10-07 12:16:36 -07:00
Brian Salomon
9323b8b8e1 Revert "GrResourceCache2 manages scratch texture."
This reverts commit d14e1a2764.
2014-10-07 15:07:38 -04:00
mtklein
65be97d1a1 Stay in floats as much as possible in SkTileGrid, particularly in insert.
SkTileGrid::insert() is about 15% of recording time before
this CL, which reduces it to ~10%.  Next steps are looking
into some of the TODOs I've left myself, and vectorizing
the math.

Most of the win here comes from converting integer
divisions into float multiplies.

BUG=skia:1021

Review URL: https://codereview.chromium.org/615853007
2014-10-07 11:46:39 -07:00
mtklein
fb1fe4f518 Add SkPaint::getHash().
BUG=skia:

Review URL: https://codereview.chromium.org/637583002
2014-10-07 09:26:10 -07:00
joshualitt
d909759832 Revert of gl programs rewrite (patchset #10 id:180001 of https://codereview.chromium.org/628633003/)
Reason for revert:
breaks angle bot

Original issue's description:
> gl programs rewrite
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/07a255310aca9f3e83bf741dc663a58818ad681c

TBR=bsalomon@google.com,egdaniel@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/631183003
2014-10-07 08:37:36 -07:00
joshualitt
07a255310a gl programs rewrite
BUG=skia:

Review URL: https://codereview.chromium.org/628633003
2014-10-07 08:05:21 -07:00
jvanverth
f19657f1d4 Fix for perspective GMs and df paths.
Review URL: https://codereview.chromium.org/636933003
2014-10-07 08:04:58 -07:00
bsalomon
d14e1a2764 GrResourceCache2 manages scratch texture.
BUG=skia:2889

Review URL: https://codereview.chromium.org/608883003
2014-10-07 07:27:07 -07:00
egdaniel
b109ac22b4 Make createOptDrawState return NULL if we would end up not drawing
BUG=skia:

Review URL: https://codereview.chromium.org/630063002
2014-10-07 06:45:44 -07:00
reed
d3ce6b44e5 explicitly delete our c++ window on quit
BUG=skia:
TBR=
NOTRY=True

Review URL: https://codereview.chromium.org/633923002
2014-10-07 06:42:09 -07:00
bsalomon
ebfce4149e Revert of Don't readback and reupload texture-backed bitmaps (patchset #1 id:1 of https://codereview.chromium.org/635573004/)
Reason for revert:
This fails on some Android devices, missing part of tileimagefilter GM which were previously triggering the readback/upload code path.

Original issue's description:
> Don't readback and reupload texture-backed bitmaps
>
> Committed: https://skia.googlesource.com/skia/+/b9ab5631703c258f1aae7a3ca1bb4b6596b5b42c

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/632293002
2014-10-07 06:20:25 -07:00
bsalomon
f80bfedc42 GrContext::copyTexture->GrContext::copySurface.
Add a flush writes pixel ops flag.

Add an explicit flush writes for GrSurface.

BUG=skia:2977

Committed: https://skia.googlesource.com/skia/+/cf99b00980b6c9c557e71abf1a7c9f9b21217262

Review URL: https://codereview.chromium.org/622663002
2014-10-07 05:56:02 -07:00
bsalomon
b9ab563170 Don't readback and reupload texture-backed bitmaps
Review URL: https://codereview.chromium.org/635573004
2014-10-07 05:19:24 -07:00
reed
3fc02f1720 override applicationShouldTerminate so we can cleanup when we quit
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/636723002
2014-10-07 03:59:34 -07:00
reed
4302ae91b0 add surfaceprops to SkWindow, and 'D' to toggle distancefieldfonts
BUG=skia:

Review URL: https://codereview.chromium.org/631943002
2014-10-06 12:29:56 -07:00
robertphillips
410dd051c3 Fix some incorrect assumptions in GrLayerCache.cpp
Review URL: https://codereview.chromium.org/630173002
2014-10-06 12:19:50 -07:00
derekf
f4555aa53c Create MSAA render target for blur mask texture
Original Author: Henry Song <henrysong@samsung.com>

Review URL: https://codereview.chromium.org/616923004
2014-10-06 12:19:12 -07:00
egdaniel
307796bc2e Plumb OptDrawState down to VertexShaderBuilder
BUG=skia:

Review URL: https://codereview.chromium.org/628293002
2014-10-06 12:13:54 -07:00
mtklein
e356c7f0ee Restore a really single-threaded mode to DM.
Used to be:
   0 -> run on main thread plus an autodetected number of extra threads (default)
   N -> run on main thread plus N extra threads

Now it's:
  -1 -> run on main thread plus an autodetected number of extra threads (default)
   0 -> run on main thread
   N -> run on main thread plus N extra threads

BUG=skia:

Review URL: https://codereview.chromium.org/636593002
2014-10-06 11:24:08 -07:00
tfarina
6b87df2997 Fix usage of SK_BUILD_* defines.
Since we just 'define' them, but not attribute anything to them, like
'1' for example, cpp expands it to nothing and that breaks the "#if"
clauses.

To fix that, uses "#if defined(...)" which will correctly check if your
macro name was defined or not.

BUG=skia:2850
TEST=make most
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/628763005
2014-10-06 10:46:51 -07:00