Commit Graph

24451 Commits

Author SHA1 Message Date
Mike Klein
da5581f860 did you mean to leave this in?
Change-Id: I95e7eca71ee5d9ec1cf0d0136b560cd45cee910d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250685
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-24 19:55:22 +00:00
Jim Van Verth
5a8f3e4aac Reland "Enable Programs (formerly GLPrograms) test for other APIs"
This is a reland of 598741667a

Original change's description:
> Enable Programs (formerly GLPrograms) test for other APIs
> 
> Bug: skia:9365
> Change-Id: I2eeac4e628425411b0a8f9ffa94ad61d58254b77
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249806
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

Bug: skia:9365
Change-Id: I94db6cb2b1465edbb2e6d32708b835a76e12cbc6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250016
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-24 19:53:25 +00:00
Brian Salomon
322301a4c5 GrResourceProvider::MakeApprox() fix after SkISizification
Bug: chromium:1017229
Bug: chromium:1017242
Change-Id: Ibef5b7c176076d5e9256a31e08ce647f3235dc8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250658
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
2019-10-24 19:52:34 +00:00
Robert Phillips
c5a2c759fb Pull tessellation forward into GrTextureOp::onPrePrepareDraws
This trades memory and DDL-record time for GPU-flush time. That is, by tessellating in onPrePrepareDraws we will consume more memory (for the verts) and time at DDL-record time but, hopefully, less time when drawing the DDL.

Change-Id: I97dd1a00486c7a1da53add2ea203bf3f90c20162
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250178
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-10-24 19:41:44 +00:00
Hal Canary
e107faa062 SkRemoteGlyphCache Add tracing to diff canvas
Use `extra_cflags=["-DSK_CAPTURE_DRAW_TEXT_BLOB"]` to enable.

Change-Id: I1d6db478ee91696cdce090647b889c17a83a2718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250259
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-24 17:09:31 +00:00
Mike Klein
96bce8f919 Reland "hide color filters from blitters"
This is a reland of cba64462d2

... with a fix to SkColorFilterShader::onAppendStages() to
copy out the alpha.  The blitters sometimes outlive the shader.

Original change's description:
> hide color filters from blitters
>
> This is all guarded by the old define we never rebaselined.
>
> Had to make some upgrades to SkColorFilterShader to support
> replacing an SkPaint's shader and color filter with a single
> merged SkColorFilterShader.  Our pipeline's order of operations
> is
>
>    1) shader
>    2) scale by paint alpha
>    3) color filter
>
> but SkColorFilterShader had no way to get that paint alpha in
> the middle there, so I added one.
>
> Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN
Change-Id: Ia98dbeaba6220a60d195c0ef967772c9dce882a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250596
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-24 16:57:02 +00:00
Brian Salomon
1a217eb410 Type usage improvements in GrTextureProducer classes
Make better use of SkISize and GrImageInfo.

Change-Id: Ie3c9f16d7db05e6527baf1aae4607d74d020ee49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250577
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-24 16:38:57 +00:00
Herb Derby
4a1af26f1a Fix fuzzer bug in SkDescriptor::isValid
This is following up chrome bug:
https://bugs.chromium.org/p/chromium/issues/detail?id=996211

BUG=skia:18491

Change-Id: I4c85bc916903aaa2fdf7eb226bdf3e57f8b1c66c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250578
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-10-24 16:33:52 +00:00
Florin Malita
a8392b79fb Slightly faster hsl_to_rgb stage
Reduce the number of branches, similar to GrHSLToRGBFilterEffect.fp.

colorfilter_matrix_hsla   500.92 -> 482.47

Change-Id: I7d11a226f7db314dd284be538eee37fbe59f60b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250339
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-10-24 16:26:02 +00:00
Robert Phillips
df4601b484 Revert "Allow direct readback for formats in non-ES OpenGL"
This reverts commit 162d16891f.

Reason for revert: red on bots

Original change's description:
> Allow direct readback for formats in non-ES OpenGL
> 
> Bug: skia:8962
> Change-Id: I85a2e228892a54cc2a0abd607d034515a9af12af
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250258
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: I9509665678e3f4984143ff4f2d91565c4339a006
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8962
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250656
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-24 16:23:53 +00:00
Chris Dalton
2e1381ec86 Don't keep "outResultsFile" open in nanobench
There is a bug on Pixel and Pixel2 devices where the program
eventually terminates with a non-zero exit code. Closing the
outResultsFile between JSON flushes seems to fix it (for whatever
reason).

Bug: b/143074513
Change-Id: I935e982e88758fda19292129c8031f8501cca615
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249821
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-24 16:09:02 +00:00
Mike Klein
37bc8f9652 restore _DXDY image shader on ARM
This is mostly the patch we've been looking at, rebased,
with some of my comments from the review folded in.

The perf speedup is qualitatively the same as I saw on the other patch.
On that same Snapdragon 835, with draw_bitmap_aa_rotate runs about 30%
faster (543.39 vs 712.71us) and draw_bitmap_noaa_rotate about 15% faster
(481.93 vs.  572.13us).

The main thing I have omitted is the NEON specialization of matrix
procs.  It looks like both nofilter_affine() and filter_affine() are
autovectorized well, and we seem to perform fine enough without manual
specialization here.  I'm even tempted to remove [no]filter_scale_neon()
as a follow up.

Image diffs look mostly fine.  This unexpectedly fixes rotated lighting
shaders in GMs.  Clearly that lighting shader must get a lot of use...

Change-Id: I67ee0b3ab92d6e56584ece05feb6e66d6fb7c660
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249860
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-10-24 15:51:12 +00:00
Brian Salomon
162d16891f Allow direct readback for formats in non-ES OpenGL
Bug: skia:8962
Change-Id: I85a2e228892a54cc2a0abd607d034515a9af12af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250258
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-24 15:31:56 +00:00
Brian Salomon
4ab4e641f1 Narrow fix for creating BGRA backend texture from pixmaps on desktop GL.
GrTestingBackendTextureUploadTest creates backend textures from BGRA
pixmaps. There is a bug on desktop GL. We choose a RGBA format for the
texture. We then infer the color type of the data from the format (via
a hop through GrPixelConfig) as RGBA and upload it as such.

Currently we don't fail the test because the test fails to read the data
back (because we don't support direct reading of BGRA data from textures
in GL).

Fixing the read back causes the test to fail.

This change removes the inference of color type from the format and
instead uses the pixmaps' color type.

This doesn't fix several larger issues, including:

1) The intended color type is not specified when creating a texture of a
solid color so we still infer it from the format in that case.

2) We may not support direct uploading of data in the pixmaps' color type
to the chosen texture format but must first convert it to some other
color type on the CPU.


Change-Id: I3b1022c40201fc107cb39bbb5cca775795c828e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250336
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-24 13:29:04 +00:00
Herb Derby
1213041957 Use common path drawing code
Currently, there are two methods for drawing paths. The device metrics
version that uses the glyphs from the mask paths directly, and the common
path (font size 64) version that uses scaling to generate the paths.

This change removes the device metrics version. This is a very rare execution
path because, the font size needs to be < 132, but still generate a glyph with
dimensions > 256. I have only seen this in the wild once.

This change simplifies the code, and does not change the behavior very much.
There are only two GMs show big numerical changes. One has visible differences
(textblobmixedsizes), and the other is very slight visible difference(mixedtextblobs),
 but it is not wrong.

Change-Id: Ieb10cd73c81196c66be5f791d591471e15175917
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249888
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-10-23 22:43:58 +00:00
Chris Dalton
6e38ce7c08 Disable msaa on Pixel3a
Bug: b/143074513
Change-Id: I1110ee542483b07b12e808bcd2decd6ce24f0a15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249920
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-23 20:25:17 +00:00
Hal Canary
a255358d98 [minor] SkRemoteGlyphCache impl: add explicit
Change-Id: I3a1d97b867a66ed86e4c97bee72150b74d9dc112
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249877
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-10-23 19:45:55 +00:00
Jim Van Verth
6863bb0930 Set Metal rendertargetproxy via drawableSize
Bug: skia:
Change-Id: Idfe709836a9c0be5ce9b6fd200956ff8e284596d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249981
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-23 19:32:25 +00:00
Stephen White
dd78efd0f5 Dawn: implement unified UBOs.
This fixes the fpcoordinateoverride GM, and others.

Change-Id: I715e39201a4c77aa49395a3b9259caaf3ca0328e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249893
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-10-23 19:26:35 +00:00
Michael Ludwig
11eeb94bfe Revert "hide color filters from blitters"
This reverts commit cba64462d2.

Reason for revert: ASAN failures: https://logs.chromium.org/logs/skia/4812b6e5916f3d11/+/steps/symbolized_dm/0/stdout

Original change's description:
> hide color filters from blitters
> 
> This is all guarded by the old define we never rebaselined.
> 
> Had to make some upgrades to SkColorFilterShader to support
> replacing an SkPaint's shader and color filter with a single
> merged SkColorFilterShader.  Our pipeline's order of operations
> is
> 
>    1) shader
>    2) scale by paint alpha
>    3) color filter
> 
> but SkColorFilterShader had no way to get that paint alpha in
> the middle there, so I added one.
> 
> Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

TBR=mtklein@google.com,reed@google.com

Change-Id: Icc3a3916ca763de979c01d65746d74c49e14544c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250261
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2019-10-23 19:15:06 +00:00
Mike Klein
cba64462d2 hide color filters from blitters
This is all guarded by the old define we never rebaselined.

Had to make some upgrades to SkColorFilterShader to support
replacing an SkPaint's shader and color filter with a single
merged SkColorFilterShader.  Our pipeline's order of operations
is

   1) shader
   2) scale by paint alpha
   3) color filter

but SkColorFilterShader had no way to get that paint alpha in
the middle there, so I added one.

Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-10-23 18:14:03 +00:00
Brian Salomon
5918e8313b Rewrite ReadPixels_Gpu test to be more exhaustive and share code.
Implementation is shared with with AsyncReadPixels.

Change-Id: If40705e96cc7fb073ab6024ab59819784c8be0ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244717
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-23 18:06:03 +00:00
Robert Phillips
e9462dd2da Rename *worstCase* to backingStore* in GrSurfaceProxy
These names are more appropriate after:

https://skia-review.googlesource.com/c/skia/+/241356 (Always create an approx-size texture for approx-fit proxies))

Note that this CL does have one substantive change in GrCoordTransform::hasSameEffectAs where we use our knowledge of the size at which the backing stores will be allocated to remove a sly usage of GrSurfaceProxy::underlyingUniqueID.

Change-Id: Ibbb8cb23c4503f267abbdf4794610f3262a6f515
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250257
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-10-23 17:15:01 +00:00
Florin Malita
36031207dc GPU support for SkColorFilters::HSLAMatrix
Change-Id: I5b762811b44861fcedd2fa5c0e48a82718458605
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/232398
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-10-23 16:10:27 +00:00
Robert Phillips
32803ff744 Add PrePreparedDesc to GrTextureOp
This centralizes the information we are preparing and reduces duplicate computation (e.g., of the VertexSpec).

Change-Id: Iac2c4d0890389e641ee9a7453dace31c0a4ca965
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249983
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-10-23 13:37:07 +00:00
Robert Phillips
40b815db97 Revert "Rename gl_SampleMask to sk_SampleMask"
This reverts commit 23716d42f7.

Reason for revert: red bots and GMs

Original change's description:
> Rename gl_SampleMask to sk_SampleMask
> 
> Change-Id: I3924c6f76edf310a984e4fd89478b00eeec69722
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249931
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=egdaniel@google.com,csmartdalton@google.com,ethannicholas@google.com

Change-Id: I74848e95972cf2c41cc28887e26214136ce79e08
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250180
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-23 12:28:48 +00:00
Robert Phillips
d9ddd07554 Revert "Rename sampleVariablesSupport() to sampleMaskSupport()"
This reverts commit 766b4c9c21.

Reason for revert: GMs and bots

Original change's description:
> Rename sampleVariablesSupport() to sampleMaskSupport()
> 
> We have only implemented support for the sample mask. Renaming the cap
> to reflect that.
> 
> Change-Id: I10b5923c7464093187336016963a8ac51ebd54f5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249932
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>

TBR=egdaniel@google.com,csmartdalton@google.com,ethannicholas@google.com

Change-Id: I712169e86ee479bffd71d6665710f731d6c0e042
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250179
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-23 12:27:08 +00:00
Stephen White
8e3e431dad Dawn: fix compile.
Change-Id: Ibbba2824224f5c4b9ed0a68cafe58e0e91c22a31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250097
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-23 12:22:27 +00:00
Mike Klein
d48488b5ea reorder to minimize register pressure
Rewrite program instructions so that each value becomes available as
late as possible, just before it's used by another instruction.  This
reorders blocks of instructions to reduce them number of temporary
registers in flight.

Take this example of the sort of program that we naturally write,
noting the registers needed as we progress down the right:

    src = load32 ...          (1)
    sr = extract src ...      (2)
    sg = extract src ...      (3)
    sb = extract src ...      (4)
    sa = extract src ...      (4, src dies)

    dst = load32 ...          (5)
    dr = extract dst ...      (6)
    dg = extract dst ...      (7)
    db = extract dst ...      (8)
    da = extract dst ...      (8, dst dies)

    r = add sr dr             (7, sr and dr die)
    g = add sg dg             (6, sg and dg die)
    b = add sb db             (5, sb and db die)
    a = add sa da             (4, sa and da die)

    rg   = pack r g ...       (3, r and g die)
    ba   = pack b a ...       (2, b and a die)
    rgba = pack rg ba ...     (1, rg and ba die)
    store32 rgba ...          (0, rgba dies)

That original ordering of the code needs 8 registers (perhaps with a
temporary 9th, but we'll ignore that here).  This CL will rewrite the
program to something more like this by recursively issuing inputs only
once needed:

    src = load32 ...       (1)
    sr  = extract src ...  (2)
    dst = load32 ...       (3)
    dr  = extract dst ...  (4)
     r  = add sr dr        (3, sr and dr die)

    sg  = extract src ...  (4)
    dg  = extract dst ...  (5)
     g  = add sg dg        (4, sg and dg die)

    rg  = pack r g         (3, r and g die)

    sb  = extract src ...  (4)
    db  = extract dst ...  (5)
     b  = add sb db        (4, sb and db die)

    sa  = extract src ...  (4, src dies)
    da  = extract dst ...  (4, dst dies)
     a  = add sa da        (3, sa and da die)

    ba  = pack b a         (2, b and a die)

    rgba = pack rg ba ...  (1, rg and ba die)
    store32 rgba  ...      (0)

That trims 3 registers off the example, just by reordering!
I've added the real version of this example to SkVMTest.cpp.
(Its 6th register comes from holding the 0xff byte mask used
by extract, in case you're curious).

I'll admit it's not exactly easy to work out how this reordering works
without a pen and paper or trial and error.  I've tried to make the
implementation preserve the original program's order as much as makes
sense (i.e. when order is an otherwise arbitrary choice) to keep it
somewhat sane to follow.

This reordering naturally skips dead code, so pour one out for ☠️ .
We lose our cute dead code emoji marker, but on the other hand all code
downstream of Builder::done() can assume every instruction is live.

Change-Id: Iceffcd10fd7465eae51a39ef8eec7a7189766ba2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249999
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-22 21:49:05 +00:00
Chris Dalton
766b4c9c21 Rename sampleVariablesSupport() to sampleMaskSupport()
We have only implemented support for the sample mask. Renaming the cap
to reflect that.

Change-Id: I10b5923c7464093187336016963a8ac51ebd54f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249932
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2019-10-22 21:08:55 +00:00
Chris Dalton
23716d42f7 Rename gl_SampleMask to sk_SampleMask
Change-Id: I3924c6f76edf310a984e4fd89478b00eeec69722
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249931
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-22 20:36:00 +00:00
Herb Derby
266598ae71 Reland "Use common fallback code for drawing an SkGlyphRun"
This is a reland of b09131f476

Original change's description:
> Use common fallback code for drawing an SkGlyphRun
> 
> This reorganizes the code so that Mask, SDFT and Paths
> share calling the fallback code. It also orders the
> different drawing methods from most frequent to least.
> 
> Change-Id: I1bbfc92765682c6a20d59da34734f127a6d017cb
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249558
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I6977a4d03831329a85c2a8563c15382d7b9dd387
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249979
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-22 20:30:57 +00:00
Michael Ludwig
915b779f9c Revert "Track device coordinate space as matrix"
This reverts commit b74d5548a4.

Reason for revert: see if this fixes the android roll

Original change's description:
> Track device coordinate space as matrix
> 
> This is a required step to be able to cleanly draw image filtered
> device layers with arbitrary matrices, instead of relying on
> SkMatrixImageFilter to apply the transformation.
> 
> Bug: skia:9545
> Change-Id: I8d84679a281538875cf4a1b73565294fb7f89c86
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249076
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

TBR=robertphillips@google.com,reed@google.com,michaelludwig@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: skia:9545
Change-Id: Ie374a7500cfbff35cb0782beb863086e118a005a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249986
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2019-10-22 18:09:36 +00:00
Brian Salomon
2638f3d44b rename atlassize->atlasdimensions
Change-Id: I0262ed26f0b3523302bbb4e94dfca94d120fc70c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249980
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-22 16:57:01 +00:00
Robert Phillips
61fc799759 Add creation-time POD memory pool for GrOps
This CL begins pulling some of the work forward into onPrePrepare.

Change-Id: If049e0662db51b465b8b82aafebeef2323bddfd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249802
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-22 16:35:41 +00:00
Michael Ludwig
6387dc19f6 Revert "Enable Programs (formerly GLPrograms) test for other APIs"
This reverts commit 598741667a.

Reason for revert: segfaults on Pixel bots

Original change's description:
> Enable Programs (formerly GLPrograms) test for other APIs
> 
> Bug: skia:9365
> Change-Id: I2eeac4e628425411b0a8f9ffa94ad61d58254b77
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249806
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

TBR=borenet@google.com,jvanverth@google.com,robertphillips@google.com

Change-Id: I286c637490bb8a21c0020a8935ce4c850b98f6b0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9365
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249978
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2019-10-22 15:39:49 +00:00
Brian Salomon
9f2b86c54d More SkISizification in GPU code.
Uses SkISize instead of separate width/height variables in many places.

No functional change.

Change-Id: If87b2c57e43d810f0820c4e3c9ef8e6b8ebd10ba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249886
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-22 15:04:07 +00:00
Herb Derby
3c5b68efb7 Revert "Use common fallback code for drawing an SkGlyphRun"
This reverts commit b09131f476.

Reason for revert: May break android

Original change's description:
> Use common fallback code for drawing an SkGlyphRun
> 
> This reorganizes the code so that Mask, SDFT and Paths
> share calling the fallback code. It also orders the
> different drawing methods from most frequent to least.
> 
> Change-Id: I1bbfc92765682c6a20d59da34734f127a6d017cb
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249558
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

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

Change-Id: Id56187503b0eb8a9bc666fbd5c8e0f07e1510c46
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249977
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-10-22 14:56:09 +00:00
Greg Daniel
901b98ec55 Add SurfaceProxyView support to Surface/TextureContext.
Bug: skia:9556
Change-Id: I8dfe0a053690acdfdc487cf478e20ea9595d0121
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249880
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-10-22 14:54:07 +00:00
Jim Van Verth
598741667a Enable Programs (formerly GLPrograms) test for other APIs
Bug: skia:9365
Change-Id: I2eeac4e628425411b0a8f9ffa94ad61d58254b77
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249806
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-22 14:36:09 +00:00
Greg Daniel
a83de58450 Add GrSurfaceProxyView and add support for it on GrRenderTargetContext.
Bug: skia:9556
Change-Id: I681c364cef6867feb0ae06a53cd7d264d7163e35
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249879
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-10-22 13:58:17 +00:00
Kevin Lubick
2be14d3215 [fuzzing] Add two fuzzers for SkDescriptor
One is an API fuzzer, the other is for deserializing.

Bug: skia:9548
Change-Id: I5923b8fb76f36ec09fca74d5ba82245a8ddb5938
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249776
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2019-10-21 20:48:15 +00:00
Hal Canary
c056e169ea SkPDF: simplify Producer metadata logic
Bug: skia:9552
Change-Id: Ifa199048e6d38ccb28f055b77128971411203188
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249800
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-10-21 20:01:47 +00:00
Mike Klein
ff011900e3 remove SkBitmapProcState::fInvKy
It's only used in asserts, and it's completely redundant with other
asserts based on fInvMatrix.

Change-Id: I150dc5b948e5703fff75bf857cabb173428b081f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249818
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-21 18:32:29 +00:00
Stephen White
c797483a90 Dawn: fix rendering to mipmapped textures.
Use a texture view with a mipLevelCount of 1 when using a texture
as an attachment.
Dawn validation will fail if the view has more than one mip.

Change-Id: I6a3594dade9f65fa8e713d433797414c6ba8ecec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249423
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2019-10-21 18:22:08 +00:00
Mike Klein
d4db6dad1d remove SkBitmapProcState::fInvType
It's totally redundant with fInvMatrix.getType(),
and mostly used in asserts, where the SkMatrix
methods are way easier to read than type masks.

Change-Id: I970f4ebbc1aa87a287ce965add827cdc6a3be5ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249816
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-10-21 18:11:38 +00:00
Mike Klein
7333ed23d3 remove unused SkBitmapProcState fields
None of these are used.

Change-Id: Ia8c0eb88db747da55fd03ff1632820a521ed1842
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249817
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-21 17:59:59 +00:00
Jim Van Verth
549666c1b5 Metal: adjust framebuffer size by contentsScale.
If the layer has a scale factor we need to allocate a larger framebuffer.
Otherwise we'll end up drawing to a fraction of the window.

Bug: skia:9554
Change-Id: I93d1e0dc7172ed10bb99ce45524561ad841f0101
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249803
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-21 16:41:03 +00:00
Herb Derby
b09131f476 Use common fallback code for drawing an SkGlyphRun
This reorganizes the code so that Mask, SDFT and Paths
share calling the fallback code. It also orders the
different drawing methods from most frequent to least.

Change-Id: I1bbfc92765682c6a20d59da34734f127a6d017cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249558
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-10-21 16:06:53 +00:00
Stephen White
f0c92a0408 Dawn: don't pretend to support 565, 4444 or Gray_8 pixel configs.
Mark them as untexturable, and they'll be converted at a higher level.
Use SkRectMemcpy() for GrDawnTexture::upload().
This also fixes an issue with large texture uploads.

Change-Id: I5b7041cde324f204074193398ca9f8b5a5dbd744
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249417
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2019-10-21 14:42:31 +00:00