The repro case for this bug is where we have ~700 non-AA texture ops
with a few coverage-AA texture ops sprinkled throughout. In the old
system this could result in the quad limits being exceeded bc the
AA type for the entire run was believed to be non-AA during the creation
phase only to find that it was actually coverage-AA at execution time.
This problem manifested in both the bulk creation method and the
1-by-1/chaining creation method.
Note: in the original repro case every texture op has its own separate
texture so the problem manifests in the chaining case.
Bug: 1108475
Change-Id: I8f08fa4d5db5dbfe4a28145737895b655a145b08
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306605
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Prevents spurious diffs when rebuilding on Windows
Change-Id: Id5320e2ef492e7856fe10500ee8a3d19f6726219
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307196
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I6bf3cac6df654a0b23ced250df90716f6856ed29
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307197
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
SkDescriptor's programatic API is neither
exposed for untrusted use nor harded for it.
Why are we fuzzing it?
Do we need a change in oss-fuzz before deleting this?
Bug: oss-fuzz:19648
Bug: oss-fuzz:24417
Change-Id: Id8d075938d831ec8cad4014c8fe6efaef46edb55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307177
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I82f9bffc73dcc4c07050199c755120cc964b7198
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304858
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: I518dd97f0a7cf521f2484f9ef3afbc6a7f24c112
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307138
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
SK_GL must explicitly be defined to enable the GL backend,
e.g. by setting skia_use_gl in gn args.
Change-Id: I61008b5422f4690e6f012609b239cd74e63d9f92
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306732
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This speeds up compiler construction, because we no longer have to parse
and process a bunch of SkSL source code during startup.
Change-Id: I6d6bd9b5ce78b1661be691708ab84bf399c6df8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305717
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Change-Id: I0eb3cf5e7803b9cc281fd07dbc7fcb73498b05fd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307018
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
fd60950e59..cbd5bee81d
2020-07-31 lehoangq@gmail.com Disable shader's pre-rotation code on Metal & non-Android.
2020-07-31 kbr@chromium.org Allow GetSystemInfo to return false in CGL and EAGL backends.
2020-07-30 jmadill@chromium.org Add a custom trace tests loader.
2020-07-30 nguyenmh@google.com Batch-compile and batch-run-replay multiple tests
2020-07-30 jmadill@chromium.org Update inaccurate error string.
2020-07-30 cnorthrop@google.com Tests: Add NBA2K20 trace
2020-07-30 cnorthrop@google.com Capture/Replay: Limit string lengths in capture
2020-07-30 tobine@google.com Vulkan: ATrace marker fix-ups
2020-07-30 syoussefi@chromium.org Vulkan: Implement GL_EXT_multisampled_render_to_texture
2020-07-30 penghuang@chromium.org Support EGL_ANGLE_display_semaphore_share_group for DisplayNULL
2020-07-30 syoussefi@chromium.org Vulkan: Remove unnecessary endRenderPass calls.
2020-07-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from dc8e77f0e521 to 08a3cc4cfbaa (3 revisions)
2020-07-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from c0bf676837e4 to 4400cab64b22 (7 revisions)
2020-07-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from f9b088fe0dbf to c6e6597c4f51 (5 revisions)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC borenet@google.com on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md
Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
Tbr: borenet@google.com
Test: Test: Compile NBA2K20 MEC with MSVCTest: Test: angle_perftests --gtest_filter="TracePerfTest.Run/*nba*"
Change-Id: I970bf7cb265c64a11ecc368b2caf3faf56b9472a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307063
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
The ClangTidy check `bugprone-unused-raii` has been enabled at
review.skia.org/306838; this check provides equivalent protection.
Change-Id: I9f3858bfd2bede107d509a5a206a08293d5f914c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306953
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Almost half the files in src/gpu/tessellate were beginning with
"GrTessellat*". This CL reorders the camel case words for more
efficient tab completion and better grouping of related files.
Bug: skia:10419
Change-Id: I3df0ddbb2367cdbd880807a8aef2dd88ec12f830
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306659
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This will prevent us from writing range-based for loops that copy the
loop variable when a const& would suffice.
https://clang.llvm.org/extra/clang-tidy/checks/performance-for-range-copy.html
-----
Finds C++11 for ranges where the loop variable is copied in each
iteration but it would suffice to obtain it by const reference.
The check is only applied to loop variables of types that are expensive
to copy which means they are not trivially copyable or have a
non-trivial copy constructor or destructor.
Change-Id: Ic26bff7e9c48b4d1a9ad9c0606199920ea7a0af8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306945
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
To bootstrap tessellated stroking, we started out by converting stroke
paths to device space. This CL removes that conversion and adds two
transformations to the stroking pipeline:
1) A "matrixScale" that scales the control points before
tessellation. This scalar's job is to make sure we tessellate
into the right amount of triangles.
2) A "skewMatrix" that transforms the post-tessellation triangles.
This matrix's job is to apply any skews or translations from the
view matrix, without expanding the geometry in any direction.
Bug: skia:10419
Change-Id: Ib98fc3bd66e1f2bff9fa0e1186294ba8da51e8da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306419
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This will allow us to enable the ClangTidy check
performance-for-range-copy.
Change-Id: I11f152ffe458f5f353da8715ffd2fd47cf4e71a7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306946
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
It is undefined behavior to memcmp with a nullptr. It is possible to
get into such a state if the SkString is itself empty and compared
against nullptr using SkString::equal.
Change-Id: I7a55d7beb5ed454c73a56f47c3729f3790a5fd78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306951
Auto-Submit: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
The MultiFrameImageAsset helper can be flagged to decode lazy images
upfront (to avoid run-time decoding and resource cache interactions).
But when pre-decoding is enabled, MultiFrameImageAsset yields a
different SkImage for every request - *even for static images*.
This means that e.g. each image layer precomp instance gets its own
copy of the data. Bad bad bad.
Update MultiFrameImageAsset to cache the last frame, and reuse when
backed by a static image.
Change-Id: I65431e7ccf4a64f0055f935f9823c33402d1bb2b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306938
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Change-Id: Ib829c883c260ef8ff4a3f5326922d66476b7306f
Bug: skia:10530
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306949
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Restructure GrMtlGpu::submitCommandBuffer() to handle empty
command buffers better and ensure that finishedCallbacks are invoked.
* Move finishedCallbacks from GrMtlGpu to GrMtlCommandBuffer to ensure
they're really invoked on completion/deletion.
Bug: skia:10530
Change-Id: I9f642342f03f540e46fad62a311c4195be87eab8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306936
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
There are quite a few GL context capability tracking for Qualcomm
Adreno device in GrGLCaps.cpp. The vendor/render detecting functions
currently only check strings for Qualcomm vendor KGSL driver. Let's
add check for Freedreno driver as well, so that those GL context
capability handling applies to both KGSL and Freedreno driver. This
fixes some rendering corruption and performance issue on an A405 device
running Freedreno driver on Android.
Change-Id: I98744725490d9941465238434a6574c03dc66963
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306746
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: chromium:1101491
Bug: b/161896447
Use more inclusive language.
Change-Id: I32b312b7ccffc1a4aab88450595bec09a2fa031b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306943
Commit-Queue: Leon Scroggins <scroggo@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: chromium:1101491
Bug: b/161896447
The main goal is to replace "master" with more inclusive language.
Rather than updating the comment in this old, unused code, just delete
it.
Change-Id: I7fdc71ab8ee9ce7fc30bfb6929599d9ba05a82d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306940
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
I neglected to update the doc comments when adding new types earlier.
Change-Id: Ia8d7ecea3129cebe748c897c2a43f86ff89ab5a7
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306944
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Change-Id: Ib783712978bea7fbae5d9e454bc3bd5e198c8504
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306939
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
The paint color has already been transformed to the destination color
space, so this prevents a double-transform when doing alpha-image draws.
Bug: skia:10555
Change-Id: I9d026d231199b22d9a67bc92bfe9a615295490b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306855
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
When I joined the team, I had a hard time interpreting some of the
Quickstart steps. If you run them as presented, you get seven different
output directories. I've added some text to explain that you don't
actually need this many, and I've also fixed an anchor link.
I made these edits in http://cider/ for its excellent previewing
capabilities, and Cider automatically reformatted and rewrapped the
Markdown to match google3 standards. (e.g. using # and ## to denote
sections, wrapping code blocks in ```.) This doesn't affect the
generated output.
Change-Id: I118a6ed5f6848c845c102ac1670a5d16e79c71fe
No-Try: true
Docs-Preview: https://skia.org/?cl=306717
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306717
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
https://clang.llvm.org/extra/clang-tidy/checks/bugprone-argument-comment.html
-----
Checks that argument comments match parameter names.
The check understands argument comments in the form /*parameter_name=*/
that are placed right before the argument.
void f(bool foo);
...
f(/*bar=*/true);
// warning: argument name 'bar' in comment does not match parameter
// name 'foo'
The check tries to detect typos and suggest automated fixes for them.
-----
Change-Id: I76fa82f5338f465b8f9e5a13654195f25a618b35
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306848
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Added vpinsrd to make it easy, and fixed a comment on vpinsrb's tests.
Nothing too tricky, just the naive implementations.
The hardest part was getting all the data to the right places.
No diffs!
Change-Id: Ie4c1f1e429abfa75ca80a93d108061287d5ace80
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306872
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
up a few cases where it was being done incorrectly.
Change-Id: I261e3e8c7880aacb87d288a5936762f485526053
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306854
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Once the existing cases are fixed, we can enable bugprone-argument-
comment to allow clang-tidy to verify these for us automatically going
forward. (http://review.skia.org/306848)
Change-Id: I5c21b28bcbdebb6b74c2924cc5f19c48446ecb42
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306847
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: John Stiles <johnstiles@google.com>
Change-Id: I075e5929257f361c9badf0afb26cd8d30b152a20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306851
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
https://clang.llvm.org/extra/clang-tidy/checks/bugprone-unused-raii.html
-------
Finds temporaries that look like RAII objects.
The canonical example for this is a scoped lock.
{
scoped_lock(&global_mutex);
critical_section();
}
The destructor of the scoped_lock is called before the critical_section
is entered, leaving it unprotected.
-------
Change-Id: I40394eb84e7e4ad0564c409ecb52df2ef5af35b6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306838
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Change-Id: I4643ba2dbdce47201c96bb08c88b12842c9e0159
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306841
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Bug: skia:10553
Change-Id: I2fd1d5c309b88b0c9e3ce26392ede9fcd2aa6fba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306853
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Change-Id: Id6b09fd68ed3323b1d9f014011351b81fd06c573
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306852
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Bug: chromium:1109705
Change-Id: Ic306ff9a6300e55e841cabde724f192b22be731e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306840
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This noop refactor ports the lane-immediate idea to the 64-bit loads and
to 128-bit stores, and renames to simple load64, load128, store128.
The store128 part of this change is _slightly_ sneaky in that we pack
the argument pointer index and the lane both into int immz, but there's
plenty of space there: lane needs 1 bit, and the argument pointer index
needs maybe 3 or 4 max.
Change-Id: I3fa01bf31312b8a69c7e287d649470ba15a8ea40
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306810
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
A brief survey showed RGBA F32 is actually used, so might as well
support it in skvm. This borrows the ideas of the 64-bit pixel formats
for 128-bit pixels, but I got super lazy and only supported exactly RGBA
F32 for now. I left a TODO to generalize swizzles and maybe to allow
32-bit unorms, but I don't intend to do that until needed.
The new instructions are implemented serially in the interpreter,
and I've left JITing these instructions for a follow up as usual.
Compressed all the similarly structured 128-bit loads into load128_32
with a lane argument.
Change-Id: Ie031039cf4189a707add091d25395294f8fca637
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306706
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
No-Try: true
Change-Id: I46b416b3353b052a203d133d33cc74c47e66520c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306839
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>