| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Moves the cap for mixed samples into GrShaderCaps and does not enable
it unless we have support for both dual source blending and
multisample disable.
Creates a dedicated cap for multisample disable.
Reconfigures the mixed samples cap to indicate the collective
capability of three different extensions:
GL_NV_framebuffer_mixed_samples
GL_NV_sample_mask_override_coverage
GL_EXT_raster_multisample
Imports tokens and procedures for GL_EXT_raster_multisample.
BUG=skia:
Review URL: https://codereview.chromium.org/1151793002
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1146903004
|
|
|
|
|
|
| |
BUG=skia:3829
Review URL: https://codereview.chromium.org/1148243002
|
|
|
|
|
|
|
| |
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/1147153004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cache lines and oval paths in their own cache domains. Skia has many
hard-to-replace codepaths that create volatile paths out of lines or
ovals.
Results for amd64:
desk_tigersvg.skp_1 3.06ms -> 3.07ms 1x
tabl_cnet.skp_1 2.3ms -> 2.3ms 1x
desk_baidu.skp_1 8.99ms -> 8.98ms 1x
desk_weather.skp_1 4.58ms -> 4.57ms 1x
desk_samoasvg.skp_1 12.3ms -> 12.3ms 1x
tabl_gamedeksiam.skp_1 15.8ms -> 15.7ms 1x
desk_chalkboard.skp_1 14.9ms -> 14.9ms 1x
desk_mapsvg.skp_1 6.57ms -> 6.54ms 1x
desk_wordpress.skp_1 2.2ms -> 2.19ms 1x
tabl_slashdot.skp_1 6.91ms -> 6.84ms 0.99x
desk_linkedin.skp_1 7.7ms -> 7.58ms 0.98x
desk_googlespreadsheet.skp_1 58.7ms -> 57.7ms 0.98x
tabl_ukwsj.skp_1 7.67ms -> 7.53ms 0.98x
tabl_engadget.skp_1 4.71ms -> 4.61ms 0.98x
desk_carsvg.skp_1 116ms -> 114ms 0.98x
tabl_nytimes.skp_1 3.71ms -> 3.61ms 0.97x
desk_googlespreadsheetdashed.skp_1 25.8ms -> 24.9ms 0.97x
tabl_hsfi.skp_1 5.3ms -> 5.1ms 0.96x
tabl_techmeme.skp_1 2.9ms -> 2.8ms 0.96x
tabl_cnn.skp_1 6.88ms -> 6.62ms 0.96x
desk_espn.skp_1 9.12ms -> 8.64ms 0.95x
desk_gws.skp_1 5.15ms -> 4.88ms 0.95x
tabl_gspro.skp_1 4.48ms -> 4.2ms 0.94x
desk_yahooanswers.skp_1 6.84ms -> 6.3ms 0.92x
tabl_pravda.skp_1 11.1ms -> 10.1ms 0.91x
tabl_sahadan.skp_1 11.8ms -> 10.7ms 0.91x
desk_wowwiki.skp_1 8.48ms -> 7.58ms 0.89x
tabl_googleblog.skp_1 6ms -> 5.34ms 0.89x
tabl_worldjournal.skp_1 6.08ms -> 5.35ms 0.88x
desk_booking.skp_1 15.3ms -> 13.4ms 0.88x
tabl_androidpolice.skp_1 15.5ms -> 13.5ms 0.87x
desk_twitter.skp_1 12.2ms -> 10.6ms 0.87x
tabl_nofolo.skp_1 5.49ms -> 4.76ms 0.87x
desk_mobilenews.skp_1 22ms -> 18.9ms 0.86x
desk_forecastio.skp_1 9.47ms -> 8.05ms 0.85x
tabl_culturalsolutions.skp_1 6.21ms -> 5.28ms 0.85x
desk_youtube.skp_1 16.1ms -> 13.5ms 0.84x
tabl_mlb.skp_1 9.75ms -> 8.01ms 0.82x
tabl_digg.skp_1 5.2ms -> 4.22ms 0.81x
desk_blogger.skp_1 10.2ms -> 8.24ms 0.81x
desk_gmailthread.skp_1 26.8ms -> 21.6ms 0.81x
desk_googleplus.skp_1 10.5ms -> 8.39ms 0.8x
tabl_frantzen.skp_1 4.55ms -> 3.58ms 0.79x
desk_pinterest.skp_1 8.85ms -> 6.88ms 0.78x
desk_ebay.skp_1 10.5ms -> 8.15ms 0.77x
tabl_transformice.skp_1 4.93ms -> 3.5ms 0.71x
Results for arm_v7_neon:
desk_samoasvg.skp_1 13.9ms -> 14.6ms 1.05x
desk_mapsvg.skp_1 8.31ms -> 8.75ms 1.05x
tabl_deviantart.skp_1 1.41ms -> 1.45ms 1.02x
desk_weather.skp_1 3.8ms -> 3.88ms 1.02x
desk_sfgate.skp_1 3.06ms -> 3.1ms 1.01x
desk_css3gradients.skp_1 2.78ms -> 2.79ms 1x
desk_espn.skp_1 6.52ms -> 6.43ms 0.99x
desk_gws.skp_1 4.16ms -> 4.09ms 0.98x
tabl_cnn.skp_1 4.66ms -> 4.58ms 0.98x
tabl_hsfi.skp_1 3.49ms -> 3.42ms 0.98x
tabl_cuteoverload.skp_1 2.41ms -> 2.35ms 0.98x
desk_yahooanswers.skp_1 5.28ms -> 5.14ms 0.97x
desk_carsvg.skp_1 90.8ms -> 87.9ms 0.97x
tabl_gspro.skp_1 2.81ms -> 2.71ms 0.96x
desk_wowwiki.skp_1 5.85ms -> 5.63ms 0.96x
tabl_pravda.skp_1 7.8ms -> 7.5ms 0.96x
desk_twitter.skp_1 8.14ms -> 7.8ms 0.96x
tabl_androidpolice.skp_1 10.4ms -> 9.96ms 0.96x
tabl_googleblog.skp_1 4.06ms -> 3.83ms 0.95x
desk_mobilenews.skp_1 15.2ms -> 14ms 0.93x
desk_booking.skp_1 9.89ms -> 9.08ms 0.92x
desk_forecastio.skp_1 6.16ms -> 5.65ms 0.92x
desk_blogger.skp_1 6.17ms -> 5.66ms 0.92x
tabl_digg.skp_1 3.73ms -> 3.41ms 0.91x
tabl_nofolo.skp_1 3.82ms -> 3.47ms 0.91x
tabl_worldjournal.skp_1 4.24ms -> 3.84ms 0.9x
desk_youtube.skp_1 10.5ms -> 9.39ms 0.9x
desk_googleplus.skp_1 7.01ms -> 6.19ms 0.88x
tabl_mlb.skp_1 5.91ms -> 5.22ms 0.88x
tabl_googlecalendar.skp_1 10.7ms -> 9.44ms 0.88x
desk_gmailthread.skp_1 19.2ms -> 16.8ms 0.88x
desk_ebay.skp_1 5.68ms -> 4.93ms 0.87x
desk_pinterest.skp_1 5.99ms -> 5.08ms 0.85x
desk_googlehome.skp_1 3.31ms -> 2.71ms 0.82x
tabl_transformice.skp_1 3.03ms -> 2.44ms 0.81x
desk_amazon.skp_1 6.05ms -> 4.84ms 0.8x
desk_facebook.skp_1 12.6ms -> 9.62ms 0.76x
Review URL: https://codereview.chromium.org/1120023005
|
|
|
|
|
|
|
|
|
|
| |
Specifying vertex attributes and the view matrix as mediump causes bad artifacts on Mali T6XX.
Covered by the bigmatrix GM in msaa4 mode.
BUG:skia=3545,3771
Review URL: https://codereview.chromium.org/1145273002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1148973002
|
|
|
|
|
|
| |
BUG=486977
Review URL: https://codereview.chromium.org/1148873004
|
|
|
|
|
|
|
|
| |
This requires we "first" add a has-picture bool to SkPictureShader serialized format.
BUG=chromium:486947, billions and billions of others.
Review URL: https://codereview.chromium.org/1151663002
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1151623002
|
|
|
|
|
|
|
|
|
|
|
|
| |
In my confusion yesterday I accidentally left this as a non-singleton.
The issue in Blink was not related to this being a singleton,
and it should be safe to make it one.
This means recording an empty picture properly costs zero mallocs.
BUG=skia:
Review URL: https://codereview.chromium.org/1147053002
|
|
|
|
|
|
|
|
| |
This should involve no mallocs, frees, or memcpys, and less refcounting.
BUG=skia:
Review URL: https://codereview.chromium.org/1144173002
|
|
|
|
|
|
|
|
|
|
|
|
| |
Multiple Master and TrueType fonts support variation axes.
This implements back-end support for axes on platforms which
support it.
Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97
Committed: https://skia.googlesource.com/skia/+/3489ee0f4fa34f124f9de090d12bdc2107d52aa9
Review URL: https://codereview.chromium.org/1027373002
|
|
|
|
|
|
|
|
|
| |
Comment out assert (runtime documentation)
It fails on Win 8 because the result isn't bit identical.
TBR=bungeman@google.com
Review URL: https://codereview.chromium.org/1148053003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If one of the inputs to a SkMergeImageFilter was clipped away or
otherwise caused the filterImage(...) invocation for it to return
false, the entire effect would be "failed" and return false --
regardless of if it had produced a result or not.
Instead of returning false directly if filterImage(...) for a source
returned false, consider all the inputs, and then only return false if
all of them do.
BUG=chromium:489046
Review URL: https://codereview.chromium.org/1133523006
|
|
|
|
|
|
|
|
| |
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/d706f11b6e3f4398ab93b23458a7599ee324be2c
Review URL: https://codereview.chromium.org/1142263002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1142263002/)
Reason for revert:
Broke compile on Linux
Original issue's description:
> small cleanup of GrAtlas
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d706f11b6e3f4398ab93b23458a7599ee324be2c
TBR=robertphillips@google.com,joshualitt@google.com,jvanverth@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1142273002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1142263002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1126043007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
These cover about 89% of draw calls from Blink SKPs,
and about 25% of draw calls from our GMs.
SkPicture handles:
- serialization and deserialization
- unique IDs
Everything else is left to the subclasses:
- playback(), cullRect()
- hasBitmap(), hasText(), suitableForGPU(), etc.
- LayerInfo / AccelData if applicable.
The time to record a 1-op picture improves a good chunk
(2 mallocs to 1), and the time to record a 0-op picture
greatly improves (2 mallocs to none):
picture_overhead_draw: 450ns -> 350ns
picture_overhead_nodraw: 300ns -> 90ns
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b
Latest blink_linux_rel:
http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/61248
Committed: https://skia.googlesource.com/skia/+/15877b6eae33a9282458bdb904a6d00440eca0ec
http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/62015
Review URL: https://codereview.chromium.org/1112523006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A stroked conic computes the outset quad's control point by
computing the intersection of the quad's endpoints. If the
the denominator used to compute the scale factor for the
control point is small, check to see if the numerator is also
small so that the division stays bounded.
Also clean up error returns and internal function calls to
simplify the code.
Additionally, remove comic max curvature (unimplemented) and call
extrema functions instead to handle cases where the conic is degenerate
or is a line.
R=reed@google.com, fmalita@chromium.org
BUG=skia:3843
Review URL: https://codereview.chromium.org/1144883003
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1133123009
|
|
|
|
|
|
|
|
| |
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/cbfe91d82500f4ae8c3ff7bd74b3021a4b89fd84
Review URL: https://codereview.chromium.org/1139723004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of https://codereview.chromium.org/1139723004/)
Reason for revert:
breaking bots
Original issue's description:
> Preliminary attempt to remove batch tracker
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/cbfe91d82500f4ae8c3ff7bd74b3021a4b89fd84
TBR=robertphillips@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1132323003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1139723004
|
|
|
|
|
|
|
|
| |
What is going on here is that, after the mapPoints in fillAANestedRects, devInside was upside down so the isEmpty check was always firing. I don't see why we need to avoid having devInside sorted.
BUG=488103
Review URL: https://codereview.chromium.org/1135753004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improve caching of dashed paths in GrStencilAndCoverPathRenderer.
Look up the (NVPR specific) GrGLPath based on GrStrokeInfo and
the original path.
Use unique keys for all GrPaths.
Dash the path with Skia dash stroker and use that path geometry for
NVPR path.
NVPR internal dashing stroke is not used, because the dashing
implementation of NVPR does not match Skia implementation.
Review URL: https://codereview.chromium.org/1116123003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set the "path stroke error bound" path parameter to 0.02 for all paths.
This means that the stroked path area will be within 98% of the stroke
width in path space.
This should fix many cases where NVPR stroked paths were visibly different to
Skia stroked paths. One such path is in dashcubics gm.
This increases the amount of subdivisions the path object creation will
make for paths that need it. This in turn will increase gpu object space
requirements sligthly. Both of these effects should be unnoticeable.
GL_NV_path_rendering.txt:
"""
Every path object has a stroke approximation bound parameter
(PATH_STROKE_BOUND_NV) that is a floating-point value /sab/ clamped
between 0.0 and 1.0 and set and queried with the PATH_STROKE_BOUND_NV
path parameter. Exact determination of samples swept an orthogonal
centered line segment along cubic Bezier segments and rational
quadratic Bezier curves (so non-circular partial elliptical arcs) is
intractable for real-time rendering so an approximation is required;
/sab/ intuitively bounds the approximation error as a percentage of
the path object's stroke width. Specifically, this path parameter
requests the implementation to stencil any samples within /sweep/
object space units of the exact sweep of the path's cubic Bezier
segments or partial elliptical arcs to be sampled by the stroke where
sweep = ((1-sab)*sw)/2
where /sw/ is the path object's stroke width. The initial value
of /sab/ when a path is created is 0.2. In practical terms, this
initial value means the stencil sample positions coverage within 80%
(100%-20%) of the stroke width of cubic and rational quadratic stroke
segments should be sampled.
"""
BUG=skia:2049
Review URL: https://codereview.chromium.org/1124423007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the code more readable by inheriting GrStrokeInfo from SkStrokeRec.
This should avoid the long .getStrokeRec() and .getStrokeRecPtr(). These
were a bit cumbersome especially in cases where an alias variable was
created for these, and then the reader had to keep track to which
StrokeInfo member the StrokeRec alias was pointing.
Removes SkStrokeRec::SkStrokeRec(const SkStrokeRec&). It was memcpying.
Try to play it safe wrt compiler using the possible padding of
superclass for subclass members. Instead, let the compiler generate
the copy constructor. Assignment operator was already
compiler-generated, so at least in that way this is consistent.
Renames GrStrokeInfo::applyDash to applyDashToPath for consistency
with superclass applyToPath.
Review URL: https://codereview.chromium.org/1128113008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #25 id:480001 of https://codereview.chromium.org/1112523006/)
Reason for revert:
win_chromium_compile_dbg_ng
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\skia\src\core\skia.SkBitmapHeap.obj.rsp /c ..\..\third_party\skia\src\core\SkBitmapHeap.cpp /Foobj\third_party\skia\src\core\skia.SkBitmapHeap.obj /Fdobj\skia\skia.cc.pdb
e:\b\build\slave\win\build\src\third_party\skia\include\core\skpicture.h(176) : error C2487: 'CURRENT_PICTURE_VERSION' : member of dll interface class may not be declared with dll interface
Original issue's description:
> Sketch splitting SkPicture into an interface and SkBigPicture.
>
> Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
> These cover about 89% of draw calls from Blink SKPs,
> and about 25% of draw calls from our GMs.
>
> SkPicture handles:
> - serialization and deserialization
> - unique IDs
>
> Everything else is left to the subclasses:
> - playback(), cullRect()
> - hasBitmap(), hasText(), suitableForGPU(), etc.
> - LayerInfo / AccelData if applicable.
>
> The time to record a 1-op picture improves a good chunk
> (2 mallocs to 1), and the time to record a 0-op picture
> greatly improves (2 mallocs to none):
>
> picture_overhead_draw: 450ns -> 350ns
> picture_overhead_nodraw: 300ns -> 90ns
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b
>
> Latest blink_linux_rel:
>
> http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/61248
>
> Committed: https://skia.googlesource.com/skia/+/15877b6eae33a9282458bdb904a6d00440eca0ec
TBR=reed@google.com,robertphillips@google.com,fmalita@chromium.org,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1130283004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
These cover about 89% of draw calls from Blink SKPs,
and about 25% of draw calls from our GMs.
SkPicture handles:
- serialization and deserialization
- unique IDs
Everything else is left to the subclasses:
- playback(), cullRect()
- hasBitmap(), hasText(), suitableForGPU(), etc.
- LayerInfo / AccelData if applicable.
The time to record a 1-op picture improves a good chunk
(2 mallocs to 1), and the time to record a 0-op picture
greatly improves (2 mallocs to none):
picture_overhead_draw: 450ns -> 350ns
picture_overhead_nodraw: 300ns -> 90ns
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b
Latest blink_linux_rel:
http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/61248
Review URL: https://codereview.chromium.org/1112523006
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1142053004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note: this can be disabled via:
GYP_DEFINES='skia_pdf_use_sfntly=0
Warning: dm is 34% slower and uses 9% more memory. This is
okay.
Motivation: We want to test this code path in DM, since it is
always used by Chromium and Android.
BUG=skia:3563
Committed: https://skia.googlesource.com/skia/+/6a53b04e26749ea61f690ece408f2a1c0a5ad5bb
Review URL: https://codereview.chromium.org/1134683006
|
|
|
|
|
|
| |
BUG=484998
Review URL: https://codereview.chromium.org/1143603003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1126423006
|
|
|
|
|
|
|
|
|
|
| |
Record the nesting level when finding the edge winding contribution
so that inner edges can be reversed as needed.
R=fmalita@chromium.org
BUG=skia:3838
Review URL: https://codereview.chromium.org/1140383002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
id:570001 of https://codereview.chromium.org/1134683006/)
Reason for revert:
break cros build
Original issue's description:
> SkPDF: Add Sfntly to DEPS, gyp
>
> Note: this can be disabled via:
> GYP_DEFINES='skia_pdf_use_sfntly=0
>
> Warning: dm is 34% slower and uses 9% more memory. This is
> okay.
>
> Motivation: We want to test this code path in DM, since it is
> always used by Chromium and Android.
>
> BUG=skia:3563
>
> Committed: https://skia.googlesource.com/skia/+/6a53b04e26749ea61f690ece408f2a1c0a5ad5bb
TBR=reed@google.com,mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3563
Review URL: https://codereview.chromium.org/1128353004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note: this can be disabled via:
GYP_DEFINES='skia_pdf_use_sfntly=0
Warning: dm is 34% slower and uses 9% more memory. This is
okay.
Motivation: We want to test this code path in DM, since it is
always used by Chromium and Android.
BUG=skia:3563
Review URL: https://codereview.chromium.org/1134683006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
id:220001 of https://codereview.chromium.org/1144433002/)
Reason for revert:
Many GMs changed, some totally busted.
Original issue's description:
> Move copy-surface-as-draw fallback to GrGLGpu.
>
> Committed: https://skia.googlesource.com/skia/+/5df6fee929823f50c55cc50f7c882a309c1b1de9
TBR=joshualitt@google.com,egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1142003003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds and uses fastMulDiv255Round() where possible,
which approximates x*y/255 as (x*y+x)/256. Seems like a sizeable
speedup, as seen below on Exclusion, Screen, and Modulate. The
existing NEON code uses this approximation for
{Src,Dst}x{In,Out,Over}, and without it we'd regress speed there.
This will require rebaselines whether or not we use this
approximation: the x86 bots change if we do, the ARM bots change
if we don't. None of the diffs are significant.
Desktop:
Xfermode_Screen_aa 5.82ms -> 5.54ms 0.95x
Xfermode_Modulate_aa 5.67ms -> 5.36ms 0.95x
Xfermode_Exclusion_aa 6.18ms -> 5.81ms 0.94x
Xfermode_Exclusion 5.03ms -> 4.24ms 0.84x
Xfermode_Screen 4.51ms -> 3.59ms 0.8x
Xfermode_Modulate 4.2ms -> 3.19ms 0.76x
Xfermode_DstOver 6.73ms -> 3.88ms 0.58x
Xfermode_SrcOut 6.47ms -> 3.48ms 0.54x
Xfermode_SrcIn 6.46ms -> 3.46ms 0.54x
Xfermode_DstOut 6.49ms -> 3.41ms 0.52x
Xfermode_DstIn 6.5ms -> 3.32ms 0.51x
Xfermode_Src_aa 9.53ms -> 4.75ms 0.5x
Xfermode_Clear_aa 9.65ms -> 4.8ms 0.5x
Xfermode_DstIn_aa 11.5ms -> 5.57ms 0.49x
Xfermode_DstOver_aa 11.6ms -> 5.63ms 0.49x
Xfermode_SrcOut_aa 11.6ms -> 5.5ms 0.47x
Xfermode_SrcIn_aa 11.7ms -> 5.51ms 0.47x
Xfermode_DstOut_aa 11.7ms -> 5.4ms 0.46x
N7 performance is close enough to 1x that I'm not sure whether
this is a net win, net loss, or truly neutral. I figure the bots will
show that.
I experimented with another approximation,
(x*(255-y))/255 ≈ (x*(256-y))/256. This was inconclusive, so I'm
leaving it out for now.
The remaining modes are the complicated conditional ones.
BUG=skia:
Review URL: https://codereview.chromium.org/1141953004
|
|
|
|
|
|
|
|
|
|
| |
Cherry-pick from Android.
Fixes master-skia build.
BUG=b/16523629
Review URL: https://codereview.chromium.org/1134403003
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1144433002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
added, and reverse windings if the contours are nested in other contours.
Cheap (one contour) paths can be evaluated and reversed as needed with a minimum of checking, but multi-contour paths invoke the regular path ops machinery to determine who is contained by whom.
More tests need to be added to verify that all corner cases are considered, but this fixes the cases in the bug thus far.
R=fmalita@chromium.org
TBR=reed@google.com
BUG=skia:3838
Review URL: https://codereview.chromium.org/1129193006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1027373002/)
Reason for revert:
Appears to be breaking Linux ARM bots:
FAILED:
/usr/local/google/home/mosaic-role/slave/repo_clients/chromium_tot/chromium/src/../../prebuilt/toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-g++
... -o obj/third_party/skia/src/ports/skia_library.SkFontHost_FreeType.o
../../third_party/skia/src/ports/SkFontHost_FreeType.cpp:37:31: fatal error:
freetype/ftmm.h: No such file or directory
#include FT_MULTIPLE_MASTERS_H
^
compilation terminated.
Original issue's description:
> Font variations.
>
> Multiple Master and TrueType fonts support variation axes.
> This implements back-end support for axes on platforms which
> support it.
>
> Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97
>
> Committed: https://skia.googlesource.com/skia/+/3489ee0f4fa34f124f9de090d12bdc2107d52aa9
TBR=reed@google.com,mtklein@google.com,djsollen@google.com,halcanary@google.com,bungeman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1139123008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
id:80002 of https://codereview.chromium.org/1134743003/)
Reason for revert:
likely affect layouttests, so need to add a guard
Original issue's description:
> antialias matrix-image-filter to get smooth diagonals
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/fa33f5a6b770130acdc55f2ffe19dd545665726a
TBR=senorblanco@google.com,robertphillips@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1128823010
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will cause minor (off-by-one) diffs due to a little lost precision:
colortype_xfermodes
mixed_xfermodes
xfermodes2
xfermodeimagefilter
xfermodes3
xfermodes
Desktop:
Xfermode_Difference_aa 9.77ms -> 7.32ms 0.75x
Xfermode_Exclusion_aa 8.49ms -> 6.21ms 0.73x
Xfermode_Difference 17ms -> 7.54ms 0.44x
Xfermode_Exclusion 13.5ms -> 5.09ms 0.38x
N7:
Xfermode_Difference_aa 32.2ms -> 27.6ms 0.86x
Xfermode_Difference 43.9ms -> 32ms 0.73x
Xfermode_Exclusion_aa 40.5ms -> 26.7ms 0.66x
Xfermode_Exclusion 71.5ms -> 23.9ms 0.33x
This wraps up the xfermodes implemented in Sk4f.
BUG=skia:
Review URL: https://codereview.chromium.org/1141213002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1134743003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1127933003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1131513005
|
|
|
|
|
|
|
|
|
|
|
| |
0x8001 / 0x7fff don't seem to work, but we were close: 0x8000 does.
I plan to use this to implement the Difference xfermode,
and it seems generally handy.
BUG=skia:
Review URL: https://codereview.chromium.org/1133933004
|