Used to encapsulate encoder creation. Bundles blitencoder
commands into a single encoder.
Bug: skia:8243
Change-Id: I53a4303678bb4f4e6667a3655cfe414b2e50615d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209435
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: Ica7d62c758558c0e2c7bea9da8a08f25d1cfaeed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209805
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
- fixes bug in device restore (was passing the wrong matrix)
- use drawbehind for the clear, to avoid rounding differences between canvas and gpu
Change-Id: I9c130e38437d8d34242620750f11a6ae7e62ff97
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209801
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
With the upcoming removal of pendingIO refs the GrResourceAllocator needs a new means of determining when a backing GrSurface can be recycled and when it needs to be left assigned to a GrSurfaceProxy.
Change-Id: I6f62a793e8aba70019dc8d0e7d585366d1097d70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208227
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
In some setups we see StockStage::gamma somehow
shadowing `double gamma(double)` from math.h.
No big deal. We do the same for plus_ and xor_.
Change-Id: Ib5d45edf33dcfbc1d0eef1806674fa908e752200
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209788
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This should allow us to #include "skcms.h".
Change-Id: Ie91f3af6145d78ffe0e433383a220fcb40452888
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209780
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
c467f7b541..cff6f150ea
git log c467f7b54188..cff6f150eae1 --date=short --no-merges --format='%ad %ae %s'
2019-04-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src 0e5d1bb66ad3..86c72c9486a9 (3 commits)
Created with:
gclient setdep -r third_party/externals/angle2@cff6f150eae1
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=mtklein@google.com
Change-Id: If018a85218f2b65bfb4b25e253e9ad1f15d012cd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209733
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
3ed0f75776..29e17ed23d
Created with:
gclient setdep -r ../src@29e17ed23d
The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=mtklein@google.com
Change-Id: I4d2cac2d1c7e02a553d998df9cd1a0b57a70a50e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209732
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
skcms is part of Skia's public API now. This attempts to recognize that,
and pave the way for moving the header to another location more easily
in a follow up CL, or - at a minimum - for clients that redistribute
Skia as a library + includes to relocate the skcms.h header as part of
that.
Change-Id: I15da63b0d4ab8916a71fb7e6ab3656db87252707
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209640
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This behaves like the SkSurface::wait call but is not tied to a specific
surface.
Change-Id: Ic572296e0f581204bf69a7178645d99e365c0692
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209648
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
* Use setVertexBytes and setFragmentBytes to set uniforms
* Use shared dynamic buffer for small texture uploads
Bug: skia:8243
Change-Id: I8436ca483e996a43d42e3862d0f1281bf864ab80
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209645
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: If0eb6fb2efb6816b92ad7ca7d8caaace71397b7f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209409
Commit-Queue: Ravi Mistry <rmistry@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
Cq-Include-Trybots: skia.primary:Test-Android-Clang-Nexus7-CPU-Tegra3-arm-Debug-All-Android,Test-Android-Clang-Nexus7-CPU-Tegra3-arm-Release-All-Android,Test-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Debug-All-Android,Test-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Release-All-Android
Change-Id: If0dc05534fb1a6d35641708e038ad3088aa2a2aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209612
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This reverts commit 7f960d2083.
Reason for revert: Chrome roll again
Original change's description:
> simplify and centralize SK_API
>
> Attempt two, this time not setting visibility("default")
> unless SKIA_IMPLEMENTATION is defined.
>
> Bug: skia:8975
> Change-Id: I8d4e2071f1a8ee8a5702ac62ffc4000379d4fc43
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207854
> Reviewed-by: Mike Klein <mtklein@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,brianosman@google.com,chinmaygarde@google.com
Change-Id: I0f9e6e5da2c17f789a4599042b9ae3a1ba412987
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8975
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209680
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This approach eliminates a lot of edge cases where ops (e.g., the SmallPathOp) are treating their proxies in a special manner (i.e., just holding a raw ref and never adding pendingIO). Given that the atlas managers are managing the lifetime of the proxies there is no reason for the GrResourceAllocator to be aware of them.
Pulled out of:
https://skia-review.googlesource.com/c/skia/+/208227 (Implement alternate method for determining recycle-ability of allocated GrSurfaces)
Change-Id: I0a8d3c2d56036d568b6d49ddc78c32761642d1c8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209419
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
There's already an identical header in include/utils/SkBase64.h.
(And it's used by Flutter, so we need to keep the include/ one.)
Change-Id: Ia86f5b18d4351ec871902d0fd0e9f076f5d62fc7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209664
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
This is a stale, unused, untested snapshot.
Change-Id: I7c78c7c0f1637850724cbe8dcd99223a0ea592d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209644
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Attempt two, this time not setting visibility("default")
unless SKIA_IMPLEMENTATION is defined.
Bug: skia:8975
Change-Id: I8d4e2071f1a8ee8a5702ac62ffc4000379d4fc43
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207854
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
I left off the optional finished proc on the previous cl :(
Change-Id: I5f540c718bb7e12e7ea74287f1e50e35edd79700
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209417
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
This is an experiment in making SkMatrix less sharp.
Change-Id: Ie1881b0905b594aa1c444440fae5253970850e12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208340
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I70991d5727172f72a61f073d0cd684da6ca43780
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209413
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Still only works with the GL backend. For other backends,
need to add similar logic to the shader caching, and some
extra checks in Viewer to force the SkSL flag on.
But in GL, this lets you toggle the checkbox and see the
SkSL / GLSL at will (and edit in either form).
Change-Id: I6d392113aa9cbcbd6e64589b849de70d0ac3beeb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209165
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 7bb47f2a2e.
Reason for revert: chrome roll maybe
Original change's description:
> Add explicit GrSurfaceProxy flag to skip explicit resource allocation
>
> This approach eliminates a lot of edge cases where ops (e.g., the SmallPathOp) are treating their proxies in a special manner (i.e., just holding a raw ref and never adding pendingIO). Given that the atlas managers are managing the lifetime of the proxies there is no reason for the GrResourceAllocator to be aware of them.
>
> Pulled out of:
>
> https://skia-review.googlesource.com/c/skia/+/208227 (Implement alternate method for determining recycle-ability of allocated GrSurfaces)
>
> Change-Id: Ia6bec5e8f5d5bc63e86ae011bcc3f8e061c066b2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209400
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
TBR=bsalomon@google.com,robertphillips@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Id65bd176f56aa91ff76ec1979aef6206b7665d63
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209600
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
145ec7fa7c..c467f7b541
git log 145ec7fa7c81..c467f7b54188 --date=short --no-merges --format='%ad %ae %s'
2019-04-19 spang@chromium.org Compute usage from format properties cache in glTexStorageMem2DEXT
2019-04-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src 805b09f92203..0e5d1bb66ad3 (1 commits)
2019-04-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src ac878fcbdd64..7aad9653f9a3 (2 commits)
2019-04-19 kbr@chromium.org Reland "Define and expose EGL_ANGLE_power_preference extension."
Created with:
gclient setdep -r third_party/externals/angle2@c467f7b54188
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=mtklein@google.com
Change-Id: I9f75c51efaed50bad35a7dfc596a14e2fddbeb85
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209574
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
a55917cb98..3ed0f75776
Created with:
gclient setdep -r ../src@3ed0f75776
The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=mtklein@google.com
Change-Id: Ic678825f6b5b9e8e11aca44e648ca50417bddd33
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209573
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Implements dynamic buffers as subbuffers of a larger allocation. As
we map and unmap, we change the subbuffer to ensure we don't overwrite
previous data. Buffers larger than our standard allocation are assumed
to do their own subbuffer management.
Bug: skia:8243
Change-Id: I3600463860fae235c46414a465ea106faa97ea0b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209061
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This is a variant of drawPaint but is automatically clipped
to the bounds of the most recent saveBehind buffer (axis-aligned bounds).
No public exposure.
Impl is pretty simple (its a variant of drawPaint)
- find the most recent saveBehind device bounds
- if there is none, draw nothing, else
- temporarily intersect the device's clip with that bounds
- drawPaint
- restore the clip
See https://buganizer.corp.google.com/issues/129117085
Change-Id: I7c532e63a80b118fb2416c572b8e0d2abf8cf59a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209166
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This helps enable optimizations that rely on the entire clip reducing
to a single rectangle, such as converting a drawRect to a clear.
Bug: b/122296071
Change-Id: I1fea4565644280d57610f8585b76babb557301d8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209382
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Does the opposite-edge coverage calculation for curves in the coverage
processor, rather than the Shader class. This allows the vertex shader
implementation to do it more clean and directly, as well as allowing
the future sample mask implementation to disregard edge coverage
entirely.
Bug: skia:
Change-Id: Idaddfff8b22e3223f2a4e286900941969f975c6a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208990
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
There was a spot where we were assuming that a constant vector was
guaranteed to be a vector constructor (e.g. float4(1)), while ignoring
the possibility that it could be a prefix operator applied to a
constructor (-float4(1)), leading to a crash. This fixes that and
simplifies the logic.
Bug: oss-fuzz:14019
Change-Id: Ic4b8fc896764494112a83c2fcca0a66eed804bf4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209176
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
We were allocating blocks significantly larger than the amount of memory we actually using
which caused us to end up wasting a lot of unused memory. This brings our allocation
sizes more inline with our uses.
Change-Id: I1b00670cfdfdb21884a4a203a1c35e183d83dbcf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209402
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
This approach eliminates a lot of edge cases where ops (e.g., the SmallPathOp) are treating their proxies in a special manner (i.e., just holding a raw ref and never adding pendingIO). Given that the atlas managers are managing the lifetime of the proxies there is no reason for the GrResourceAllocator to be aware of them.
Pulled out of:
https://skia-review.googlesource.com/c/skia/+/208227 (Implement alternate method for determining recycle-ability of allocated GrSurfaces)
Change-Id: Ia6bec5e8f5d5bc63e86ae011bcc3f8e061c066b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209400
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
`tools/skqp/docker_run_apk.sh` executes SkQP tests in an emulator
`tools/skqp/run_apk.sh` is used by `docker_run_apk.sh` and
`tools/skqp/test_apk.sh` to factor out common code.
Also: `bin/sysopen` now pipes output to `/dev/null` and doesn't block.
TODO: harmonize with test code executed by bots in `infra/skqp/`.
No-Try: true
Change-Id: Ia212a84565ff52279a845e20372a0ad7cc0726a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209401
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Change-Id: I3ea0f521dbfccf183fd55e850aeafe641ec28002
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209324
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This effectively re-applies the logic from
https://codereview.chromium.org/298973004
The change to the unit test for 389050 is interesting.
The last convexity rewrite "fixed" that case by allowing
it to be detected as convex. In the process, it actually
broke the original bug, so that rendering of the HTML
failed. This CL causes us to give up and decide that the
path is concave, but we return to rendering correctly, so
that's a win.
The bug that initiated this (950508) is effectively the
exact same bug as 2235, which is why I haven't added a new
test case. The existing test case is much more concise than
the 100K data file needed for the new one.
Bugs: skia:2235 chromium:389050 chromium:950508
Change-Id: I0de65db8644f37e335c47e9d41c676b8e8b020fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209164
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I73de5cb894e4084ca86e43c2918a1a9fe656b11d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209323
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>