aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
Commit message (Collapse)AuthorAge
* Retract GrRenderTarget a bitGravatar robertphillips2015-12-01
| | | | | | These sites don't necessarily need the full power of a GrRenderTarget object. This is a clean up for switching over to GrRenderTargetProxys. Review URL: https://codereview.chromium.org/1486923004
* Revert of Make NVPR a GL context option instead of a GL context (patchset #2 ↵Gravatar bsalomon2015-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1448883002/ ) Reason for revert: BUG=skia:4609 skbug.com/4609 Seems like GrContextFactory needs to fail when the NVPR option is requested but the driver version isn't sufficiently high. Original issue's description: > Make NVPR a GL context option instead of a GL context > > Make NVPR a GL context option instead of a GL context. > This may enable NVPR to be run with command buffer > interface. > > No functionality change in DM or nanobench. NVPR can > only be run with normal GL APIs. > > BUG=skia:2992 > > Committed: https://skia.googlesource.com/skia/+/eeebdb538d476c1bfc8b63a946094ca1b505ecd1 TBR=mtklein@google.com,jvanverth@google.com,kkinnunen@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:2992 Review URL: https://codereview.chromium.org/1486153002
* Make NVPR a GL context option instead of a GL contextGravatar kkinnunen2015-12-01
| | | | | | | | | | | | | Make NVPR a GL context option instead of a GL context. This may enable NVPR to be run with command buffer interface. No functionality change in DM or nanobench. NVPR can only be run with normal GL APIs. BUG=skia:2992 Review URL: https://codereview.chromium.org/1448883002
* Generate list of GPU contexts outside testsGravatar kkinnunen2015-12-01
| | | | | | | | | | | | Use DEF_GPUTEST_FOR_*_CONTEXT macros to obtain the test GPU context. Makes changing the context -related classes easier, since not all tests need to be changed. BUG=skia:2992 Review URL: https://codereview.chromium.org/1448873002
* Make onPrepareDraws constGravatar joshualitt2015-11-30
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1483103003
* APIs which took colorPOI / coveragePOI pairs updated to take a ↵Gravatar ethannicholas2015-11-30
| | | | | | | | GrPipelineOptimizations struct TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1480353002
* Revert of skstd -> std for unique_ptr (patchset #16 id:300001 of ↵Gravatar mtklein2015-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1436033003/ ) Reason for revert: Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release Original issue's description: > skstd -> std for unique_ptr > > TBR=reed@google.com > No public API changes. > > BUG=skia:4564 > > Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50 > > CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot > > Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065 > > Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c TBR=bungeman@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4564 Review URL: https://codereview.chromium.org/1482343002
* skstd -> std for unique_ptrGravatar mtklein2015-11-30
| | | | | | | | | | | | | | | TBR=reed@google.com No public API changes. BUG=skia:4564 Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065 Review URL: https://codereview.chromium.org/1436033003
* Support wbmp that are supported by SkImageDecoderGravatar scroggo2015-11-30
| | | | | | | | | | | | | | | The wbmp version of SkImageDecoder will support decoding an image where the second byte can be masked away with 0x9F. Prior to this CL, SkCodec checked that the entire byte was zero. The SkCodec implementation appears to be more correct (at least according to Wikipedia [1]), but it also means we could regress if someone was using an image that did not quite fit the specification. [1] https://en.wikipedia.org/wiki/Wireless_Application_Protocol_Bitmap_Format BUG=skia:3257 Review URL: https://codereview.chromium.org/1473673005
* Include conic weights in GrPath cache kSimpleVolatilePathDomain keysGravatar kkinnunen2015-11-26
| | | | | | | | | Include conic weights in the keys when caching GrPath in kSimpleVolatilePathDomain. BUG=skia:4580 Review URL: https://codereview.chromium.org/1472733002
* Don't use SkRect::MakeLargest() for clip bounds in image filter tests.Gravatar senorblanco2015-11-25
| | | | | | | | | | Much of the Skia code dealing with clip bounds does not handle overflow, so if we start doing any math on these rects, the code will break. Use explicit reasonable values instead. BUG=skia: Review URL: https://codereview.chromium.org/1479563002
* Fix SkMergeImageFilter crop rect computation.Gravatar senorblanco2015-11-25
| | | | | | | | | | | | | | | | | | | | | The crop rect should be applied to the union of the input bounds, not to the src input's bounds. These are often the same, since the saveLayer offscreen size is computed as the union of all the required bounds, but is not correct if the input primitive is not used (e.g., if all inputs are connected to SkImageSources). But this will change as we move to more accurate intermediate bounds computations (getting rid of the join() hacks as described in skbug.com/3194). Since we can't know this without actually processing the inputs, split SkMergeImageFilter processing into: - filter all inputs - applyCropRect to the union'ed bounds - allocate the destination - do the merge BUG=3194 Review URL: https://codereview.chromium.org/1475793002
* New API for computing optimization invariants.Gravatar ethannicholas2015-11-24
| | | | Review URL: https://codereview.chromium.org/1467553002
* Generate list of GPU contexts outside ImageTest testsGravatar kkinnunen2015-11-24
| | | | | | | | | | | | Use DEF_GPUTEST_FOR_*_CONTEXT macros to obtain the test GPU context. Makes changing the context -related classes easier, since not all tests need to be changed. BUG=skia:2992 Review URL: https://codereview.chromium.org/1454663002
* Don't create a GXPFactory when blend is SrcOverGravatar egdaniel2015-11-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1471053002
* Revert of skstd -> std for unique_ptr (patchset #16 id:300001 of ↵Gravatar mtklein2015-11-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1436033003/ ) Reason for revert: Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release has not updated yet. Original issue's description: > skstd -> std for unique_ptr > > TBR=reed@google.com > No public API changes. > > BUG=skia:4564 > > Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50 > > CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot > > Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065 TBR=bungeman@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4564 Review URL: https://codereview.chromium.org/1467333002
* skstd -> std for unique_ptrGravatar mtklein2015-11-23
| | | | | | | | | | | | | TBR=reed@google.com No public API changes. BUG=skia:4564 Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot Review URL: https://codereview.chromium.org/1436033003
* Add SkPngChunkReader.Gravatar scroggo2015-11-23
| | | | | | | | | | | | | | | | | | | | This class allows a client of SkCodec to read chunks in the data stream that are not recognized by libpng. This is used by Android to specify ninepatch data. Taken from SkImageDecoder::Peeker. Modify the name of the class and its method to be more specific to their use. Make SkImageDecoder::Peeker a subclass of the new class, to help stage the change in Android. Add a test to verify that it works. BUG=skia:4574 BUG=skia:3257 Committed: https://skia.googlesource.com/skia/+/3389e00136188800b98ca69488c0418c374fd78b Review URL: https://codereview.chromium.org/1040453002
* Revert of Add SkPngChunkReader. (patchset #9 id:160001 of ↵Gravatar scroggo2015-11-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1040453002/ ) Reason for revert: Busted Chromium builds: ../../third_party/skia/src/ports/SkImageDecoder_empty.cpp:63:17: error: no type named 'Peeker' in 'SkImageDecoder' SkImageDecoder::Peeker* SkImageDecoder::setPeeker(Peeker*) { ~~~~~~~~~~~~~~~~^ ../../third_party/skia/src/ports/SkImageDecoder_empty.cpp:63:51: error: unknown type name 'Peeker' SkImageDecoder::Peeker* SkImageDecoder::setPeeker(Peeker*) { Original issue's description: > Add SkPngChunkReader. > > This class allows a client of SkCodec to read chunks in the data > stream that are not recognized by libpng. This is used by Android > to specify ninepatch data. > > Taken from SkImageDecoder::Peeker. Modify the name of the class > and its method to be more specific to their use. Make > SkImageDecoder::Peeker a subclass of the new class, to help stage > the change in Android. > > Add a test to verify that it works. > > BUG=skia:4574 > BUG=skia:3257 > > Committed: https://skia.googlesource.com/skia/+/3389e00136188800b98ca69488c0418c374fd78b TBR=djsollen@google.com,reed@google.com,msarett@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4574 Review URL: https://codereview.chromium.org/1472863003
* Add SkPngChunkReader.Gravatar scroggo2015-11-23
| | | | | | | | | | | | | | | | | | This class allows a client of SkCodec to read chunks in the data stream that are not recognized by libpng. This is used by Android to specify ninepatch data. Taken from SkImageDecoder::Peeker. Modify the name of the class and its method to be more specific to their use. Make SkImageDecoder::Peeker a subclass of the new class, to help stage the change in Android. Add a test to verify that it works. BUG=skia:4574 BUG=skia:3257 Review URL: https://codereview.chromium.org/1040453002
* Review URL: https://codereview.chromium.org/1464593004Gravatar bsalomon2015-11-23
|
* Fix GLInterfaceValidation test after "Remove GrContextFactory::getGLContext"Gravatar kkinnunen2015-11-23
| | | | | | | Fix GLInterfaceValidation test crash after "Remove GrContextFactory::getGLContext" commit. Review URL: https://codereview.chromium.org/1464283002
* Remove GrContextFactory::getGLContextGravatar kkinnunen2015-11-22
| | | | | | | | | | | | | | | | | Remove GrContextFactory::getGLContext, it is problematic: It has the bug of not checking for the context type. It also is error-prone, since the GL context is not made current, but it is callers may assume it is current. It is also not used very much. Clients can use GrContextFactory::getContextInfo. BUG=skia: Review URL: https://codereview.chromium.org/1455093003
* Initial version of external_oes texture support and unit testGravatar bsalomon2015-11-22
| | | | | | Committed: https://skia.googlesource.com/skia/+/27a048700778d4cebfc23301d1780649791b0e03 Review URL: https://codereview.chromium.org/1451683002
* Revert[2] of "quick-accept clipRect calls"Gravatar reed2015-11-21
| | | | | | | | | This reverts commit ac8cabd729c75fdf774c0701b6ea7fd3ea5b9382. BUG=skia: TBR= Review URL: https://codereview.chromium.org/1470563003
* Revert of Initial version of external_oes texture support and unit test ↵Gravatar bsalomon2015-11-20
| | | | | | | | | | | | | | | | | | | (patchset #14 id:260001 of https://codereview.chromium.org/1451683002/ ) Reason for revert: Error wrapping external texture in GrTexture on some devices. Original issue's description: > Initial version of external_oes texture support and unit test > > Committed: https://skia.googlesource.com/skia/+/27a048700778d4cebfc23301d1780649791b0e03 TBR=joshualitt@google.com,egdaniel@google.com,robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1459323004
* Initial version of external_oes texture support and unit testGravatar bsalomon2015-11-20
| | | | Review URL: https://codereview.chromium.org/1451683002
* Revert of Make specialized SrcOver XPFactory (patchset #3 id:40001 of ↵Gravatar egdaniel2015-11-20
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1455273006/ ) Reason for revert: breaking some builds Original issue's description: > Make specialized SrcOver XPFactory > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/a7006d45217d128a94fa53cb4b827cca79bc7049 TBR=bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1464933003
* fix pathops coincidence fuzz bugGravatar caryclark2015-11-20
| | | | | | | | | | | | | | | | | | | | | Simplifying a series of rects with very large bounds triggers a coincidence bug where, after one of the intersection points that marks a coincident range has been deleted, it is referenced. Both the deletion and reference is (probably) happening in the SkOpCoincidence::AddExpanded() phase of HandleCoincidence(), and may signify a bug that could happen with usable input data, but I haven't been able to determine that. For now, abort the Simplify() when the erroneous condition is detected. TBR=reed@google.com BUG=558281 Review URL: https://codereview.chromium.org/1463923002
* Make specialized SrcOver XPFactoryGravatar egdaniel2015-11-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1455273006
* Add SkNx_cast().Gravatar mtklein2015-11-20
| | | | | | | | | | | | | | | | | | | | SkNx_cast() can cast between any of our vector types, provided they have the same number of elements. Any types should work with the default implementation, and we can drop in specializations as needed, like the SSE and NEON Sk4f -> Sk4i I included here as an example. To make this work, I made some internal name changes: SkNi<N,T> -> SkNx<N, T> SkNf<N> -> SkNx<N, float> User aliases (Sk4f, Sk16b, etc.) stay the same. We can land this first (it's PS1) if that makes things easier. BUG=skia: CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1464623002
* Eliminate SkFILE: it always is the same as FILE.Gravatar halcanary2015-11-20
| | | | Review URL: https://codereview.chromium.org/1467533003
* Initialize memory for BitMask and Clip test.Gravatar herb2015-11-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1466713002
* Generate list of GPU contexts outside SurfaceTest testsGravatar kkinnunen2015-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for feeding the tests with contexts directly to the unit test framework. This fixes the problem where tests are more complex than needed just in order to run the test code with multiple backends. Also makes it possible to change the logic how contexts are created. Instead of direct numbering, the different testable contexts may be generated from filtered cross-product of context options. For example: currently NVPR is a type of context. However, it could be also an on/off feature of any context. In order to test this kind of context, the enumeration can not be just of context type. It's simpler to move the enumeration out of the tests. A test targeting both normal and GPU backends would look like: static void test_obj_behavior(skiatest::Reporter* reporter, SkObj* obj, [other params] ) { ... test with obj and param .. } DEF_TEST(ObjBehavior, reporter) { for (auto& object : generate_object) { for (auto& other_param : generate_other_variant) { test_obj_behavior(reporter, object, other_param); } } } #if SK_SUPPORT_GPU DEF_GPUTEST_FOR_ALL_CONTEXTS(ObjBehavior_Gpu, reporter, context) { for (auto& object : generate_gpu_object) { for (auto& other_param : generate_other_variant) { test_obj_behavior(reporter, object, other_param); } } } #endif Uses the feature in SurfaceTests as an example. Moves SkSurface -related tests from ImageTest to SurfaceTest. BUG=skia:2992 Review URL: https://codereview.chromium.org/1446453003
* add SkPath::isRRectGravatar caryclark2015-11-19
| | | | | | | | | | | Add helper to track when a round rect was added to a path, and then return the SkRRect specification that describes it. Move the implementation for SkPath::RawIter to SkPathRef so it can be used there as well. R=reed@google.com,robertphillips@google.com Review URL: https://codereview.chromium.org/1461763004
* Record concat as Concat.Gravatar mtklein2015-11-19
| | | | | | | | | | | | This seems to cause very slight diffs on GMs. https://gold.skia.org/search2?issue=1462983002&unt=true&query=source_type%3Dgm&master=false I'm not sure I understand why. The diffs to at least pictureshader look like improvements. BUG=skia:4584 Review URL: https://codereview.chromium.org/1462983002
* Fix nearly-vertical gradient assertGravatar fmalita2015-11-19
| | | | | | | | Use a SkScalarNearlyZero(dx) test instead of !SkScalarIsFinite(invDx). R=reed@google.com Review URL: https://codereview.chromium.org/1456783005
* Fix GpuDrawPathTest on ANGLE and enable itGravatar kkinnunen2015-11-19
| | | | | | | | | | | Fix GpuDrawPathTest on ANGLE by avoiding a crash if MSAA surface creation fails. Enable the test. BUG=skia:4581 Review URL: https://codereview.chromium.org/1463493002
* Modernize SkRecordPattern.hGravatar mtklein2015-11-19
| | | | | | | | | | | | - Fold Or, Or3, Or4 into one flexible Or. - Fold Pattern1...Pattern7 into one flexible Pattern. - Rename Star Greedy Still fighting with a flexible get<N>() method instead of first, second, third, etc. BUG=skia: Review URL: https://codereview.chromium.org/1465443002
* Unit test for conic weight GrPath key collisionGravatar fmalita2015-11-19
| | | | | | | BUG=skia:4580 R=robertphillips@google.com,bsalomon@google.com Review URL: https://codereview.chromium.org/1454223002
* Add SkRecord::defrag().Gravatar mtklein2015-11-19
| | | | | | | | | | | | | Called by SkRecordOptimize(), this moves all the NoOps to the end and slices them off. This implementation with std::remove_if() is linear and doesn't malloc. No diffs: https://gold.skia.org/search2?issue=1461663003&unt=true&query=source_type%3Dgm&master=false BUG=skia: Review URL: https://codereview.chromium.org/1461663003
* [Reland] Fix NVPR assert for equivalent ovalsGravatar fmalita2015-11-18
| | | | | | | | | | | | | | | | | | | | | | For oval paths, GrPath ignores the point order and only uses the bounds when building its key. This is problematic because 1) point order is important when dashing 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal to the cached SkPath - which is not the case for ovals with different directions/different point order. With this CL we no longer use the reduced oval key when dashing, and instead fall through to the more general path cases. The assert is adjusted to accommodate "equivalent" ovals (when not dashing). Also re-enabled & updated the GpuDrawPath unit test (disabled in https://codereview.chromium.org/1456463003/, presumably due to the use of uninitialized SkRects). R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com Review URL: https://codereview.chromium.org/1457073002
* Make block size a template parameter of SkTLListGravatar bsalomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1457123002
* Revert of Fix NVPR assert for equivalent ovals (patchset #1 id:1 of ↵Gravatar stephana2015-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1457073002/ ) Reason for revert: Causes failures on Android and Win8: ... ( 137/1245MB 9) 73.9ms unit test GpuLayerCachec:\0\build\slave\workdir\build\skia\include\private\skuniqueptr.h:164: failed assertion "get() != pointer()" Caught exception 2147483651 EXCEPTION_BREAKPOINT ... Original issue's description: > Fix NVPR assert for equivalent ovals > > For oval paths, GrPath ignores the point order and only uses the bounds > when building its key. This is problematic because > > 1) point order is important when dashing > 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal > to the cached SkPath - which is not the case for ovals with different > directions/different point order. > > With this CL we no longer use the reduced oval key when dashing, and > instead fall through to the more general path cases. The assert is > adjusted to accommodate "equivalent" ovals (when not dashing). > > Also re-enabled & updated the GpuDrawPath unit test (disabled in > https://codereview.chromium.org/1456463003/, presumably due to the use > of uninitialized SkRects). > > R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com > > Committed: https://skia.googlesource.com/skia/+/f9b1577d763988ebc043ddabf80674f71571ecff TBR=bsalomon@google.com,cdalton@nvidia.com,robertphillips@google.com,fmalita@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1461913002
* simplify insertion methods for SkTLListGravatar bsalomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1459663002
* Fix NVPR assert for equivalent ovalsGravatar fmalita2015-11-18
| | | | | | | | | | | | | | | | | | | | | | For oval paths, GrPath ignores the point order and only uses the bounds when building its key. This is problematic because 1) point order is important when dashing 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal to the cached SkPath - which is not the case for ovals with different directions/different point order. With this CL we no longer use the reduced oval key when dashing, and instead fall through to the more general path cases. The assert is adjusted to accommodate "equivalent" ovals (when not dashing). Also re-enabled & updated the GpuDrawPath unit test (disabled in https://codereview.chromium.org/1456463003/, presumably due to the use of uninitialized SkRects). R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com Review URL: https://codereview.chromium.org/1457073002
* Fix buffer overrun, bit overrun and add a test.Gravatar herb2015-11-18
| | | | | | BUG=539691 Review URL: https://codereview.chromium.org/1453163002
* Add ShaderBuilders to EmitArgs and remove gettings from ProgBuilder.Gravatar egdaniel2015-11-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1457543003
* Move SkImage tests from SurfaceTest to ImageTestGravatar kkinnunen2015-11-17
| | | | | | | | | | | The general SkImage features seem to be tested in ImageTest instead of SurfaceTest. Helps in reviewing further reformatting of SurfaceTest. BUG=skia:2992 Review URL: https://codereview.chromium.org/1452123002
* SkTextBlob should store per-run text alignmentGravatar fmalita2015-11-17
| | | | | | | | | | SkPaint::Align is only observed for kDefault_Positioning AFAICT, but part of the run logical font nevertheless. BUG=skia:4567 R=mtklein@google.com,halcanary@google.com Review URL: https://codereview.chromium.org/1447403003