Routes all non-textured quad draws through single internal function
Change-Id: Ief66864a0ad2d598982c5bf500c8a84ecbf84387
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215455
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
We were resetting the vertex buffer state after every draw, even if
the vertex buffer hasn't changed. This addresses that. It also sets
certain renderstate at renderencoder creation -- again, rather than
at every draw.
Bug: skia:8243
Change-Id: I053e150c289c14b60385f555a8b4b771a131ea06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221336
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
I'm hoping to remove xbyak bit by bit, like the ship of Theseus
or some petrified wood, leaving a functioning homegrown JIT.
This starts with some of the easier instructions, still using
xbyak to accumulate the code buffer, just with db() directly.
- ret
- vzeroupper
- align with noops
Change-Id: I9443bc5191cb1d75b8871d174ccf15ac7e96e9a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221613
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I56f85055ca93bd8db4adb157467d0c1987859511
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221656
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Update to latest gcloud archive.
Change-Id: I93a5501af2567dfebff86bcd508f69968352692b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/202423
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
* Creates a new CPU perf bot: Perf-Debian9-EMCC-GCE-CPU-AVX2-wasm-Release-All-SkottieWASM
* Uses canvaskit build artifacts from Build-Debian9-EMCC-wasm-Release-CanvasKit_CPU
* Feeds the build artifacts into skottie-wasm-perf.js and processes it's output.
* node on the bots was pretty old so using a newer one from CIPD.
NoTry: true
Bug: skia:9179
Change-Id: I9713feedb6b40e4ce60a2c259de01d2003271e7c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221558
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
This flag is no longer set by any users, so remove it now that baselines
have been updated.
Change-Id: Ib952a93c16a6ca65d89a2009e9732c6339d83f9f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221542
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: I8c7bd5ed3fb6aebbfb1c5c224acfd73862252621
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220778
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Bug: skia:9184
Change-Id: Ia78094f5bd2a0cf3c8368933b3719df01ab1e646
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221540
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
In GrRecordingContext I moved the auditTrail onto the heap and only there
when compiling for tests. This allowed us to move a lot of files out of
include private.
Change-Id: Ib76ac211c0c6fd10bacaccf0c5f93f21a59f35d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221344
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Change-Id: I7e89cb18fd15a4852f38afd846d943e7732d1ddb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/216341
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
The motion tile phase is a one-dimensional shift, applied to every other
row or column (based on a selector property).
Implement using a masking shader (covering the static rows/cols),
and blend mode shader composition (srcIn for static/pass-through
rows/cols, and srcOut for phased rows/cols).
TBR=
Change-Id: I336c150e5d4900962dc2de801a4e1572cf4b5d59
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221339
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Uses puppeteer to bring up Chrome headless and then calls
skottie-wasm-perf-html with endpoints for canvaskit.js, canvaskit.wasm,
and the target lottie file.
Notry: true
Bug: skia:9179
Change-Id: I3250f2edf92329dce6e3f0bf125fa26b70bed632
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221557
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
This reverts commit 5509102043.
Reason for revert: valgrind issues
Original change's description:
> Add function to GrDataUtils to handle color conversions.
>
> Like SkConvertPixels but knows about all GrColorTypes, origin, and can
> apply an arbitrary GrSwizzle.
>
> Use in GrSurfaceContext read/write pixels methods.
>
> Add support for '0' to GrSwizzle.
>
>
> Change-Id: Ib9dd215fcb0ee8b33c4020893c22b4ab7ce1f40b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220761
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com
Change-Id: If50f3e26875787d9309009e9c701774fbad0afda
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221538
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This reverts commit 2935638a1b.
Reason for revert: valgrind errors
Original change's description:
> Make SkASSERT not break build in constexpr GrSwizzle method on GCC
>
> Change-Id: I042b90e7c405505447662e6d187ca1519efd4743
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221342
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com
Change-Id: I6bc0f8f84212e3ce53f4d2198c4369db7f08ea3f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221537
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This reverts commit 90507286cc.
Reason for revert: Seems to be breaking some builds
Original change's description:
> Shuffle SkSL sources around so compiler and bytecode can be used w/o GPU
>
> Change-Id: I7236a30040ab532086e68d6e9de2898dd7acaa32
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221098
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,kjlubick@google.com,brianosman@google.com,ethannicholas@google.com,reed@google.com
Change-Id: Ie230315a72ebcfae32bc9ce7bafec1f87106cff2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221536
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
AFAICT valgrind is breaking this test
BUG: skia:9171 skia:8847
Change-Id: I6f86cbeec57849f195562408d94d66c1f727ca19
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221418
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
The passed localeName and defaultFamilyName and associated lengths are
expected to include the terminating NULL (mostly due to the way LOGFONT
and GetUserDefaultLocaleName are defined). This implies that in the case
where these values cannot be retrieved the empty string should be
passed.
Bug: chromium:973361
Change-Id: I0ac98f5250e1cb2d7fa426b255c5e2c2619dc51c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221417
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
853ebacf99..c211c2f5b5
git log 853ebacf99a4..c211c2f5b59d --date=short --no-merges --format='%ad %ae %s'
2019-06-17 clemendeng@google.com Make proc table autogen use gl.xml data
2019-06-17 dongja@google.com Debug: suppress INFO log level in tests
2019-06-17 jmadill@chromium.org Vulkan: Minor cleanup to ContextVk::setupIndexedDraw.
2019-06-17 jonahr@google.com Clean up workarounds/features to single location.
2019-06-17 tobine@google.com Merge ESSL pre-processsor token errors
2019-06-17 syoussefi@chromium.org Vulkan: Enable previously failing clear tests
2019-06-17 dongja@google.com Vulkan: add LINE_LOOP with primitive restart
2019-06-17 jmadill@chromium.org Suppress Bindings perf test on Win/Intel/GL.
2019-06-17 jmadill@chromium.org Remove obsolete WinRT files.
2019-06-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 42830e5a68c3..59983a601091 (2 commits)
2019-06-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src 96ee92f09b7c..def9662348b0 (2 commits)
2019-06-14 clemendeng@google.com Autogen gles2+ declarations
2019-06-14 syoussefi@chromium.com Update glslang_validator binary for Windows.
2019-06-14 syoussefi@chromium.org Update glslang_validator binary for Linux.
2019-06-14 jmadill@chromium.org Add more DrawCallPerf offscreen configs.
2019-06-14 jmadill@chromium.org Vulkan: Use dynamic buffer for driver uniform updates.
2019-06-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src 9866ad9195ce..96ee92f09b7c (1 commits)
Created with:
gclient setdep -r third_party/externals/angle2@c211c2f5b59d
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=bsalomon@google.com
Change-Id: Ia8f1abfd7dddd38384eb5ffd3a25995737177a2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221496
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
a2197be674..aad06d1d33
Created with:
gclient setdep -r ../src@aad06d1d33
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=bsalomon@google.com
Change-Id: I8dc43a575bb3a42b538213b5b2a1354fef0f5098
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221516
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Remove the SkBaseMutex (and SkBaseSemaphore). This allows all the thread
annotation machinery to work.
Change-Id: I2da420ec3165ccbcd90c474c0b62bfef42df2a53
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221340
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
We've got slightly different implementations of unaligned_load(), and
that's causing a x86 Chromium Debug builds to go a bit haywire. A
single best implementation with an SK_ALWAYS_INLINE and explanation
should help things.
Might as well move its companion unaligned_store() too.
Bug: chromium:974542
Change-Id: If9f3eb4d33bfb8390c661f9e196122da0b9b84ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221409
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Mike Klein <mtklein@google.com>
This new cap tells Ganesh how many samples to use when performing
internal draws with MSAA or mixed samples. The default is always 4x,
but the client can change that with
GrContextOptions::fPreferredInternalMSAASampleCount.
Also adds a command line flag to viewer to control
fPreferredInternalMSAASampleCount.
Bug: skia:
Change-Id: Iba369273e802aa1bee796b576b3c18af347b0494
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221156
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
--motion_angle ... [default is 180]
--motion_samples ... [default is 1, for no motion blur]
Change-Id: Iec0f31655b3369f51e0b398efb2d5b156dcbaf2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221416
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
Optimizations to JSON size (%f -> %g) changed the meaning of the digits
argument, causing these timestamps to become severely truncated. Traces
have been fairly useless as a result (too many events starting/stopping
at the same time). This adds enough digits back that things are better.
Change-Id: I3f2d2a3dd064daf8449ac34ab5440f95e339a392
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221346
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Change-Id: I7236a30040ab532086e68d6e9de2898dd7acaa32
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221098
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Change-Id: I042b90e7c405505447662e6d187ca1519efd4743
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221342
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Like SkConvertPixels but knows about all GrColorTypes, origin, and can
apply an arbitrary GrSwizzle.
Use in GrSurfaceContext read/write pixels methods.
Add support for '0' to GrSwizzle.
Change-Id: Ib9dd215fcb0ee8b33c4020893c22b4ab7ce1f40b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220761
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
NoTry: true
Bug: skia:9169
Change-Id: I9fca155d0e8b238e5a38348a40fb3351f0aef2fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221276
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Make sure we're using five or fewer arguments.
Today all programs use one or two arguments, so this doesn't
really have any immediate effect, but it should be there.
Change-Id: Ia85e56ef63ceb442702546c402cd11a13daa2c25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221270
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
I'm staring at this assembly,
vmovups (%rsi), %ymm3
vpsrld $24, %ymm3, %ymm4
vpslld $16, %ymm4, %ymm15
vorps %ymm4, %ymm15, %ymm4
vpsubw %ymm4, %ymm0, %ymm4
Just knowing that could be
vmovups (%rsi), %ymm3
vpshufb 0x??(%rip), %ymm3, %ymm4
vpsubw %ymm4, %ymm0, %ymm4
That is, instead of shifting, shifting, and bit-oring
to create the 0a0a scale factor from ymm3, we could just
byte shuffle directly using some pre-baked control pattern
(stored at the end of the program like other constants)
pshufb lets you arbitrarily remix bytes from its argument and
zero bytes, and NEON has a similar family of vtbl instructions,
even including that same feature of injecting zeroes.
I think I've got this working, and the speedup is great,
from 0.19 to 0.16 ns/px for I32_SWAR, and
from 0.43 to 0.38 ns/px for I32.
Change-Id: Iab850275e826b4187f0efc9495a4b9eab4402c38
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220871
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Change-Id: Ie4c8e8c5df8f3d37ea49d0c0f7e432e6999b7f0b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221243
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
With the modified gm, the time (on imac pro) goes from 2.4 to 1.6
Change-Id: I9f940220c129f74771f3b17126657bcf3739044f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221176
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Bug: skia:9168
Change-Id: Id931959278a0638a333a5eb6a70117a9d04e25dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221237
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>