Commit Graph

49564 Commits

Author SHA1 Message Date
Mike Klein
03c932c74f generalize skvm pixel unpacking
Add a PixelFormat struct and use it to load/gather_unorm().  This handles
loading all pixel formats that are unorm and can fit in 32 bits, with
float and larger formats to follow.  That means this adds SkVMBlitter
support for reading A8, G8, 4444, R8G8, A16_unorm, and R16G16_unorm.

Next step will do the same for stores, allowing arbitrary destinations.

Change-Id: Iabbf6171ee6d5abb44cf131eda6647980767c396
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302252
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-07-15 15:45:50 +00:00
Michael Ludwig
1846ba3f08 QoL improvements to GrTAllocator
-Adds main comment
-Simplify constructor
-Avoid running trivial destructors (maybe compilers would know to remove the entire loop, but this helps make that clearer).

Change-Id: I3825ef21c0d74933df54ca4f532492e5c997f0e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302642
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-07-15 14:45:00 +00:00
Herb Derby
af3ae69335 Reland "rename MakePath to Make"
This is a reland of 36132b2aea

Original change's description:
> rename MakePath to Make
> 
> Change-Id: Ibdee0835308401fce99ff9e4d98486c4808f84a2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302683
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I36c1c0625af8e9afff34d891995ca7aff8f169bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302896
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-15 14:43:50 +00:00
Brian Salomon
8f32f1300d Don't avoid disabling subset for planar image draws
Change-Id: Icb34f14d1103a7849813d4b80e7733ba9b743a99
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302638
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-07-15 14:34:50 +00:00
Greg Daniel
06980dba90 Revert "Roll dawn from 0d52f800a1d1 to b31f5e717e2d (4 revisions)"
This reverts commit 14fdcdc891.

Reason for revert: speculative revert to see if this is cause the d3d failures.

Original change's description:
> Roll dawn from 0d52f800a1d1 to b31f5e717e2d (4 revisions)
> 
> Also includes a build file fix for glslang.
> 
> https://dawn.googlesource.com/dawn.git/+log/0d52f800a1d1..b31f5e717e2d
> 
> 2020-07-14 enga@chromium.org Remove kMaxBindingsPerGroup limit
> 2020-07-14 rharrison@chromium.org Roll 5 dependencies
> 2020-07-14 kainino@chromium.org Skip clang-format on Windows
> 2020-07-14 cwallez@chromium.org Rolling build dependencies.
> 
> Also rolling transitive DEPS:
>   https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang from 29c9135d06f1 to b481744aea1e
>   https://chromium.googlesource.com/external/github.com/google/shaderc from 1402ed576596 to 5515d2a0c20c
> 
> Change-Id: I8af4c9a0bcd031fde120c9b2108b3bd2c1db0174
> Bug: None
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302796
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Eric Boren <borenet@google.com>

TBR=borenet@google.com,bsalomon@google.com,cwallez@chromium.org

Change-Id: Ieae7fe809da0a9b9404da26163c96015f97e9761
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302898
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-07-15 14:24:02 +00:00
Greg Daniel
a58db7f87e Add GrStagingBufferManager and use GrGpuBuffers to manage caching.
With this change if a backend Gr*Gpu wants to using staging buffers
they just add a generic GrStagingBufferManager member object. This
object can be used to get slices of upload buffers. Then they just need
to implement the virtual for taking ownership of buffers during submit.

We rely on our GrResourceCache to handle caching and reuse of these
buffers.

This change allows us to remove all other virtuals on GrGpu around
managing staging buffers.

Change-Id: I5db9a3c52133978ea89d6c0de440f434fbf91a51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300226
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Stephen White <senorblanco@google.com>
2020-07-15 14:17:50 +00:00
Mike Reed
13711ebe68 rename SkMipMap to SkMipmap
Change-Id: I1fa8a0482a717847236a30b4851061f4074b7755
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302644
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-07-15 13:26:13 +00:00
Adlai Holler
779813a239 Revert "Add a direct context arg to makeColorTypeAndColorSpace"
This reverts commit a56da9ee92.

Reason for revert: UBSAN complains in Vulkan OOPRDDL mode

Original change's description:
> Add a direct context arg to makeColorTypeAndColorSpace
> 
> This is part of a larger effort to de-power SkImage and force users to
> specify the GPU context for all new images.
> 
> Staging flag landed in Chrome CL 2296632.
> 
> Bug: skia:10466
> Change-Id: I6b7bbec10369f7d8ee884dd1bcc234d332c30a6c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302290
> Commit-Queue: Adlai Holler <adlai@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=bsalomon@google.com,robertphillips@google.com,adlai@google.com

Change-Id: Ide36bed6966d3d92ad6b8d05f897d22d287b40b1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10466
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302824
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2020-07-15 13:02:55 +00:00
Kevin Lubick
79d88fe4d1 [canvaskit] Quick fix for older skp format
As a quick fix, this SKP was downloaded from https://fiddle.skia.org/c/cbb8dee39e9f1576cd97c2d504db8eee

I intend to land a bit of code that will programmatically
regenerate this (and potentially other SKPs that we test
against)

Change-Id: Iaea23c3ec9c42117e851bee5e6d423366ab7c669
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302837
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-15 12:30:50 +00:00
Corentin Wallez
14fdcdc891 Roll dawn from 0d52f800a1d1 to b31f5e717e2d (4 revisions)
Also includes a build file fix for glslang.

https://dawn.googlesource.com/dawn.git/+log/0d52f800a1d1..b31f5e717e2d

2020-07-14 enga@chromium.org Remove kMaxBindingsPerGroup limit
2020-07-14 rharrison@chromium.org Roll 5 dependencies
2020-07-14 kainino@chromium.org Skip clang-format on Windows
2020-07-14 cwallez@chromium.org Rolling build dependencies.

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang from 29c9135d06f1 to b481744aea1e
  https://chromium.googlesource.com/external/github.com/google/shaderc from 1402ed576596 to 5515d2a0c20c

Change-Id: I8af4c9a0bcd031fde120c9b2108b3bd2c1db0174
Bug: None
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302796
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2020-07-15 12:16:50 +00:00
skia-autoroll
b92d53afbe Roll ANGLE from d98afb787a24 to 4ad0f250a010 (9 revisions)
d98afb787a..4ad0f250a0

2020-07-14 jmadill@chromium.org Revert "Vulkan: Enable VK_KHR_get_memory_requirements2 extension"
2020-07-14 timvp@google.com Update README.md to indicate GLES 3.1 conformance
2020-07-14 lehoangq@gmail.com Metal: Create a dedicated class for Window Surface.
2020-07-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Headers from 2a164e9680a5 to 858b13a1220a (1 revision)
2020-07-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from d704d1bc0e11 to 0bc4c2ae7012 (1 revision)
2020-07-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from ad65826a2ab1 to cd0af6456eb1 (5 revisions)
2020-07-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from 4e13c90944e9 to fe24a54808c2 (3 revisions)
2020-07-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from 68bfbc219497 to 521eaacef67a (1 revision)
2020-07-14 syoussefi@chromium.org Vulkan: Fix resolve draw path

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 nifong@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: chromium:1105609
Tbr: nifong@google.com
Change-Id: I787e953d2ad8e3f3696ff4acc265612b724befb2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302764
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-15 05:16:59 +00:00
skia-autoroll
97e24e31d1 Roll Chromium from 2a68959faa37 to c28de0e53968 (434 revisions)
2a68959faa..c28de0e539

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC nifong@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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: nifong@google.com
Change-Id: I5808b9bdf22a6b3a54f5966f30426a2acce7d4d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302763
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-15 05:00:00 +00:00
skia-autoroll
6e7083de35 Roll SwiftShader from cd0af6456eb1 to 1de497cc50ab (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/cd0af6456eb1..1de497cc50ab

2020-07-14 natsu@google.com Support Gralloc3 in SwiftShader
2020-07-14 swiftshader.regress@gmail.com Regres: Update test lists @ cd0af645
2020-07-14 capn@google.com Undefine Bool after the headers that define them

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC nifong@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:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: nifong@google.com
Change-Id: I30a871a2cc3f8b7a8f20315a945902d514a86c76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302766
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-15 04:47:49 +00:00
Herb Derby
9421094d01 Revert "rename MakePath to Make"
This reverts commit 36132b2aea.

Reason for revert: Draws so wrong.

Original change's description:
> rename MakePath to Make
> 
> Change-Id: Ibdee0835308401fce99ff9e4d98486c4808f84a2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302683
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

TBR=herb@google.com,robertphillips@google.com

Change-Id: I6af8bca927fd791b6b5020b0ac14660e206f640c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302776
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-15 01:47:11 +00:00
Herb Derby
36132b2aea rename MakePath to Make
Change-Id: Ibdee0835308401fce99ff9e4d98486c4808f84a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302683
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-15 01:31:49 +00:00
Mike Reed
59e1602a52 Revert "remove support for serialized pictures before aug 2019"
This reverts commit 380fba6e4b.

Reason for revert: try to fix android-pie-arm64-rel for chrome roll

Original change's description:
> remove support for serialized pictures before aug 2019
> 
> Change-Id: I9b2a2dbac4110665e06882b9cbbc6f59e6bc0c21
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302397
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=bungeman@google.com,rmistry@google.com,fmalita@chromium.org,reed@google.com,michaelludwig@google.com

Change-Id: Iad0c262b1aaa966cfdb2756737b2460247f830dd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302679
Reviewed-by: Mike Reed <reed@google.com>
2020-07-15 00:10:59 +00:00
Adlai Holler
a56da9ee92 Add a direct context arg to makeColorTypeAndColorSpace
This is part of a larger effort to de-power SkImage and force users to
specify the GPU context for all new images.

Staging flag landed in Chrome CL 2296632.

Bug: skia:10466
Change-Id: I6b7bbec10369f7d8ee884dd1bcc234d332c30a6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302290
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-07-14 22:36:49 +00:00
John Stiles
886a904595 Update SkTQSort to use half-open ranges.
C++ algorithms have largely standardized on a [begin, end) half-open
range, as seen in standard library containers. SkTQSort now adheres to
this model, and takes vec.begin() and vec.end() as its inputs.

To avoid confusion between inclusive and half-open ranges inside the
implementation, internal helper functions now take "left" and "count"
arguments instead of "left"/"right" or "begin"/"end". This avoids any
ambiguity.

(Although performance was not the main goal, this CL appears to
slightly improve our sorting benchmark on my machine.)

Change-Id: I5e96b6730be96cf23d001ee0915c69764b2c024a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302579
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-07-14 22:13:59 +00:00
Brian Osman
a7685b2343 Runtime effects: Allow null children
Two related things:
1) SkRuntimeEffect will allow null child shaders when calling
   makeshader. This will produce a GrSkSLFP with null FP children.
   Fix some code that assumed that children were non-null.
2) Change the input color passed to any children to be the SkSLFP's
   input color, rather than the default (white). This lets nullptr
   children in runtime effect have the desired behavior (they are the
   paint color or similar, depending on context).

Change-Id: Iabffc50b0a893a56403c5240f32a5da6a88d81f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301980
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-07-14 21:33:57 +00:00
Joe Gregorio
3bbde3a092 Add one R preview bot.
Bug: skia:10371
Change-Id: I3e5c8b34b7b80fff492de11ec769b33e2be3671c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302577
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2020-07-14 21:22:27 +00:00
Herb Derby
b2db9797c5 subclass GrPathSubRun from GrSubRun
Move PathGlyph to GrPathSubRun, and make the array for the path
data directly in the alloc instead of in a vector.

Change-Id: I861cb934e356f526f96e593d25019b00451f77b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302640
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-14 20:49:07 +00:00
Brian Salomon
4759dcaa8b Remove under used IsACopyNeededForMips helper.
Also don't overwrite YUVA planes unless all succeed.

Removes an unnecessary use case of GrSamplerState::Filter::kMipMap as
the single caller was always assuming mip mapping is in use.

Bug: skia:10344

Change-Id: I2309a364c8ba244f2a220f415835348d0d79ef35
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302641
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-07-14 20:39:37 +00:00
Brian Salomon
0ea330703e Make GrTextureProducer take optional subset and domain rects
Split bicubic into separate functions.

Removes usage of null GrSamplerState::Filter to indicate bicubic.

Bug: skia:10344

Change-Id: Ife649ba84afe3a06d7d8fb0d46677ce96fc264dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302636
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-07-14 20:27:59 +00:00
Herb Derby
252a3c0e11 make GrAtlasSubRun a subclass of GrSubRun
Add API for GrSubRun.

Make sure the API presented by GrSubRun works. Use the original
implementation as the first subclass. It's named SkAtlasSubRun for now
even though it handles both path and atlas drawing. The next subclass
will be pulling out paths.

Change-Id: Id9b2feaa2c9ad9214736ff4a9f577d1de4d4212d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302582
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-14 19:33:17 +00:00
Greg Daniel
a726cecbd4 Update GrDawnBuffer to handle mappable xfer buffers.
Change-Id: Ib6c065bda7d801f985d11c11fba121ece805f758
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300199
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Stephen White <senorblanco@google.com>
2020-07-14 19:16:37 +00:00
Robert Phillips
c7228c604e Set up to use new GrDirectContext factories in Chrome
Here is the Chrome-side CL waiting on this CL:
https://chromium-review.googlesource.com/c/chromium/src/+/2297920 Use new GrDirectContext factories instead of deprecated GrContext ones)

Change-Id: Ic607c8f4d3b87b38b5a56a2c44012b7402e074dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302583
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-07-14 18:56:17 +00:00
Herb Derby
3d00a97bce extract and rename SubRun to GrSubRun
TBR=reed@google.com

Change-Id: I8be10fc421ab34de2d2307093f8eee0537d234ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302578
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-14 18:32:27 +00:00
John Stiles
955adbe02c Replace various one-liner sorting functor adapters with lambdas.
These tiny adapter classes aren't needed, since all of our clients have
support for lambdas.

Change-Id: Ibf22b1fd0adb3707db570432c50720df9c9329e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302581
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-07-14 17:45:26 +00:00
Ben Wagner
9d5c55cedf Move makeFontData to SkTypeface_FreeType.
SkTypeface_FreeType uses SkFontData and makeFontData as a way to lazily
create FT_Face objects. Other SkTypeface types do not need this, so
remove it.

Change-Id: I2f2f829deac9f7f6aac06f9ce84f856922d8a861
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/299443
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-07-14 17:00:23 +00:00
Stephen White
1c47c8d248 Roll Dawn, and update to new TextureDataLayout API.
BufferCopyView's offset/bytesPerRow/rowsPerImage were deprecated in
favour of the aggregated TextureDataLayout member.

Bug: skia:10497

Change-Id: I89c508c1ba9dd8a25222469cdef23549a93cd9a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302580
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@google.com>
2020-07-14 16:55:06 +00:00
Jim Van Verth
bb80fcdd41 Add Direct3D compressed texture support.
Implements GrD3DGpu::onCreateCompressedTexture and fixes
GrD3DGpu::onUpdateBackendTexture. D3D expects row data for texture
uploads to be aligned to 256 bytes, so any compressed data for smaller
textures needs to be unpacked to this row pitch.

Also uses the non-compressed routines to implement
onUpdateCompressedBackendTexture and onWrapCompressedBackendTexture.

Change-Id: I20fe4a64fa9b14231590f031ef6fdfadff5de256
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302396
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-07-14 16:49:26 +00:00
Brian Salomon
f990b6ab4a Remove GrTextureProducer::DetermineDomainMode.
We now rely on GrTextureEffect and GrBicbicEffect
to determine if shader-based tiling is required.

GrTextureProducer is still responsible for noticing that
the proxy is approximate because GrTextureEffect doesn't
consider that in its basic Make() factory (as opposed to
MakeSubset()).

Change-Id: I8e1aeb9edbcfa73ea0bf80b5256ee1ca21fe9c81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301985
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-07-14 16:48:46 +00:00
Mike Reed
2fe1569298 Create mipmaps when creating images
Follow-on CLs:
- add serialization for mips to pictures
- implement for other image types (e.g. lazy(?), gpu)
- improve generated mip quality

Bug: skia:10411
Change-Id: Id874f170e9cb8ae4405dc4f6249e1ea6274f20aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297739
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-07-14 16:02:26 +00:00
Brian Osman
12c5d29ba6 In FPs, store pointers for all child slots, even nullptr
This simplifies things like ConstantOutputForConstantInput and
invokeChild. It also removes the need for child indices: generated
FPs now directly refer to their children by slot number.

Change-Id: I69bbb042d5d72d21b999256f969c467702d0774d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302436
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-07-14 15:43:56 +00:00
Greg Daniel
ceebe424b1 Revert "Add GrContext api to update compressed backend textures."
This reverts commit 2c180304dc.

Reason for revert: attempted workaround did not fix techno spark so needs further investigation

Original change's description:
> Add GrContext api to update compressed backend textures.
> 
> Bug: chromium:1099255
> Change-Id: I0c3f25ddb037e47e3b910fa89c3d8b3aa27b3114
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302265
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com

Change-Id: Ib5433def02dc5dad97dcdbd4476ced6de2361e6a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1099255
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302576
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-07-14 15:05:58 +00:00
John Stiles
df07800f95 Include the SkTSort header only where it is used.
Change-Id: If51be35205b40c4a22979a4b49b031126af1dde7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302500
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>
2020-07-14 14:19:06 +00:00
Greg Daniel
43833b028a Add GrContextOption to limit the number of cached secondary command buffers.
Bug: skia:10438
Change-Id: I3116fc1c7ee75f9b7a712c05199a9ed4a0d419c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302291
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Emircan Uysaler <emircan@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-07-14 13:51:26 +00:00
Mike Reed
380fba6e4b remove support for serialized pictures before aug 2019
Change-Id: I9b2a2dbac4110665e06882b9cbbc6f59e6bc0c21
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302397
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2020-07-14 13:25:17 +00:00
Robert Phillips
f4f8011aef Add Context factories to GrDirectContext
In order to stage the transition from GrContext to GrDirectContext, both
of them will have to have the factories for a while.

This CL also removes all internal uses of the old (GrContext) factories.

Change-Id: Ibe1edd0818ea23a0d54257c55f35f12526047ef3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302263
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Adlai Holler <adlai@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-07-14 12:40:46 +00:00
skia-recreate-skps
73e76a39ec Update Go Deps
Change-Id: I91ad3dce235b0a5c6256948c93e7dc0970b1f5a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302496
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-07-14 05:47:56 +00:00
skia-autoroll
47ab248791 Roll Chromium from b39fabb9a3ae to 2a68959faa37 (427 revisions)
b39fabb9a3..2a68959faa

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC nifong@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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: nifong@google.com
Change-Id: I7ce9b97ac9fd90e7569282af29af9e14105d2aba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302486
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-14 04:46:41 +00:00
skia-autoroll
b4302f94c5 Roll ANGLE from 7d82d29398cc to d98afb787a24 (9 revisions)
7d82d29398..d98afb787a

2020-07-13 m.maiya@samsung.com Vulkan: Enable VK_KHR_get_memory_requirements2 extension
2020-07-13 enga@chromium.org Revert "Refactor DisplayGbm::generateConfigs"
2020-07-13 nguyenmh@google.com Multi-frames serialization + comparision for capture replay test
2020-07-13 xinyi.he@arm.com Vulkan: Disable GL_EXT_robustness extension on Mali
2020-07-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 44ef9e08c459 to 8726fda3f865 (8 revisions)
2020-07-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 94f1ce331e85 to 04c82ec6f36f (9 revisions)
2020-07-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from 5aaa0c2bc821 to 4e13c90944e9 (7 revisions)
2020-07-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from 145050bf2b98 to d704d1bc0e11 (2 revisions)
2020-07-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 6cd27bab06f4 to ad65826a2ab1 (7 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 nifong@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: chromium:1105208
Tbr: nifong@google.com
Change-Id: I3800a24f43f016749f4ea27924710b9f21711516
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302487
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-14 04:42:36 +00:00
skia-autoroll
ecff79362c Roll SwiftShader from ad65826a2ab1 to cd0af6456eb1 (5 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/ad65826a2ab1..cd0af6456eb1

2020-07-13 capn@google.com Remove dead ASTC code for GLES
2020-07-13 capn@google.com Rename command classes to match API calls
2020-07-13 srisser@google.com Add decoder for BC6h
2020-07-13 sugoi@google.com Image dirtiness
2020-07-13 amaiorano@google.com Android: build against llvm-10 instead of llvm-7

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC nifong@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:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: nifong@google.com
Change-Id: Iacd86abd20864bb6b1197cb661676f9851eb0ff7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302454
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-14 04:41:36 +00:00
skia-recreate-skps
b0a95776ab Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: Ia3bf7166278d95a000cb2d61b2a18c2faccd9db9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302478
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-07-14 01:00:21 +00:00
John Stiles
6e9ead9166 Revert "Remove custom SkSort algorithms."
This reverts commit 70474c1cb0.

Reason for revert: bot build failure

Original change's description:
> Remove custom SkSort algorithms.
> 
> SortBench shows that SkTQSort and SkTHeapSort are inferior to std::sort.
> The difference is small on randomized inputs, but quite significant for
> semi-ordered inputs (forward/backward/repeated). There doesn't seem to
> to be any compelling advantage to SkTQSort.
> 
> Nanobench results: https://screenshot.googleplex.com/9JOLV1d6Z0u
> 
> (These performance numbers are from an optimized build my local machine;
> it's possible that we might see different results on the test bots.)
> 
> Change-Id: Iaf19563041547eae7de2953be249129108f093b1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302295
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,brianosman@google.com,johnstiles@google.com

Change-Id: I1126dd4cda95716dac225ad32d5b0e5cf3f09421
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302447
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-07-14 00:25:05 +00:00
John Stiles
70474c1cb0 Remove custom SkSort algorithms.
SortBench shows that SkTQSort and SkTHeapSort are inferior to std::sort.
The difference is small on randomized inputs, but quite significant for
semi-ordered inputs (forward/backward/repeated). There doesn't seem to
to be any compelling advantage to SkTQSort.

Nanobench results: https://screenshot.googleplex.com/9JOLV1d6Z0u

(These performance numbers are from an optimized build my local machine;
it's possible that we might see different results on the test bots.)

Change-Id: Iaf19563041547eae7de2953be249129108f093b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302295
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-07-13 23:35:20 +00:00
John Stiles
affae53173 Add various missing header files to BUILD.gn.
Change-Id: I6f4409e9e8c6d4a6d71bc41e57dce7417d7788f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302440
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>
2020-07-13 22:35:50 +00:00
Chris Dalton
5bdbdf44a9 Update glMultiDraw... to use GLuint* for baseInstances
There seems to be some inconsistency across specs, but GLuint* is the
correct type to use for this array.

TBR=bsalomon@google.com

Bug: skia:10419
Change-Id: I4106b98278850e30e748746159ea4efc05688c0c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302433
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-07-13 22:13:30 +00:00
Ben Wagner
81e4bf2870 Use public api to serialize typefaces.
SkFontData can be phased out now that there is the public
SkFontParameters and SkFontArguments and supporting methods implemented
on all SkTypefaces. After this change onMakeFontData can be moved to the
FreeType backed typeface as an implementation detail.

Change-Id: I26c41ecbbe9d3c6a5bd401e908fef67d325e1770
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/299442
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-07-13 21:18:49 +00:00
Herb Derby
342273cbaa remove firstSubRun
Since exposing subRunList, there is no reason to have the additional API
call for getting the head of the list.

Change-Id: Ib4bf8b7b89484154ad8d576bb5397810628f1a11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302258
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Auto-Submit: Herb Derby <herb@google.com>
2020-07-13 20:57:58 +00:00