Adds a hook that gets called from GrContext::performDeferredCleanup.
Bug: skia:8452
Change-Id: I4e5f4d263528b21247fbc032a1b4881a23cbb2ff
Reviewed-on: https://skia-review.googlesource.com/c/167181
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
We're already not testing these giants sizes on 32-bit machines because
they overrun memory. I'm not sure it's important to test them at all.
Change-Id: I322d46add8024760fc71939abe09430f77cbd69d
Reviewed-on: https://skia-review.googlesource.com/c/165767
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
I *think* this is a bug in MakeForDeviceSpace(). From a symbolic point of
view, the FPs are sent T * C * Lgp * l, where T
is the texture normalization matrix, C is the FP's registered coord
transform, Lgp is the local matrix sent to the GP, and l is the local
coord vertex attribute.
The net result should be T * C * Lop * o where Lop is the local matrix
of the op (often just I), and o is the object space position.
MakeDeviceSpace() modifies these so that l is the device space position
(V*o), and Lgp = V^-1*Lop (from preConcat), which makes the output
T * C * (V^-1 * Lop) * (V * o). If postConcat is used instead, the output
is T * C * (Lop * V^-1) * (V * o) -> T * C * Lop * o as expected.
At least one place that triggers MakeForDeviceSpace, the
GrSoftwarePathRenderer, sends V = I to the op so there's no actual difference
in that context. There may be other code paths that will need to be updated
in response to this change.
Bug: skia:
Change-Id: Ibb4294a6651e07543abbf37ae997c21180d1905a
Reviewed-on: https://skia-review.googlesource.com/c/167388
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
I suspect these were fixed by the driver upgrade in
https://skia-review.googlesource.com/c/skia/+/166621
Bug: skia:6398, skia:6863
Change-Id: I9079454b385b209e0c4bf416063ec01883045ab1
Reviewed-on: https://skia-review.googlesource.com/c/167390
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
The new fill rect op seems to be the first op that sends 3D local coordinates, so
this wasn't encountered before. Prior ops specifically do not apply a perspective
matrix on the CPU so that the local coords remain 2D until after the transform.
Performing the perspective divide in the VS and then interpolating the 2D results
is basically the same as using non-perspective interpolation on the position
attribute.
Bug: skia:
Change-Id: Ib5bed8230b69040aafb100b34a69acb9309a0547
Reviewed-on: https://skia-review.googlesource.com/c/167387
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Ops that use the SimpleMeshDrawHelper but also need to make decisions on
the aa type need access to the aa type that the helper stores.
Bug: skia:
Change-Id: I52dfbd89ead550de68fea96078dd6600620ad6cf
Reviewed-on: https://skia-review.googlesource.com/c/167389
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Bug: skia:
Change-Id: I757c8e61d9fa1addf0864a67075124f29297abba
Reviewed-on: https://skia-review.googlesource.com/c/167386
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This was spread across SkColorPriv.h and SkColorData.h, and was
accomodating fictional users that set SK_PMCOLOR_IS_* themselves.
Also, remove an unused define and stop grilling colors.
Bug: skia:
Change-Id: I70efd51052f32afdc3e19fd55dd38270d98b6b76
Reviewed-on: https://skia-review.googlesource.com/c/167392
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:
Change-Id: I723c5efdd746d6182dee0511795f7eca3b6066d3
Reviewed-on: https://skia-review.googlesource.com/c/167180
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Currently, GrGLGpu doesn't disable blend when the color mask is false. It
causes bad happening as follows,
* GPU thinks the blend is on so reads FBO unnecessary.
* In the case the blend needs SRC1 but shader doesn't have the color
attachment, some GPU driver can crash [1]
* In the above case, it's undefined behavior according to the spec [2]
[1] Mesa on Intel had the issue but it was fixed thank to this test failure.
https://patchwork.freedesktop.org/patch/235939/
[2] https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_blend_func_extended.txt
TEST: mixedtextblobs in dm or skqp
Bug: b/116339546
Change-Id: I71a36defd0ffe48ed914aa428bd351fd0c5f5974
Reviewed-on: https://skia-review.googlesource.com/c/167220
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Bug: skia:
Change-Id: I7e53fe4bc7cba31629c80a1472d11a8a30fe6a5a
Reviewed-on: https://skia-review.googlesource.com/c/167391
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Change-Id: Icf6d62586e65936caa516f8bac40941585e63943
Reviewed-on: https://skia-review.googlesource.com/c/167265
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
The hash is computed byte-wise, so we should compare byte-wise.
As written, if the two matrices are the same but contain a NaN,
they'll fail the comparison test, but should pass.
Bug: chromium:900835
Change-Id: I2fcef309ed604c8c1e03e268252778e7bd6d27a1
Reviewed-on: https://skia-review.googlesource.com/c/167263
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This reverts commit 7bfe6f809d.
Reason for revert: It doesn't look like this caused the roll to break.
Original change's description:
> Revert "Move from a functional to object based interface between Painter and SkDraw"
>
> This reverts commit cc3844a076.
>
> Reason for revert: Grasping at straws for Fuchsia roller
>
> Original change's description:
> > Move from a functional to object based interface between Painter and SkDraw
> >
> > Change-Id: I845d0b90d034c84fd73b8c37bafb5a6c8e35dfd3
> > Reviewed-on: https://skia-review.googlesource.com/c/166920
> > Commit-Queue: Herb Derby <herb@google.com>
> > Reviewed-by: Mike Klein <mtklein@google.com>
>
> TBR=mtklein@google.com,herb@google.com
>
> Change-Id: Ie436fbedc6555c58228203b79cfe5e3d2bf722ac
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/167382
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
TBR=mtklein@google.com,herb@google.com
Change-Id: I55b09bff2fbdac9347c4dfb0de26edcbdfa157e6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/167262
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bookmaker can be run on one command line with:
./out/skia/bookmaker -E && ~/go/bin/fiddlecli --quiet && ./out/skia/bookmaker
Update the documentation to say so.
NOTRY=true
TBR=jcgregorio@google.com
Docs-Preview: https://skia.org/?cl=167385
Bug: skia:
Change-Id: I14bf660860c9a4451dce783b45b2b0ed02a59af9
Reviewed-on: https://skia-review.googlesource.com/c/167385
Commit-Queue: Cary Clark <caryclark@skia.org>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Cary Clark <caryclark@skia.org>
Most of this is just refactoring code and comments to help me keep
the conditions all straight in my head.
I've also sketched the next substantive change I want to make here,
to handle all non-shader/non-SrcOver blits with SkRasterPipelineBlitter.
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I971a31e863247d67fc41f06b67e941bbff3e04a4
Reviewed-on: https://skia-review.googlesource.com/c/167381
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Bug: skia:
Change-Id: I47e4b1e96905e27aed78cc317d0b7f263b8cf25a
Reviewed-on: https://skia-review.googlesource.com/c/166760
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
This reverts commit cc3844a076.
Reason for revert: Grasping at straws for Fuchsia roller
Original change's description:
> Move from a functional to object based interface between Painter and SkDraw
>
> Change-Id: I845d0b90d034c84fd73b8c37bafb5a6c8e35dfd3
> Reviewed-on: https://skia-review.googlesource.com/c/166920
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,herb@google.com
Change-Id: Ie436fbedc6555c58228203b79cfe5e3d2bf722ac
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/167382
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
When bookmaker is run without arguments,
run all commands.
Allow SkCommandLineFlags to be set
programatically if
no arguments are passed in.
R=scroggo@google.com
Bug: skia:8518
Change-Id: I00697417ce45eaec880977ea872dd7de1fea63a0
Reviewed-on: https://skia-review.googlesource.com/c/166980
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
If there is a color filter, we'll have returned an
SkRasterPipelineBlitter by now.
Change-Id: I4c69d4e80100eff83422e147a87f50bdc6338f56
Reviewed-on: https://skia-review.googlesource.com/c/167380
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
580baf3796..2197dc5290
git log 580baf379673..2197dc529052 --date=short --no-merges --format='%ad %ae %s'
2018-10-31 syoussefi@chromium.org Vulkan: Implement masked depth & stencil clear
Created with:
gclient setdep -r third_party/externals/angle2@2197dc529052
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=herb@google.com
Change-Id: Id1e975682bc3002cde2c3d8eada1b0466e93d029
Reviewed-on: https://skia-review.googlesource.com/c/167360
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
SkRefCntBase is an implementation detail of SkRefCnt, so let's not
mention it in SkContext_Compute.h. While I'm here, I notice SkNVRefCnt
would work fine too.
No one else calls internal_dispose_restore_refcnt_to_1(), so we can
inline it. While here, I notice it's resetting the ref count to 1 even
in release builds. I'm not sure if that is/can be optimized away, but
in any case I think we can wrap with #ifdef SK_DEBUG, if only to make it
clear that it's only there to support the assert in the destructor.
I've removed validate(). Most of the places it's called read pretty
weird, and I think suggest some sort of class-specific validation than
just checking that we're holding a ref. SkWeakRefCnt::validate() isn't
called anywhere.
There were few users of getRefCnt() outside SkRefCnt itself, so I
removed the rest and made it private.
I've added a few this-> to self calls while at it.
Change-Id: I98be06677a6e8b8e66f44cbb17d14e38b0f39d38
Reviewed-on: https://skia-review.googlesource.com/c/167160
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Bug: skia:
Change-Id: I48ba39465a160e73502ee38d90062d955da6e8e6
Reviewed-on: https://skia-review.googlesource.com/c/167140
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Change-Id: I845d0b90d034c84fd73b8c37bafb5a6c8e35dfd3
Reviewed-on: https://skia-review.googlesource.com/c/166920
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Change-Id: I8c437fd0ba1c160ffc3ac0c33fa282284287a5e0
Reviewed-on: https://skia-review.googlesource.com/c/166582
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
d60e42f8e7..580baf3796
git log d60e42f8e79e..580baf379673 --date=short --no-merges --format='%ad %ae %s'
2018-10-31 brandon1.jones@intel.com Recompile D3D11 Blit Shaders
2018-10-31 jmadill@chromium.org Scale down a slow index buffer perf test.
2018-10-31 ynovikov@chromium.org Fix ShaderStorageBlockOutputHLSL::writeEOpIndexDirectOrIndirectOutput
Created with:
gclient setdep -r third_party/externals/angle2@580baf379673
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=herb@google.com
Change-Id: I8c042b746fbe1d9aa2bcb6dff7dff63e0d0e4d68
Reviewed-on: https://skia-review.googlesource.com/c/167000
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bug: oss-fuzz:11070
These may report kIncompleteInput or kErrorInInput, depending on
whether the data was truncated or had an error. In either case, if
we reach this error before decoding a row, the SkSampledCodec did not
decode anything, so report a hard failure.
Change-Id: Iabd459816f8f6760c4fb9f596c617d8399da90e6
Reviewed-on: https://skia-review.googlesource.com/c/165526
Commit-Queue: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
It's getting tricky to maintain the logic to keep this correct.
I _think_ the blitters ought to be able to fall into memset
where applicable. If not, I'd like to find out and make them.
Change-Id: Id7841aee022fac12dd8f370b120848483530b842
Reviewed-on: https://skia-review.googlesource.com/c/166781
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
In this change, both creators become empty, which will allows
for converting over to using an interface instead of two-step functions.
Change-Id: Id211aca51dfab2556cf443ed4f825dabc15f6d89
Reviewed-on: https://skia-review.googlesource.com/c/166780
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
- Mechanical replacement of GrColor4h (used throughout Ops) with
SkPMColor4f.
- API adaptation (to/FromGrColor -> to/From_BytesRGBA).
- Complete removal of FromFloats (source was already SkPMColor4f),
and toFloats (setting uniforms can directly access .vec()).
Bug: skia:
Change-Id: I37eece1fa7ed2545dc6843e840d4cc3c60f19747
Reviewed-on: https://skia-review.googlesource.com/c/166620
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Previously we relied on GrRenderTargetOpList returning an ID if and only
if it did not merge the op. Upcoming changes to GrRenderTargetOpList will
make it harder to track whether the op was merged.
Only CCPR (and related unit test) requires the op list ID. Now CCPR passes
a callback that is called when the op list is deterimined but before
we know if the op merges or not.
Change-Id: Iead1c3eff8de5a4183e330dd7b57362cbffe0ebb
Reviewed-on: https://skia-review.googlesource.com/c/166624
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Bug: skia:8500
Change-Id: Ic9e485072202534ae2aa702daa4cffe4b7400d03
Reviewed-on: https://skia-review.googlesource.com/c/166805
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
The Windows header definitions of NAN and INFINITY involve overflowing
math, making clang treat them as not being constexpr. Now they're
constexpr everywhere.
Bug: skia:
Change-Id: I84c05aae2952a152fed4eceb55cd2680d6fd5b05
Reviewed-on: https://skia-review.googlesource.com/c/166840
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I736fe762a23c22c4dc8d13b22cede4477f3e2847
Reviewed-on: https://skia-review.googlesource.com/c/166782
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Replace a hunk of documentation in docs/*.bmh
with #Populate, which instructs bookmaker to
retrieve the documentation from include/core.
Check spelling for all documentation retrieved
from include/core against Skia declarations
and a list of words in spelling.txt.
TBR=caryclark@google.com
Docs-Preview: https://skia.org/?cl=163491
Bug: skia:
Change-Id: If057c3a1336e312ad59c084a3a130f0276802496
Reviewed-on: https://skia-review.googlesource.com/c/163491
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>