Commit Graph

22877 Commits

Author SHA1 Message Date
mtklein
45e58c8807 Move sRGB <-> linear conversion components to their own files.
This makes them a little easier to use outside SkColorXform code.

I've added some notes about how best to use them and their eccentricities, and added a test.

Ultimately any software sRGB <-> linear conversion should funnel somehow through here.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128893002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2128893002
2016-07-07 14:47:36 -07:00
reed
6d2c3e7da6 add bounds to textblob
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2124113003

TBR=

Review-Url: https://codereview.chromium.org/2124113003
2016-07-07 14:10:14 -07:00
hush
c79fc33d3e Revert of Better encapsulate oval/rrect batchs. (patchset #5 id:80001 of https://codereview.chromium.org/2104423003/ )
Reason for revert:
This CL is suspected to break compilation on arm64.
https://build.chromium.org/p/chromium.android/builders/Android%20arm64%20Builder%20%28dbg%29/builds/5851/steps/compile/logs/stdio

Original issue's description:
> Better encapsulate oval/rrect batchs.
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2104423003
>
> Committed: https://skia.googlesource.com/skia/+/5fd209e8ee477c703bc5c11b008f247d515fc0fc
> Committed: https://skia.googlesource.com/skia/+/7f06c6947a3bef78dc57b9252779567c33604c90
> Committed: https://skia.googlesource.com/skia/+/11bf8b2eae7d1780cb969146422a2ab3b933047a

TBR=robertphillips@google.com,bsalomon@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2121313004
2016-07-07 13:58:39 -07:00
brianosman
180500e5f1 Revert of Use sRGB pixel config for ARGB masks (color emoji) (patchset #1 id:1 of https://codereview.chromium.org/2129913004/ )
Reason for revert:
Color text rendering failing on ANGLE

Original issue's description:
> Use sRGB pixel config for ARGB masks (color emoji)
>
> Fixes over-bright color emoji and GM:colortype in sRGB mode
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129913004
>
> Committed: https://skia.googlesource.com/skia/+/920af9fac3d9e275a93910d9c626ee7bc23ed17a

TBR=bungeman@google.com,jvanverth@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/2128583007
2016-07-07 13:18:51 -07:00
reed
45561a0b15 drawTextRSXform
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2130643004

Review-Url: https://codereview.chromium.org/2130643004
2016-07-07 12:47:17 -07:00
halcanary
a76a10b730 SkPDF: Fix encoding of unichr outside of basic plane
In ToUnicode table, write unicode codepoints as one or two UTF16BE
values, rather than a single hex, as the standard requires.

Factor out uint16 -> big-endian hex code.

SkUtils is now a namespace.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2120533002

Review-Url: https://codereview.chromium.org/2120533002
2016-07-07 12:31:55 -07:00
halcanary
492d6b5b06 SkPDF: fix PDFA-only metadata error
Review-Url: https://codereview.chromium.org/2119883002
2016-07-07 12:28:31 -07:00
brianosman
920af9fac3 Use sRGB pixel config for ARGB masks (color emoji)
Fixes over-bright color emoji and GM:colortype in sRGB mode

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129913004

Review-Url: https://codereview.chromium.org/2129913004
2016-07-07 12:22:39 -07:00
egdaniel
27bb284739 Check granularity in render pass bounds
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2126303002

Review-Url: https://codereview.chromium.org/2126303002
2016-07-07 11:58:35 -07:00
jvanverth
db37909347 Add offsets to GrVkBuffer.
BUG=skia:5031
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2127183002

Review-Url: https://codereview.chromium.org/2127183002
2016-07-07 11:18:46 -07:00
csmartdalton
a7f29640f6 Begin instanced rendering for simple shapes
Adds a module that performs instanced rendering and starts using it
for a select subset of draws on Mac GL platforms. The instance
processor can currently handle rects, ovals, round rects, and double
round rects. It can generalize shapes as round rects in order to
improve batching. The instance processor also employs new drawing
algorithms, irrespective of instanced rendering, that improve GPU-side
performance (e.g. sample mask, different triangle layouts, etc.).

This change only scratches the surface of instanced rendering. The
majority of draws still only have one instance. Future work may
include:

 * Passing coord transforms through the texel buffer.
 * Sending FP uniforms through instanced vertex attribs.
 * Using instanced rendering for more draws (stencil writes,
   drawAtlas, etc.).
 * Adding more shapes to the instance processor’s repertoire.
 * Batching draws that have mismatched scissors (analyzing draw
   bounds, inserting clip planes, etc.).
 * Bindless textures.
 * Uber shaders.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2066993003

Committed: https://skia.googlesource.com/skia/+/42eafa4bc00354b132ad114d22ed6b95d8849891
Review-Url: https://codereview.chromium.org/2066993003
2016-07-07 08:49:11 -07:00
jvanverth
d5f6e9a759 Only check resource tracking on program shutdown, not context shutdown
BUG=skia:5496
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128273002

Review-Url: https://codereview.chromium.org/2128273002
2016-07-07 08:21:48 -07:00
egdaniel
6e46eea63e Fix vulkan compile
TBR=jvanverth@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2122263003

Review-Url: https://codereview.chromium.org/2122263003
2016-07-07 08:12:33 -07:00
mtklein
e5fb9c8079 centralize VECTORCALL as SK_VECTORCALL
Gonna start using this, might as well define it once centrally.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2126253002

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

Review-Url: https://codereview.chromium.org/2126253002
2016-07-07 08:12:09 -07:00
egdaniel
75d2bfceae Correctly handle mat2x2 in Vulkan
BUG=skia:5497
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129953002

Review-Url: https://codereview.chromium.org/2129953002
2016-07-07 08:04:08 -07:00
bsalomon
11bf8b2eae Better encapsulate oval/rrect batchs.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2104423003

Committed: https://skia.googlesource.com/skia/+/5fd209e8ee477c703bc5c11b008f247d515fc0fc
Committed: https://skia.googlesource.com/skia/+/7f06c6947a3bef78dc57b9252779567c33604c90
Review-Url: https://codereview.chromium.org/2104423003
2016-07-07 07:55:24 -07:00
robertphillips
3950f0d723 Remove fColor from PathRenderer DrawPathArgs struct
This was getting in the way of other refactorings.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2126083002

Review-Url: https://codereview.chromium.org/2126083002
2016-07-07 07:33:13 -07:00
jvanverth
82356cc41f Pull out freelist allocation from GrVkSubHeap
BUG=skia:5031
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128673002

Review-Url: https://codereview.chromium.org/2128673002
2016-07-07 07:16:42 -07:00
ethannicholas
552882f768 fix for SkSL producing invalid branch after an OpKill
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129913002

Review-Url: https://codereview.chromium.org/2129913002
2016-07-07 06:30:48 -07:00
dvonbeck
3f58cd0eb8 Abstracted diffuse color map out of SkLightingShaderImpl into a generic SkShader
Will not run until after landing https://codereview.chromium.org/2106893003/

This CL's base is the CL for the addition of NormalSource to the API: https://codereview.chromium.org/2063793002/

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2062703003

Review-Url: https://codereview.chromium.org/2062703003
2016-07-06 20:03:46 -07:00
bsalomon
28ef39624a Hide NonAAStrokeRectBatch Geometry class and cleanup class.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2126893002

Review-Url: https://codereview.chromium.org/2126893002
2016-07-06 18:56:04 -07:00
egdaniel
7e8cc21d57 Fix bounds computation for non-aa hairlines when snapping to pixel centers
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2126913002

Review-Url: https://codereview.chromium.org/2126913002
2016-07-06 14:38:34 -07:00
jvanverth
47e3dbaab5 Deleting void pointers is bad, mmmkay?
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129483003

Review-Url: https://codereview.chromium.org/2129483003
2016-07-06 14:26:53 -07:00
liyuqian
2edb0f4a02 More accurate render time and continuous fresh
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129613002

Review-Url: https://codereview.chromium.org/2129613002
2016-07-06 14:11:32 -07:00
dvonbeck
5b794fad18 API change to allow for NormalSource selection at the user level.
This CL's base is the CL for CPU handling: https://codereview.chromium.org/2050773002/

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2063793002

Review-Url: https://codereview.chromium.org/2063793002
2016-07-06 13:58:36 -07:00
bsalomon
8b7a9e1e5a Hide geometry class in AAStrokeRectBatch and remove unused Append function.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2119813004

Review-Url: https://codereview.chromium.org/2119813004
2016-07-06 13:06:23 -07:00
jvanverth
069c464a6b Vulkan fixes for TesselatingPathRenderer test
- Be sure to release all secondard command buffers on shutdown
- Allow mapping of static buffers
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2123323002

Review-Url: https://codereview.chromium.org/2123323002
2016-07-06 12:56:11 -07:00
lsalzman
a4b8704e76 check for zero scale in SkDraw::ComputeResScaleForStroking
If the transform used to compute the res scale has both 0 scale and skew,
then it will currently compute a 0 res scale. This causes getFillPath
to trigger an assertion while using SkStroke since that can't handle
a 0 res scale.

Downstream Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1284356

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2125933003

Review-Url: https://codereview.chromium.org/2125933003
2016-07-06 12:19:56 -07:00
egdaniel
5c4a381b31 Grow descriptor pools by 1.5
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2121243002

Review-Url: https://codereview.chromium.org/2121243002
2016-07-06 12:00:12 -07:00
dvonbeck
ca9eeab0ea Fixed crash when RunInSeriesFP's color input is nil
SeriesFragmentProcessor would call emitChild with "" input color as opposed to nil input color when ginven a nil input color.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2106893003

Review-Url: https://codereview.chromium.org/2106893003
2016-07-06 12:00:06 -07:00
bungeman
61457a6b80 Add gm for various font rendering combinations.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2080453002

Review-Url: https://codereview.chromium.org/2080453002
2016-07-06 11:55:05 -07:00
bsalomon
a7d85ba138 Add gm that tests shaded stroked rectangles.
Fix GPU handling of previously untested cases.

Move rect->path fallback from SkGpuDevice to GrDrawContext.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2125663003

Review-Url: https://codereview.chromium.org/2125663003
2016-07-06 11:54:59 -07:00
bungeman
52fa668dc5 Update rebaseline instructions.
BUG=skia:2805

NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=2127953002

Review-Url: https://codereview.chromium.org/2127953002
2016-07-06 10:19:54 -07:00
csmartdalton
0d28e574ac Fix caching of sample locations
The original caching logic for sample locations wishfully assumed that
the GPU would always use the same sample pattern for render targets
that had the same number of samples. It turns out we can't rely on
that. This change improves the caching logic to handle mismatched
simple patterns with the same count, and adds a unit test that
emulates different sample patterns observed on real hardware.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2111423002

Committed: https://skia.googlesource.com/skia/+/09d49a3bfe2d1e652a648ce1ea0962b38d10d166
Review-Url: https://codereview.chromium.org/2111423002
2016-07-06 09:59:43 -07:00
robertphillips
01a19504c4 Move GrNonAAFillRectPerspectiveBatch to its own file
Get this out of the way of the upcoming changes (and add a test for it)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2108403005

Review-Url: https://codereview.chromium.org/2108403005
2016-07-06 09:58:57 -07:00
csmartdalton
afd6340d56 Check fIgnoresCoverage in GrPipeline::AreEqual
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2120153002

Review-Url: https://codereview.chromium.org/2120153002
2016-07-06 09:47:38 -07:00
reed
41c27e15ec Experiment: add flag for finish-recording to return null
BUG=skia:5495
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2106843004

Review-Url: https://codereview.chromium.org/2106843004
2016-07-06 09:29:17 -07:00
jvanverth
7ec9241330 Add resource tracking output and command buffer recycling
BUG=skia:5042
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2115993002

Review-Url: https://codereview.chromium.org/2115993002
2016-07-06 09:24:57 -07:00
djsollen
d5fd2ff490 Compile Vulkan when building for the Android framework.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129523002

Review-Url: https://codereview.chromium.org/2129523002
2016-07-06 09:17:36 -07:00
egdaniel
2f5792a06c Fix vulkan image sampling
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2118733005

Review-Url: https://codereview.chromium.org/2118733005
2016-07-06 08:51:23 -07:00
liyuqian
97a0918715 Try fix the mac build bot after removing Android SampleApp
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117793002

Review-Url: https://codereview.chromium.org/2117793002
2016-07-06 07:52:08 -07:00
bsalomon
4be9a30aed Increase batching for AA fill rects.
This allows batching of rects provided without a local matrix when local coords are required and when the view matrix changes.

It also allows batching of rects with a local matrix with rects without a local matrix.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2116823002

Committed: https://skia.googlesource.com/skia/+/e525ecaf63f225f1da6e9834f7a291c06ad44d23
Review-Url: https://codereview.chromium.org/2116823002
2016-07-06 07:03:26 -07:00
ethannicholas
8e5a588ab3 fix for Clang 3.8 warning in SkSL
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2118033002

Review-Url: https://codereview.chromium.org/2118033002
2016-07-06 06:55:44 -07:00
benjaminwagner
c3ea34b1ae Blacklist fontscalerdistortable on Win8.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=2109583003

Review-Url: https://codereview.chromium.org/2109583003
2016-07-06 06:55:04 -07:00
bsalomon
9c67381dbc Enlarge strokerect GM size to reveal hidden content
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2126723002

Review-Url: https://codereview.chromium.org/2126723002
2016-07-06 06:30:36 -07:00
fmalita
03912f141f Document SkSurface::MakeRaster's memory initialization
So clients don't go clearing w/ SK_ColorTRANSPARENT unnecessarily.

R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2066903003

Review-Url: https://codereview.chromium.org/2066903003
2016-07-06 06:22:06 -07:00
pdr
1e2a702c19 Update dev docs to reference the new skia debugger (skiaserve)
This patch adds a new markdown file describing the new debugger along
with instructions on running it locally and a sweet screenshot. The
screenshot has been sized to not be clipped when viewed in production.

The old documentation for the qt-based debugger has been marked as
deprecated and all docs referencing the old debugger have been updated.

BUG=skia:5493
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2121673002
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=2121673002

Review-Url: https://codereview.chromium.org/2121673002
2016-07-06 06:10:25 -07:00
reed
2dcb615c6f make setScaleTranslate public
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2122093002

TBR=

Review-Url: https://codereview.chromium.org/2122093002
2016-07-05 20:10:42 -07:00
ksakamoto
ec7f2ac728 Revert of Begin instanced rendering for simple shapes (patchset #20 id:380001 of https://codereview.chromium.org/2066993003/ )
Reason for revert:
This caused static initializer regressions in Chromium (crbug.com/625728).

Relevant build logs here:
Linux:
https://build.chromium.org/p/chromium/builders/Linux%20x64/builds/21849

Mac:
https://build.chromium.org/p/chromium/builders/Mac/builds/17350

Relevant lines from the error log:
Linux:
# InstanceProcessor.cpp GrUniqueKey::GenerateDomain()
# InstanceProcessor.cpp gr_instanced::kShapeBufferDomain
FAILED linux-release-64/sizes/nacl_helper-si/initializers: actual 8, expected 7, better lower
FAILED linux-release-64/sizes/chrome-si/initializers: actual 8, expected 7, better lower

Mac:
FAILED mac-release/sizes/chrome-si/initializers: actual 2, expected 0, better lower

Original issue's description:
> Begin instanced rendering for simple shapes
>
> Adds a module that performs instanced rendering and starts using it
> for a select subset of draws on Mac GL platforms. The instance
> processor can currently handle rects, ovals, round rects, and double
> round rects. It can generalize shapes as round rects in order to
> improve batching. The instance processor also employs new drawing
> algorithms, irrespective of instanced rendering, that improve GPU-side
> performance (e.g. sample mask, different triangle layouts, etc.).
>
> This change only scratches the surface of instanced rendering. The
> majority of draws still only have one instance. Future work may
> include:
>
>  * Passing coord transforms through the texel buffer.
>  * Sending FP uniforms through instanced vertex attribs.
>  * Using instanced rendering for more draws (stencil writes,
>    drawAtlas, etc.).
>  * Adding more shapes to the instance processor’s repertoire.
>  * Batching draws that have mismatched scissors (analyzing draw
>    bounds, inserting clip planes, etc.).
>  * Bindless textures.
>  * Uber shaders.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2066993003
>
> Committed: https://skia.googlesource.com/skia/+/42eafa4bc00354b132ad114d22ed6b95d8849891

NOTREECHECKS=true
TBR=bsalomon@google.com,egdaniel@google.com,robertphillips@google.com,csmartdalton@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:

Review-Url: https://codereview.chromium.org/2123693002
2016-07-05 03:54:53 -07:00
rmistry
42e6798696 Revert of Fix caching of sample locations (patchset #3 id:40001 of https://codereview.chromium.org/2111423002/ )
Reason for revert:
Seems to be causing Chromium roll failures:
* https://codereview.chromium.org/2120373003
* https://codereview.chromium.org/2117193002
* https://codereview.chromium.org/2124653002

Original issue's description:
> Fix caching of sample locations
>
> The original caching logic for sample locations wishfully assumed that
> the GPU would always use the same sample pattern for render targets
> that had the same number of samples. It turns out we can't rely on
> that. This change improves the caching logic to handle mismatched
> simple patterns with the same count, and adds a unit test that
> emulates different sample patterns observed on real hardware.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2111423002
>
> Committed: https://skia.googlesource.com/skia/+/09d49a3bfe2d1e652a648ce1ea0962b38d10d166

TBR=bsalomon@google.com,csmartdalton@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/2120403002
2016-07-04 17:45:06 -07:00