Commit Graph

13232 Commits

Author SHA1 Message Date
bsalomon
41ebbddd76 Exit early when draw can be skipped. Be more robust against abandoned GrContext.
R=egdaniel@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/428103003
2014-08-04 08:31:39 -07:00
humper
e86af3738a fix missing return in error case for bitmap scaler
BUG=skia:
R=bsalomon@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/431613003
2014-08-04 08:31:34 -07:00
kkinnunen
dddc18a6bb Make GrGLProgram be available to GrGLProgramDataManager
GL APIs such as glProgramPathFragmentInputGenNV need the explicit program id in
order to set the program resources. For GrGLProgramDataManager to call the APIs,
the program id needs to be available to the GrGLProgramDataManager.

One GrGLProgramDataManager is used to explicitly manage the resources of one
GrGLProgram. Refactor the classes to reflect this: make GrGLProgram create and
own GrGLProgramDataManager. This way the program id can be made available through
GrGLProgram backpointer.

In order to do this, remove the population of the program link results
information for uniforms in GrGLProgramDataManager during shader generation.

Instead, accumulate the info to the uniform list of GrGLShaderBuilder. After the
generation, compilation and link is successful, this info can be used to
construct both GrGLProgram and GrGLProgramDataManager.

Changes names of functions to create UniformHandles and convert them to list
indices. This tries to highlight that they're different lists, even though at
the moment they match index-wise. E.g the contract is that handles can be
created based on the shader builder state, and the object can later be set with
the handle and the manager that was created with the builder.

This is needed to support NV_path_rendering for GLES.

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/426553011
2014-08-03 23:19:46 -07:00
jvanverth
7883132a4e Fix for Chrome Canaries.
R=bsalomon@google.com
TBR=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/434623010
2014-08-01 17:15:20 -07:00
jvanverth
9bcd23b118 Rollback text allocation changes.
This also addresses an inadvertantly introduced distance field bug.

BUG=399125
R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/438683006
2014-08-01 14:05:19 -07:00
bungeman
c6f5784047 No longer ignore and rebaseline fontmgr gms. 2014-08-01 15:02:36 -04:00
george
c4ade57cd4 Ensure that SkDebugf is exported from the library.
This was caused by the change to always call SkDebugf() in SkASSERT(). There are many headers in Skia that call SkASSERT and so we were seeing linking issues in Gecko where we were using Skia across DLL boundaries.

R=reed@google.com, bsalomon@google.com, reed1
BUG=skia:

Author: george@mozilla.com

Review URL: https://codereview.chromium.org/438783002
2014-08-01 12:02:07 -07:00
halcanary
f91b47ff9e Revert of Memory improvements to render_pdfs; better DM pool size defaults (https://codereview.chromium.org/433063002/)
Reason for revert:
breaking android tests

Original issue's description:
> Memory improvements to render_pdfs; better DM pool size defaults
>
> Make SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE equal to
> skia_resource_cache_mb_limit, if that value is >0 (true for some
> low-memory Android devices).
>
> render_pdfs test program uses lazy decoding (and the discardable
> memory pool).
>
> BUG=skia:2743
>
> Committed: https://skia.googlesource.com/skia/+/66058b614d9c8cb63c24b1c779dd1a9a80752217

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/418173012
2014-08-01 11:54:48 -07:00
halcanary
a0cc8334da add a libjpeg test
This tests for a bug in libjpeg where INT32 is typedefed to long
and memory is written to outside of the array.

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/435753002
2014-08-01 10:31:48 -07:00
halcanary
66058b614d Memory improvements to render_pdfs; better DM pool size defaults
Make SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE equal to
skia_resource_cache_mb_limit, if that value is >0 (true for some
low-memory Android devices).

render_pdfs test program uses lazy decoding (and the discardable
memory pool).

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/433063002
2014-08-01 09:25:11 -07:00
mtklein
6e33e232df Skip all .skps in 565.
More SKPs are failing with a 565 target on other platforms:

http://108.170.220.120:10117/builders/Test-Win7-ShuttleA-HD2000-x86-Debug/builds/2938/steps/RunNanobench/logs/stdio

BUG=skia:2797
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/431983006
2014-08-01 08:23:39 -07:00
mtklein
92007583e4 SKPs-as-benches in nanobench
This is meant to replace bench_pictures.

CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Release-iOS-Trybot

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/425393004
2014-08-01 07:46:53 -07:00
Florin Malita
efea5a72d6 Remove SK_IGNORE_QUAD_RR_CORNERS_OPT-related code.
Now that the flag is no longer used in Chromium
(https://codereview.chromium.org/426593006/), we can remove it.

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

Review URL: https://codereview.chromium.org/430473012
2014-08-01 10:17:42 -04:00
joshualitt
5816233d23 FBFetch refactor + arm support
BUG=skia:
R=krajcevski@google.com, bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/433603002
2014-08-01 06:44:53 -07:00
Derek Sollenberger
3836dc80a6 Remove copile time enabling of SK_ARM_HAS_NEON.
We need to know this in our build system so that we can include
the necessary neon CPP files.

R=mtklein@google.com

Review URL: https://codereview.chromium.org/432453003
2014-08-01 09:21:19 -04:00
djsollen
21769c5249 Update NEON compiler defines to use SK_ prefix
BUG=skia:2785
R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/433513004
2014-08-01 05:32:32 -07:00
mtklein
490d49c5dc whitespace change to force a build
BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/432183002
2014-07-31 17:36:07 -07:00
mtklein
2f4a69d377 Clean up skia_directwrite GYP variable.
BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/435553004
2014-07-31 15:31:08 -07:00
krajcevski
4ad76e3511 Add initial pipeline for decompressors
Committed: https://skia.googlesource.com/skia/+/14a1df0bcd00734e6efbe4a21629fe95118815ef

R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/432503002
2014-07-31 14:12:51 -07:00
mtklein
e30b52ac7a Add missing source file for iOSShell.
CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Release-iOS-Trybot

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/430273003
2014-07-31 12:47:40 -07:00
mtklein
e714e75c72 nanobench: support GMs-as-benches
BUG=skia:
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/438683002
2014-07-31 12:13:48 -07:00
mtklein
e681c2a506 DM: only depend on GpuTest when it's a GPU build.
This seems to fix DM dynamic linking errors on IntelRHB.

Not clear why this device is the only one with this problem.  It does set
skia_gpu=0, but I can't reproduce the same failure on my desktop (skia_gpu=0,
skia_shared_lib=1, skia_arch_width=32).

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/435673002
2014-07-31 11:26:59 -07:00
robertphillips
0c42332859 Add CTM to the cached layers' key and reduce render target pingponging in layer pre-rendering
The CTM is required on the key so we will re-render when necessary.
The SkGpuDevice change ensures big layers in the midst of atlas-able layers don't cause a render target switch.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/433553002
2014-07-31 11:02:38 -07:00
mtklein
1b51d261ec Revert of Add initial pipeline for decompressors (https://codereview.chromium.org/432503002/)
Reason for revert:
New test is crashing on Android.

http://108.170.220.21:10117/builders/Test-Android-Nexus10-MaliT604-Arm7-Debug/builds/2509/steps/RunTests/logs/stdio

http://108.170.220.21:10117/builders/Test-Android-Nexus4-Adreno320-Arm7-Debug/builds/2313/steps/RunTests/logs/stdio

Original issue's description:
> Add initial pipeline for decompressors
>
> Committed: https://skia.googlesource.com/skia/+/14a1df0bcd00734e6efbe4a21629fe95118815ef

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

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/425223006
2014-07-31 09:34:21 -07:00
krajcevski
14a1df0bcd Add initial pipeline for decompressors
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/432503002
2014-07-31 08:42:06 -07:00
mtklein
ada972df35 sk_tool_utils_flags.cpp depends on GetResourcePath
BUG=skia:
R=caryclark@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/432033002
2014-07-31 08:31:56 -07:00
joshualitt
d9e183fce5 Fix for texture domain on imagination gpus
BUG=skia:
R=bsalomon@chromium.org, bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/421823003
2014-07-31 07:26:36 -07:00
caryclark
c2a484644a fix signed mismatch
R=egdaniel@google.com
TBR=egdaniel
NOTREECHECKS=true
NOTRY=true

BUG=skia:

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/433903002
2014-07-31 06:36:45 -07:00
Cary Clark
992c7b03ef Add standard fonts to all GMs.
Allow GM results to be compared across machines and platforms by
standardizing the fonts used by all tests.

This adds runtime flags to DM to use either the system font context (the
default), the fonts in the resources directory ( --resourceFonts ) or a set
of canonical paths generated from the fonts ( --portableFonts ).

This CL should leave the current DM results unchanged by default.

If the portable font data or resource font is missing when DM is run, it
falls back to using the system font context.

The create_test_font tool generates the paths and metrics read by DM
with the --portableFonts flag set, and generates the font substitution
tables read by DM with the --resourceFonts flag set.

If DM is run in SkDebug mode with the --reportUsedChars flag set, it
generates the corresponding data compiled into the create_test_font tool.

All GM tests set their typeface information by calling either

  sk_tool_utils::set_portable_typeface or
  sk_tool_utils::portable_typeface .

(The former takes the paint, the latter returns a SkTypeface.) These calls
can be removed in the future when the Font Manager can be superceded.

BUG=skia:2687
R=mtklein@google.com

Review URL: https://codereview.chromium.org/407183003
2014-07-31 08:58:44 -04:00
dneto
3f22e8c44a Fix end-of-pattern matching for Skia recording optimization.
The recorder optimizer's pattern matcher was accepting command sequences
when it shouldn't have.

In the submitted case, and the pattern matcher was looking for:
	saveLayer, drawBitmap, restore
and in the rendering for the submitted case, the sequence of commands
were:
	saveLayer, drawBitmap, drawBitmap, restore

This sequence was improperly accepted by the matcher, and the optimizer
reduced the sequence to:
	drawBitmap, drawBitmap
where the opacity from the saveLayer paint argument was applied
to the first drawBitmap only.

The user-visible effect in Chrome was a flashing effect on an image
caused by incorrect (too-high) opacity.

The patch adds a Skia test to check for pixel colour values in
a similarly structured recording.  All other Skia tests pass.
Blink layout tests also pass with this change.

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

Author: dneto@chromium.org

Review URL: https://codereview.chromium.org/430503004
2014-07-30 15:42:22 -07:00
senorblanco
3d822c29d4 Intersect SkPictureImageFilter bounds against clip bounds.
Intersect SkPictureImageFilter bounds against clip bounds
to avoid unnecessary processing. This is how the other
filters work (via applyCropRect()), but SkPictureImageFilter
maintains its own crop.

BUG=skia:
R=bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/428263003
2014-07-30 14:49:31 -07:00
egdaniel
0f1a7c42d7 Remove kDisableBlend_BlendOptFlag as it is no longer needed
BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/425153003
2014-07-30 13:18:32 -07:00
krajcevski
b3abe90145 Start the process of choosing the correct compression format
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/427093004
2014-07-30 13:08:11 -07:00
mtklein
e83909f76c Add some debugging to PremulAlphaRoundTrip test.
BUG=skia:2782
R=bensong@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/429313002
2014-07-30 12:37:19 -07:00
joshualitt
468217091c Test removal of mesa specific version parse
BUG=skia:
R=bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/430833002
2014-07-30 11:49:13 -07:00
senorblanco
55b6d8be99 Implement a persistent uniqueID-based cache for SkImageFilter.
Add a unique ID to SkImageFilter, and use it as part
of a persistent cache of image-filtered results. This is used for
caching frame-to-frame coherent filters.

We also keep track of which filter subtrees do not reference the
src input, and use a GenID of zero for the src input in that case.
That way, subtrees which are not dependent on the filter input can be
cached independently of it.

This gives approximately a 4X speedup on
letmespellitoutforyou.com/samples/svg/filter_terrain.svg on Z620
and Nexus10. The cache key consists of the uniqueID of the filter, the
clip bounds, the CTM and the genID of the input bitmap.

Since this does not yet handle the case where the input primitives
(and part of the resulting filter tree) are unchanged, we have
to keep around the external cache for that painting case.
When the work to cache unchanging input primitives is done, the
old cache can be removed, and the new UniqueIDCache will be renamed
to Cache.

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

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/414483003
2014-07-30 11:26:46 -07:00
krajcevski
78697816b0 Add query for whether or not we have compressedTexSubImage
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/430773004
2014-07-30 11:25:44 -07:00
bungeman
07cfb20a0b Correct Android FontMgr use of ttc index and remove unused code.
R=djsollen@chromium.org, tomhudson@google.com, djsollen@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/433503003
2014-07-30 11:05:22 -07:00
joshualitt
0e67808da7 Enabling texture_domain_effect
BUG=skia:
REVIEW=tbr
R=rmistry@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/425253003
2014-07-30 10:31:10 -07:00
george
8124bf072c Explicitly typedef GetUserDefaultLocaleName as WINVER may not be high enough when compiling to allow visibility of the function prototype in windows.h
R=bungeman@google.com, bungeman1

Author: george@mozilla.com

Review URL: https://codereview.chromium.org/422823008
2014-07-30 09:58:17 -07:00
mtklein
6d88e6ce51 Fix way-over-allocation in pipe.
https://codereview.chromium.org/283093002 fixed some bugs in pipe memory
allocation, but also introduced one of its own: nearly every block requested
from needOpBytes() got its own 16K allocation.

The correct logic is to take the requested size, add four more bytes for a
DrawOp, make sure that's 4-byte aligned, then check to see if there's enough
space for that in the current block.  If there's not, allocate at least
MIN_BLOCK_SIZE bytes to fit the request.

The bug is that I moved that round-up-to-MIN_BLOCK_SIZE step before checking
for space in the current block.  This means most (all?) blocks will be 16K but
never seem to have room to fit another allocation.  You need 8 bytes?  You get
16K.  You need 8 more bytes?  Nope, can't fit that.  Here's a new 16K...

This reverts the change to the test I made then, which really should have
tipped me off.  It was testing exactly this bug.

BUG=372671
R=tomhudson@chromium.org, tomhudson@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/433463003
2014-07-30 09:17:54 -07:00
jvanverth
1723bfc982 Add vertex bounds check for distance field rendering.
R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/432443002
2014-07-30 09:16:34 -07:00
bsalomon
3342ed55e1 Add rotated rects benchmarks
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/425263003
2014-07-30 08:58:20 -07:00
krajcevski
b5294e8d45 Bring LATC in line with other formats (i.e. write a blitter and
an "optimized" compression routine).

R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/429683003
2014-07-30 08:34:51 -07:00
robertphillips
ed6f03e5ed Fix ref counting of cached layer's texture
R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/431603002
2014-07-30 07:31:35 -07:00
rmistry
ff65bb9863 Whitespace change to test the CQ.
(SkipBuildbotRuns)

BUG=skia:
R=bensong@google.com

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/428183007
2014-07-30 07:24:17 -07:00
Brian Salomon
00683c7b9a Mark bleed GM images on GPU configs as baselined but associated with bug 2762
BUG=skia:2762

Review URL: https://codereview.chromium.org/431453006
2014-07-30 10:08:09 -04:00
Brian Salomon
5520e3be26 Rebaseline some images from ignored-tests.txt
BUG=skia:

Review URL: https://codereview.chromium.org/431583004
2014-07-30 09:40:56 -04:00
Brian Salomon
b174f2b3cc Rebaseline currently failing images. All look better or insignificantly different
Review URL: https://codereview.chromium.org/423283005
2014-07-30 09:27:19 -04:00
jvanverth
78f0718f4d Add effect caching to distance field text.
This also is a step towards unifying GrDistanceFieldTextureEffect and GrDistanceFieldLCDTextureEffect.

Committed: https://skia.googlesource.com/skia/+/137bac067306c5446bc4f9797bedc3bbaf302822

R=robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/424103002
2014-07-30 06:17:59 -07:00