What is left of the SkView system is used only by samples or viewer.
As a result, move it out of the Skia source tree and re-organize so it
is a bit easier to understand and use more shared code.
Move samplecode/ClockFaceView.cpp to samplecode/SampleTextEffects.cpp,
sice that's what's actually in it.
Move SkAnimTimer.h to tools/timer, since it's actually shared between gm
and samples.
Change-Id: I55dafd94c64e4f930ddbd19168e0f812af86c455
Reviewed-on: https://skia-review.googlesource.com/146161
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
In order to solve both the VRAM budget for explicit resource allocation and DDL incremental flush problems we will need to always have the opLists be sorted.
This will also help partial flushes.
Change-Id: I3ac2baf622415925ab5c403b7800f3fc49e59838
Reviewed-on: https://skia-review.googlesource.com/144000
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
These flags let symbols cross-link from anything in the group.
This becomes useful if we try to make more parts of Skia
components, letting binaries link .a static libraries that
depend on each other without worrying about the order they're
specified on the link line / in the .rsp file.
Few of our bots should be affected by this, as lld doesn't
really need this workaround.
Change-Id: I75f4cc069a2c82c7898d510a6b8b5cf1b8bdbe50
Reviewed-on: https://skia-review.googlesource.com/145529
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
PipeA is where we want to be, and probably by filling in something
like the TODO I left in SkColorSpaceXformSteps.h?
curr/maxrss loops min median mean max stddev samples config bench
13/13 MB 49 82.8ns 83.2ns 83.2ns 84.1ns 0% █▂▅▄▂▁▃▄▃▃ nonrendering ColorSpaceXformBench_pipeB
13/13 MB 1259 29.6ns 29.7ns 30.4ns 37.2ns 8% ▁▁▁▁▁▁▁▁▁█ nonrendering ColorSpaceXformBench_pipeA
13/13 MB 661 110ns 119ns 119ns 128ns 4% ▅▅▅▅▅▅▅▅█▁ nonrendering ColorSpaceXformBench_steps
13/13 MB 26 239ns 247ns 283ns 609ns 40% ▁▁█▁▁▁▁▁▁▁ nonrendering ColorSpaceXformBench_xform
Change-Id: I98af634ab0a7a1522a5bcfde9ce3fc934d82ecf8
Reviewed-on: https://skia-review.googlesource.com/145643
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This reverts commit fdf05f4ff4.
Reason for revert: Android fixed after removing multitexture support from TextureOp.
Original change's description:
> Revert "Move GrGeometryProcessor's textures out of classes and into"
>
> This reverts commit af87483873.
>
> Revert "GrGeometryProcessor derives from GrNonAtomicRef not GrProgramElement."
>
> This reverts commit 607be37e3d.
>
> Revert "Store GrMeshDrawOps' meshes in GrOpFlushState's arena."
>
> This reverts commit b948572c78.
>
> Revert "Remove multitexturing support from GrTextureOp."
>
> This reverts commit 986f64c601.
>
> Revert "Make result of GrOp::combineIfPossible be an enum."
>
> This reverts commit 641ac7daa8.
>
> Bug: b/112244393
> Change-Id: I579491a3f2f2f2093f1e2a6141fa1e4cc7b760a4
> Reviewed-on: https://skia-review.googlesource.com/145646
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com
Change-Id: I1d41c2ecf7862e31fb025a7a00bb07bae9d83a47
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/112244393
Reviewed-on: https://skia-review.googlesource.com/145780
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This reverts commit af87483873.
Revert "GrGeometryProcessor derives from GrNonAtomicRef not GrProgramElement."
This reverts commit 607be37e3d.
Revert "Store GrMeshDrawOps' meshes in GrOpFlushState's arena."
This reverts commit b948572c78.
Revert "Remove multitexturing support from GrTextureOp."
This reverts commit 986f64c601.
Revert "Make result of GrOp::combineIfPossible be an enum."
This reverts commit 641ac7daa8.
Bug: b/112244393
Change-Id: I579491a3f2f2f2093f1e2a6141fa1e4cc7b760a4
Reviewed-on: https://skia-review.googlesource.com/145646
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This turned out to be an optimization mostly for draws with small device
space areas. Moreover, to be an optimization rather than deoptimization
requires complicated per-GPU tuning where even different devices within
the same architecture require different tuning and tuning is different
between GL and VK.
We've decided to go another direction where we *don't* coalesce draws
but rather make it possible to switch textures quickly from within an
op. This should be a GPU-independent optimization that is also
independent of device space area covered.
Replaces the multitexturing benchmarks with a pair of benchmarks.
composting_images* simulates a layered tile-based compositor.
image_cycle draws tiny images N times each such that they can be
batched. This is to catch a particular possible regression in a
planned change to GrTextureOp where it will use "dynamic state" to
batch across textures. We want to catch a slowdown that might result
from putting draws that use the same texture into the same op but no
longer batching the actual GL level draws and instead using the dynamic
state to "switch" textures between draws.
Change-Id: Ib1cc437525b0b0d56969c30dcb66bb1effb42dc5
Reviewed-on: https://skia-review.googlesource.com/145423
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
It probably doesn't need to be ref counted at all and should be stored
in GrOpFlushState's arena but that's a larger change for another day.
Change-Id: I5f593fb426b8e7794f2ca81194f5a8d9e0f0a072
Reviewed-on: https://skia-review.googlesource.com/145332
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This is a purely mechanical change and intended to make the diff of
https://skia-review.googlesource.com/c/skia/+/144305(Update GrTextureStripAtlas for DDLs) comprehensible.
Change-Id: I85fe54dd26aef6c86536702c2e19bd3226d44ba2
Reviewed-on: https://skia-review.googlesource.com/144788
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Core Skia will always include our own SkiaVulkan.h which basically just
includes vulkan_core.h. All platform vulkan specific stuff must be
include by the client in their own vulkan.h file. Our public interface
is set up that we only use vulkan objects that will be present in all
versions of vulkan headers that the client could include.
Bug: skia:
Change-Id: I6673fd91498eabcc923d65d20f2b5e0a89b4ccf6
Reviewed-on: https://skia-review.googlesource.com/142985
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Bug: skia:
Change-Id: I8b73982e4c9372af1c35bfc5e665c2c146d7d9f5
Reviewed-on: https://skia-review.googlesource.com/141121
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Create new header and namespace, `SkUTF` where we are putting all of our
robust, well documented UTF-8, UTF-16, and UTF-32 functions:
`SkUTF::{Count,Next,To}UTF{8,16,32}()`.
SkUTF.h and SkUTF.cpp do not depend on the rest of Skia and are suitable
for re-use in other modules.
Some of the old UTF-{8,16} functions still live in SkUtils.h; their use
will be phased out in future CLs.
Also added more unit testing and cleaned up old tests.
Removed functions that were unused outside of tests or used only once.
Change-Id: Iaa59b8705abccf9c4ba082f855da368a0bad8380
Reviewed-on: https://skia-review.googlesource.com/143306
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
This allows us to identify clockwise-winding triangles, in terms of
Skia device space, in all backends and with all render target origins.
Bug: skia:
Change-Id: I220e1c459e0129d1cc4dee6458ef94277fbedd21
Reviewed-on: https://skia-review.googlesource.com/142662
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
It is unused, is becoming a maintainence burden and source of bugs,
and takes up a lot of time on the *SAN bots.
Change-Id: If383eb6e4838ca23140f9e16d518b1bfc655fa12
Reviewed-on: https://skia-review.googlesource.com/143307
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Bug: skia:
Change-Id: Iad4c89fbde8bc1f6c3d022af9aec2ec5faa8a4ef
Reviewed-on: https://skia-review.googlesource.com/142583
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Measures two different strategies for dealing with color space transform
of per-op colors. Assuming we already use vertex colors, is it better to
transform them on the CPU, and use float4 color attributes, or transform
them on the GPU, and use ubyte4 color attributes?
So far, looks like ubyte4 w/GPU transform wins.
Change-Id: If49d75303f669fe7f78af8771af906fa0e872577
Reviewed-on: https://skia-review.googlesource.com/142801
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Chrome stopped using them in January:
https://chromium-review.googlesource.com/c/chromium/src/+/832593
For them, it significantly accelerated goma builds. From my tests,
I think we'll see some small speedup. Note that our older build
system invoked through CMD, which limited us to 8k of command line.
GN/ninja don't do that, so we have the full 32k limit. However,
we do use CMD to do our 32-bit builds... But that doesn't matter,
becase AFAICT the longest command line we generate right now is
only about 2.5k long.
Note that (like Chromium) this continues to use rsp files to link.
Those command lines *can* become ridiculously long.
The original motivation, and a nice benefit of this change:
It makes the output of ninja's compdb tool much more useful.
That tool emits JSON in a standard format describing the commands
used to build each source file. Other tools (eg Visual Studio Code)
can parse that JSON, and deduce the correct defines and include
paths to help with symbol navigation.
Change-Id: I73124f13d5117a0c31445cf6ce1c506d2f73609f
Reviewed-on: https://skia-review.googlesource.com/142584
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Some builds set NTDDI_VERSION to a very old version of Windows to ensure
they run on those older versions of Windows. The dwrite_3.h header uses
NTDDI_VERSION in an odd manner, hiding immutable declarations of enums,
structs, and interfaces. NTDDI_VERSION was indended to hide functions
and extensions to structs. DWrite has one function (to create the
factory) and no structs which will be extended.
Skia is already tested to run on the oldest supported Windows platform
(Windows 7), so an external build building Skia with NTDDI_VERSION as a
build define should have no issues at runtime if Skia ignores it. If
Skia doesn't ignore NTDDI_VERSION in this case the DWrite backend will
be runtime limited to interfaces in very old versions of Windows,
instead of using newer interfaces which become available at runtime.
Change-Id: I3e9ac2c4116d75588bfff391928d3cd446d6363a
Reviewed-on: https://skia-review.googlesource.com/142324
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
build debug on linux for gdb
Building with this define enables additional
checks for standard library functions when
running gdb, and allows printing std::string.
R=halcanary@google.com
Bug: skia:
Change-Id: I7f2dc12336f9239443328f13264be7a6b285c4b5
Reviewed-on: https://skia-review.googlesource.com/140786
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-on: https://skia-review.googlesource.com/141083
Commit-Queue: Cary Clark <caryclark@skia.org>
created new GMs for skinning
Bug: skia:
Change-Id: I15fb2bd02fba8beb6dd2dd3f3716da016ea92192
Reviewed-on: https://skia-review.googlesource.com/140241
Commit-Queue: Ruiqi Mao <ruiqimao@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
It is unused. Remove it.
Change-Id: If62a93a58d21bfccd6df112e92a709bff4d11c97
Reviewed-on: https://skia-review.googlesource.com/141566
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>