Added a unit test too.
BUG=chromium:756563
Change-Id: Ic77a89b4a98d1a553877af9807a3d3bdcd077bb9
Reviewed-on: https://skia-review.googlesource.com/44420
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
This does not add additional textures to the atlases, just adds the
ability to access those textures in the shaders.
Bug: skia:3550
Change-Id: I552e2c2e4713a5ea68801fdb8e3bab3867e77988
Reviewed-on: https://skia-review.googlesource.com/44261
Reviewed-by: Robert Phillips <robertphillips@google.com>
To continue building stages, update Clang and update your GN args:
$ brew update
$ brew upgrade llvm
$ find . | grep args.gn | xargs sed -ie 's/clang-4.0/clang-5.0/g'
Some interesting codegen changes I noticed:
- ARMv7: generally better register assignment, tighter code
- ARMv7: dropped the 128-bit alignment hint when loading and storing dst "registers",
unclear why.
- HSW: now clearing the destination register before vgatherdps,
to break a dependency on the previous value
Change-Id: I4f804a4cbfcde530fad5ed535438174e852a9593
Reviewed-on: https://skia-review.googlesource.com/44241
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
The issues are that we are intertwining removing things from the old and new
resource. This changes it so we do all the removal on the old resource first
then start updating the new resource.
Bug: skia:
Change-Id: I7ce4a309290cd499cdc4398c87d1cfd42ef6994d
Reviewed-on: https://skia-review.googlesource.com/44242
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Bug: skia:
Change-Id: I4f78abc836f22a216e94a47cb2a7414edccbd2b6
Reviewed-on: https://skia-review.googlesource.com/44201
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 7f754260f7.
Reason for revert: Bot failures.
Original change's description:
> Add multitexture support to text and path shaders
>
> This does not add additional textures to the atlases, just adds the
> ability to access those textures in the shaders.
>
> Bug: skia:3550
> Change-Id: I636b329a6f748b6753f5f92a70066fb412623df2
> Reviewed-on: https://skia-review.googlesource.com/43000
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com
Change-Id: I5c28ea48ed9bdde2cd936ef4f96fc720d5e4b4a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:3550
Reviewed-on: https://skia-review.googlesource.com/44162
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This reverts commit 4e95a88c83.
Bug: skia:
Change-Id: I5f849abff3f8406587e3d7cf990f50ef14fc4656
Reviewed-on: https://skia-review.googlesource.com/44220
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This does not add additional textures to the atlases, just adds the
ability to access those textures in the shaders.
Bug: skia:3550
Change-Id: I636b329a6f748b6753f5f92a70066fb412623df2
Reviewed-on: https://skia-review.googlesource.com/43000
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This reverts commit 1d3df3848f.
Reason for revert: Mac timeouts? crbug.com/763197
Original change's description:
> Optimize SkColorSpaceXformCanvas for GPU-acceleration
>
> This change ensures that SkImages are uploaded to the GPU before
> applying the xform when the destination canvas is on the GPU. This
> makes it possible to get hits in the texture cache and it ensures
> that transforms get computed on the GPU.
>
> This fixes a severe performance regression in Chrome that happened
> when color correction was enabled.
>
> Associated chromium patch for layout test rebaselines:
> https://chromium-review.googlesource.com/c/chromium/src/+/655483
>
> Merge dependency: Merging this change to the M-62 and M-61
> branches also requires merging the following change, otherwise
> there will be rendering errors:
> https://skia-review.googlesource.com/c/skia/+/43562
>
> BUG=chromium:760738
>
> Change-Id: I49fd5ef7968272d311249c3824fe15bee4648b73
> Reviewed-on: https://skia-review.googlesource.com/43183
> Commit-Queue: Justin Novosad <junov@chromium.org>
> Reviewed-by: Brian Osman <brianosman@google.com>
TBR=brianosman@google.com,junov@chromium.org
Change-Id: I1a43e9b277075d1aee0efd651c899e15ac3fa53b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:760738
Reviewed-on: https://skia-review.googlesource.com/44160
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
1de29abad1..95644f92dd
$ git log 1de29abad..95644f92d --date=short --no-merges --format='%ad %ae %s'
2017-09-07 ynovikov Make ScopedIgnorePlatformMessages work
Created with:
roll-dep skia/third_party/externals/angle2
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Perf-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE,Perf-Win10-MSVC-ZBOX-GPU-GTX1070-x86_64-Debug-ANGLE,Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Test-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE,Test-Win10-MSVC-ZBOX-GPU-GTX1070-x86_64-Debug-ANGLE
TBR=robertphillips@google.com
Change-Id: Ie3243322e6b6acd7a67f5661d0a43ad97a40d04f
Reviewed-on: https://skia-review.googlesource.com/44100
Reviewed-by: angle-deps-roller . <angle-deps-roller@chromium.org>
Commit-Queue: angle-deps-roller . <angle-deps-roller@chromium.org>
Runs the testing on Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN.
We only care about parsing SVGs CPU-side so there's no need to retest
it on every bot.
Bug: skia:6918
Change-Id: If2c5afbc41a600ece63d9a6a60f0dab5ca7b3676
Reviewed-on: https://skia-review.googlesource.com/43461
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Changes GrPathRenderer::canDrawPath to return a 'CanDrawPath' enum,
which contains a new kAsBackup value that means "I'm better than SW,
but give the path renderers below me a chance first."
Bug: skia:
Change-Id: Ia339567800a3127e61b9beaed19504cd504f18af
Reviewed-on: https://skia-review.googlesource.com/43761
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This reverts commit 2e50d0f5f9.
Reason for revert: Shader compilation error
Original change's description:
> Make TextureOp use multitexturing to batch draws of different SkImages.
>
> On a benchmark drawing small texture backed images this shows a 50% improvement on a Pixel XL 2016 and a little better than that on a Z840.
>
> Change-Id: I5c307ef0d8615aeae67bae7393874ad7e52eb233
> Reviewed-on: https://skia-review.googlesource.com/42121
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com,brianosman@google.com
Change-Id: I28b9a139627e2492a2af53dd82fc8c43be94464b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/43920
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
7cadfcc70c..3ed604246f
$ git log 7cadfcc70..3ed604246 --date=short --no-merges --format='%ad %ae %s'
2017-09-07 jmadill Test using the same texture with multiple samplers.
2017-09-06 mradev Extend multiview perf tests to cover all extension code paths
2017-09-06 geofflang Don't create SRVs for multisampled depth stencil textures in FL10.0.
Created with:
roll-dep skia/third_party/externals/angle2
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Perf-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE,Perf-Win10-MSVC-ZBOX-GPU-GTX1070-x86_64-Debug-ANGLE,Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Test-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE,Test-Win10-MSVC-ZBOX-GPU-GTX1070-x86_64-Debug-ANGLE
TBR=robertphillips@google.com
Change-Id: I88463dad887ed9f2d40c46ba50b6cbca27d9de9c
Reviewed-on: https://skia-review.googlesource.com/43586
Commit-Queue: angle-deps-roller . <angle-deps-roller@chromium.org>
Reviewed-by: angle-deps-roller . <angle-deps-roller@chromium.org>
Bug: skia:
Change-Id: Ie98c9c565ee9e2fd4d405389be9e9487cf71f951
Reviewed-on: https://skia-review.googlesource.com/43743
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
On a benchmark drawing small texture backed images this shows a 50% improvement on a Pixel XL 2016 and a little better than that on a Z840.
Change-Id: I5c307ef0d8615aeae67bae7393874ad7e52eb233
Reviewed-on: https://skia-review.googlesource.com/42121
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This reverts commit 60f42494f5.
Reason for revert: breaking gold
Original change's description:
> Improve GrPathRendererChain heuristics
>
> Changes GrPathRenderer::canDrawPath to return a 'CanDrawPath' enum,
> which contains a new kAsBackup value that means "I'm better than SW,
> but give the path renderers below me a chance first."
>
> Bug: skia:
> Change-Id: I45aac5462ca1bc0bc839eb1c315db9493901a07e
> Reviewed-on: https://skia-review.googlesource.com/42222
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
TBR=jvanverth@google.com,bsalomon@google.com,brianosman@google.com,csmartdalton@google.com,senorblanco@google.com
Change-Id: I46020dbd56b6f6b88668894285b9b7b80f89b9a2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/43780
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This change ensures that SkImages are uploaded to the GPU before
applying the xform when the destination canvas is on the GPU. This
makes it possible to get hits in the texture cache and it ensures
that transforms get computed on the GPU.
This fixes a severe performance regression in Chrome that happened
when color correction was enabled.
Associated chromium patch for layout test rebaselines:
https://chromium-review.googlesource.com/c/chromium/src/+/655483
Merge dependency: Merging this change to the M-62 and M-61
branches also requires merging the following change, otherwise
there will be rendering errors:
https://skia-review.googlesource.com/c/skia/+/43562
BUG=chromium:760738
Change-Id: I49fd5ef7968272d311249c3824fe15bee4648b73
Reviewed-on: https://skia-review.googlesource.com/43183
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
Changes GrPathRenderer::canDrawPath to return a 'CanDrawPath' enum,
which contains a new kAsBackup value that means "I'm better than SW,
but give the path renderers below me a chance first."
Bug: skia:
Change-Id: I45aac5462ca1bc0bc839eb1c315db9493901a07e
Reviewed-on: https://skia-review.googlesource.com/42222
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
The main change is to make GrSamplerParams smaller by making its enums have byte-sized underlying types. The rest is cosmetic.
Change-Id: Ib71ea50612d24619a85e463826c6b8dfb9b445e3
Reviewed-on: https://skia-review.googlesource.com/43200
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
This reverts commit 6e4bbbefe1.
Reason for revert: assertion failure
Original change's description:
> Remove "content" rect from GrTextureAdjuster.
>
> Since we got rid of texture-backed bitmaps this is no longer required.
>
> Change-Id: Id15c745994a3d6a1489e193b5d29916fa0931264
> Reviewed-on: https://skia-review.googlesource.com/36340
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
TBR=bsalomon@google.com,robertphillips@google.com
Change-Id: I2229ec05079368ff196ff351107f88062080e5ec
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/43720
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:7011 skia:6544
Change-Id: Idacb5ff8090bea6ddbdef710bc0f4dbb8bd23549
Reviewed-on: https://skia-review.googlesource.com/43560
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Since we got rid of texture-backed bitmaps this is no longer required.
Change-Id: Id15c745994a3d6a1489e193b5d29916fa0931264
Reviewed-on: https://skia-review.googlesource.com/36340
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Legacy clients are likely to ignore this information, but there are
cases (using SkColorSpaceXformCanvas) where getting accurate information
is important.
Bug: skia:
Change-Id: Ia56170559c82299375021c813424098ffc627b02
Reviewed-on: https://skia-review.googlesource.com/43562
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
// Below is just for testing
NoTry: true
Bug: b/1
Bug: b/2
Test: test 1
Test: test 2
Change-Id: I05924a1821ad24afb824c98a0a0b8b989d8b11be
Reviewed-on: https://skia-review.googlesource.com/43602
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
This patch removes the loop unrolling code in load_gamut()
for improving the code readability.
Bug: skia: None
Change-Id: I749a3351a9f570347946a419d31efffa85818267
Reviewed-on: https://skia-review.googlesource.com/22001
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
This patch removes the loop unrolling code in onQueryYUV8()
to improve code readability.
Bug: skia: None
Change-Id: Iddbc0a114fae05234bfea39802f19a430f6c86ec
Reviewed-on: https://skia-review.googlesource.com/22000
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
To fix the error "corrupt JPEG data: premature end of
data segment chromium" update the status to libjpeg
when buffer has to be refilled.
Bug: skia: None
Change-Id: I20d253133b5cf8e8e75b5f44774d0116a0a854ee
Reviewed-on: https://skia-review.googlesource.com/24600
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
As DAA does not chop edges at Y extrema, it's valid for convex edges to
have only one edge (e.g., a single cubic edge with the valley shape \_/).
This wasn't an issue for production because DAA is never called for
convex paths by default.
Bug=skia:7015
Change-Id: Iac79801d6a24188970ef6f7bf723494a25d92a1e
Reviewed-on: https://skia-review.googlesource.com/42942
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
For configs that compare results of two drawing methods, it's helpful to
know how the two images differed. This takes both images, PNG encodes them
(at maximum compression settings), then base64 encodes them into data URIs
so they can be viewed directly from the logs.
These kinds of failures are typically very rare, and currently happen
infrequently due to flaky GMs - we don't want to be using this kind of
facility all the time.
Bug: skia:7011
Change-Id: Ib6c271cb8f6cd657cf6ca8ccfee97d0193b4e6ed
Reviewed-on: https://skia-review.googlesource.com/43240
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
void reset(const SkImageInfo& info)
is not useful because it sets
rowBytes to zero while leaving
width alone.
This form of reset also doesn't
appear to have a caller.
TBR=reed@google.com
Bug: skia: 6898
Change-Id: I87019420ddc59107aefe0cac27a6b969976f1bf6
Reviewed-on: https://skia-review.googlesource.com/43480
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
This lets us open & close groups and automates the hierarchy.
Change-Id: Ib6f0850a49b793d824fc25aa16be78e6a1a93d9e
Reviewed-on: https://skia-review.googlesource.com/43280
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>