Commit Graph

46889 Commits

Author SHA1 Message Date
Robert Phillips
6c59fe4110 Add a GrSimpleMeshDrawOpHelper CreatePipeline method that doesn't require a GrFlushState
This CL also adds helper functions (i.e., createPipeline and createPipelineWithStencil) to better encapsulate pipeline creation.

This is a first step towards making GrSimpleMeshDrawOpHelper surface its GrProgramInfos.

Bug: skia:9455
Change-Id: Ic6cc7a01383e42436305358a9b193958d862786c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273556
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-02-27 21:15:41 +00:00
Brian Salomon
3aef301cac Reset GrGLGpu::fBoundDrawFramebuffer on resetContext
Change-Id: I873fc46cf68eaa49cf74270f8e0ac9282a19542e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273804
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-02-27 21:11:46 +00:00
recipe-roller
5827438af5 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (depot_tools, recipe_engine) into this repository.

depot_tools:
  https://crrev.com/a4f9aa037585a99a5c5e1b029991c040f5a29e7c (iannucci@chromium.org)
    Refactor OWNERS for LUCI-related tools.
  https://crrev.com/9468eba70dbda8f1c6992c6e64772b0a44153cbe (ehmaldonado@google.com)
    git-cl: Add tests for git-cl presubmit
  https://crrev.com/8c5cdf1812e4642b53ee660c767e8a71d88ea6ab (sokcevic@google.com)
    Print content of description backup on exit
recipe_engine:
  https://crrev.com/aed02b3aa61d3d56bfe5616667ab09cafc08fb4a (iannucci@chromium.org)
    [test] Fix location of --stop flag.

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iad429299e5d0c0badeb37c085317fc58ca3c5cd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273806
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2020-02-27 21:10:36 +00:00
Nathaniel Nifong
f106bc27a4 Add SK_NO_FONTS check around font uses in skottie
Prerequisite to cl/297131877

Change-Id: Icd58c69fd53b703e43d67f4a1a9bafe096943edc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273765
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-02-27 20:50:16 +00:00
Stephen White
dbb0a25d1f Skia-Dawn: update for recent GrRenderPass::onDraw* changes.
Change-Id: I2b1a07dccb5e58dbe2488acf1b87281215b84f98
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273799
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-02-27 20:20:47 +00:00
Brian Salomon
510eb15cbd Fix NVPR with explicitly sampled FPs.
Use uniforms rather than fixed function computed varyings to implement
coord transforms for FPs that are sampled explicitly.

Change-Id: I43be3f9649550e36dbb4d1f72090a497dfeb0d31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273798
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-02-27 20:05:36 +00:00
Mike Klein
4c690b442f add metadata to calculated bounds
For Flutter, mark each bounds rect as a draw or not.

saveLayer() is the trickiest part: it doesn't draw, but its paired
restore() does, while a restore() paired with save() doesn't.

Change-Id: I5f0dc61ad5543265c5ea2bf41b236f57915847b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273501
Reviewed-by: Emmanuel Garcia <egarciad@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-02-27 19:12:35 +00:00
Mike Klein
11efa18eca impl load32
This means we can write a memset32 (load32 -> store32),
tested explicitly with the new unit test.

Slightly changes to the type protocol,
  - load and splat now generate scalars or vectors
    depending on how `scalar` is set
  - store should no longer have to pay attention to `scalar`;
    it's input values will already be the right size

Clean up some of the type declarations where we don't
actually need the subclass types, holding llvm::Type* instead.
This makes using ?: easier.

Change-Id: I2f98701ebdeead0513d355b2666b024794b90193
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273781
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-02-27 18:50:05 +00:00
Brian Osman
15c98cbfef Revert "Add most important intrinsics to the interpreter"
This reverts commit 838007f1ff.

Reason for revert: Significant RAM regression detected by Chrome.

Original change's description:
> Add most important intrinsics to the interpreter
> 
> Started with component-wise comparison and mix builtins.
> 
> Implemented min, max, clamp, and saturate using those.
> Moved dot to SkSL as well. Because we now have builtins
> implemented using other (intrinsic) builtins, I had to
> split the include file in two - this lets the intrinsics
> be marked so we can call them from the second phase of
> builtins that are written in SkSL.
> 
> Given that the comparisons and kSelect are now used by
> these, I added vector versions of those instructions.
> I also switched the kSelect args to match GLSL mix(),
> mostly so the logic of mapping intrinsic arguments to
> instruction register args remains simple.
> 
> Inspired by the (never-landed):
> https://skia-review.googlesource.com/c/skia/+/230739
> 
> Change-Id: Iecb0a7e8dc633625ff2cada7fb962bf2137fa881
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272516
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

TBR=bsalomon@google.com,brianosman@google.com,ethannicholas@google.com,reed@google.com

Change-Id: I931a0ccc254b55339c9b077543a0daaf28146b19
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273800
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-02-27 18:37:15 +00:00
Mike Klein
00666b5739 initialize fEE = nullptr
And rearrange a little so that it's more similar
to the other JIT state we track, so this sort
of bug is less likely in the future.

Change-Id: I64ddb791490efdbbcecb53cce823dda5c8d7c68b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273779
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-02-27 18:33:25 +00:00
Eric Boren
7fb77c8165 [recipes] Move app_name into flavor.setup()
This allows us to move iOS-specific stuff from individual recipes into
the flavor module.

First in a long series of CLs to clean up recipes and move to task drivers.

Change-Id: Iff01610f76c71920639328ead5209e0cd5d93f31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273762
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
2020-02-27 18:06:15 +00:00
Weston Tracey
8430496536 Revert "Update Go Deps"
This reverts commit 289ecf8b9b.

Reason for revert: The addition made in the autogenerated Go Deps CL was superfluous was by the time I got around to merging and submitting it, now it's breaking CheckGeneratedFiles.
Original change's description:
> Update Go Deps
>
> Change-Id: I4f78bfcbd56e0ba1b318f06c281a9503ff378ed5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272895
> Commit-Queue: Weston Tracey <westont@google.com>
> Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>

TBR=skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com,westont@google.com

Change-Id: Iccda32bc10bf19610260eec83816ebe6e69c8ae7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273767
Commit-Queue: Weston Tracey <westont@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
2020-02-27 18:05:16 +00:00
Mike Klein
7b3999edcb convert to phi nodes
Convert our n+args stack homes to phi nodes,
essentially performing mem2reg ourselves,
eliminating the need for it at runtime.

Also, use b.getInt64(k) to create integer constants.

Also, print verifyModule() errors to stdout (instead of nowhere).

Also, update unit test to make sure we don't run off the end.

Bitcode still looks good:
    define void @skvm-jit-211960346(i64, i8*) {
    enter:
      br label %testK

    testK:                                            ; preds = %loopK, %enter
      %2 = phi i64 [ %0, %enter ], [ %6, %loopK ]
      %3 = phi i8* [ %1, %enter ], [ %7, %loopK ]
      %4 = icmp uge i64 %2, 16
      br i1 %4, label %loopK, label %test1

    loopK:                                            ; preds = %testK
      %5 = bitcast i8* %3 to <16 x i32>*
      store <16 x i32> <i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42>, <16 x i32>* %5, align 1
      %6 = sub i64 %2, 16
      %7 = getelementptr i8, i8* %3, i64 64
      br label %testK

    test1:                                            ; preds = %loop1, %testK
      %8 = phi i64 [ %2, %testK ], [ %12, %loop1 ]
      %9 = phi i8* [ %3, %testK ], [ %13, %loop1 ]
      %10 = icmp uge i64 %8, 1
      br i1 %10, label %loop1, label %leave

    loop1:                                            ; preds = %test1
      %11 = bitcast i8* %9 to i32*
      store i32 42, i32* %11, align 1
      %12 = sub i64 %8, 1
      %13 = getelementptr i8, i8* %9, i64 4
      br label %test1

    leave:                                            ; preds = %test1
      ret void
    }

and the final assembly looks the same:

    0x10a3f5000: movabsq $0x10a3f6000, %rax        ; imm = 0x10A3F6000
    0x10a3f500a: vbroadcastss (%rax), %zmm0
    0x10a3f5010: cmpq   $0xf, %rdi
    0x10a3f5014: jbe    0x10a3f504d
    0x10a3f5016: nopw   %cs:(%rax,%rax)
    0x10a3f5020: vmovups %zmm0, (%rsi)
    0x10a3f5026: addq   $-0x10, %rdi
    0x10a3f502a: addq   $0x40, %rsi
    0x10a3f502e: cmpq   $0xf, %rdi
    0x10a3f5032: ja     0x10a3f5020
    0x10a3f5034: jmp    0x10a3f504d
    0x10a3f5036: nopw   %cs:(%rax,%rax)
    0x10a3f5040: movl   $0x2a, (%rsi)
    0x10a3f5046: decq   %rdi
    0x10a3f5049: addq   $0x4, %rsi
    0x10a3f504d: testq  %rdi, %rdi
    0x10a3f5050: jne    0x10a3f5040
    0x10a3f5052: vzeroupper
    0x10a3f5055: retq

Change-Id: I12d11c7d5786c4c3df28a49bb3044be10f0770e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273753
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-02-27 17:04:05 +00:00
Michael Ludwig
fb3f302bdf Reland "Track device coordinate space as matrix"
This reverts commit 915b779f9c.

Reason for revert: finally coming back to this, figure out what's wrong on Android

Original change's description:
> 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>

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: If31a9be86cb340a0874533c044c19b6787d5f176
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272340
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-02-27 16:32:45 +00:00
Greg Daniel
93afe641d0 Blacklist hanging test on vulkan pixel3 perf bot.
Bug: skia:9972
Change-Id: Id882d72862cb2edabed03ef867358a6ce0c41342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273761
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-02-27 16:12:35 +00:00
Brian Salomon
dffe2ab3e0 Add assert that GrTextureMaker never adds MIP maps
Change-Id: If718decf8867cd66d8394a4f7fc646cf3f0950b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273609
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-02-27 15:58:25 +00:00
Weston Tracey
289ecf8b9b Update Go Deps
Change-Id: I4f78bfcbd56e0ba1b318f06c281a9503ff378ed5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272895
Commit-Queue: Weston Tracey <westont@google.com>
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-02-27 14:16:45 +00:00
Brian Salomon
6066b754fe Remove cheap/any texture distinction from SkImageGenerator.
With the removal of rescaling of NPOT textures this no longer matters.

Change-Id: I313e895407c3a2c616e6113a5bde75dc6a167e7c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273519
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
2020-02-27 13:58:17 +00:00
Mike Klein
66adad7d37 turn on mem2reg, set mcpu
I've also added in a disabled path to do quasi -O1 / -Os
passes, but mem2reg is really all we need, and I think we
can eliminate the need for even that.

Codegen looks great now, e.g.

(lldb) dis -s fJITEntry -c 40
    0x10a48c000: movabsq $0x10a48d000, %rax        ; imm = 0x10A48D000
    0x10a48c00a: vbroadcastss (%rax), %zmm0
    0x10a48c010: cmpq   $0xf, %rdi
    0x10a48c014: jbe    0x10a48c04d
    0x10a48c016: nopw   %cs:(%rax,%rax)
    0x10a48c020: vmovups %zmm0, (%rsi)
    0x10a48c026: addq   $-0x10, %rdi
    0x10a48c02a: addq   $0x40, %rsi
    0x10a48c02e: cmpq   $0xf, %rdi
    0x10a48c032: ja     0x10a48c020
    0x10a48c034: jmp    0x10a48c04d
    0x10a48c036: nopw   %cs:(%rax,%rax)
    0x10a48c040: movl   $0x2a, (%rsi)
    0x10a48c046: decq   %rdi
    0x10a48c049: addq   $0x4, %rsi
    0x10a48c04d: testq  %rdi, %rdi
    0x10a48c050: jne    0x10a48c040
    0x10a48c052: vzeroupper
    0x10a48c055: retq

Change-Id: Ief5d12548d5b1a683060b2b5d207022d673fe761
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273606
Reviewed-by: Herb Derby <herb@google.com>
2020-02-27 13:01:37 +00:00
Mike Klein
b614931bfa basic JIT support?
Codegen is unimpressive so far:

(lldb) dis -s fJITEntry -c 40
    0x10a4dd000: movq   %rdi, -0x8(%rsp)
    0x10a4dd005: movq   %rsi, -0x10(%rsp)
    0x10a4dd00a: movabsq $0x10a4eb000, %rax        ; imm = 0x10A4EB000
    0x10a4dd014: movaps (%rax), %xmm0
    0x10a4dd017: cmpq   $0x7, -0x8(%rsp)
    0x10a4dd01d: jbe    0x10a4dd066
    0x10a4dd01f: nop
    0x10a4dd020: movq   -0x10(%rsp), %rax
    0x10a4dd025: movups %xmm0, 0x10(%rax)
    0x10a4dd029: movups %xmm0, (%rax)
    0x10a4dd02c: addq   $-0x8, -0x8(%rsp)
    0x10a4dd032: addq   $0x20, -0x10(%rsp)
    0x10a4dd038: cmpq   $0x7, -0x8(%rsp)
    0x10a4dd03e: ja     0x10a4dd020
    0x10a4dd040: jmp    0x10a4dd066
    0x10a4dd042: nop
    0x10a4dd043: nop
    0x10a4dd044: nop
    0x10a4dd045: nop
    0x10a4dd046: nop
    0x10a4dd047: nop
    0x10a4dd048: nop
    0x10a4dd049: nop
    0x10a4dd04a: nop
    0x10a4dd04b: nop
    0x10a4dd04c: nop
    0x10a4dd04d: nop
    0x10a4dd04e: nop
    0x10a4dd04f: nop
    0x10a4dd050: movq   -0x10(%rsp), %rax
    0x10a4dd055: movl   $0x2a, (%rax)
    0x10a4dd05b: decq   -0x8(%rsp)
    0x10a4dd060: addq   $0x4, -0x10(%rsp)
    0x10a4dd066: cmpq   $0x0, -0x8(%rsp)
    0x10a4dd06c: jne    0x10a4dd050
    0x10a4dd06e: retq
    ...

Change-Id: I97576e7b6e0696f248853e55de4f045f2b5ce77c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273518
Reviewed-by: Herb Derby <herb@google.com>
2020-02-27 13:01:37 +00:00
Mike Klein
525fd36dd3 little steps forward
- impl splat, store32, which lets us handle the conceptually simplest
     program, a 32-bit memset.

   - dump bitcode to /tmp on success

Kind of starting to look good!

$ ninja -C out dm && out/dm -m SkVM_Pointless
$ opt --O1 /tmp/skvm-jit-211960346.bc | llvm-dis

    ; Function Attrs: nofree norecurse nounwind writeonly
    define void @skvm-jit-211960346(i64, i8* nocapture) local_unnamed_addr #0 {
    enter:
      %2 = icmp ugt i64 %0, 7
      br i1 %2, label %loopK, label %test1.preheader

    test1.preheader:                                  ; preds = %loopK, %enter
      %.07.lcssa = phi i64 [ %0, %enter ], [ %5, %loopK ]
      %.0.lcssa = phi i8* [ %1, %enter ], [ %6, %loopK ]
      %3 = icmp eq i64 %.07.lcssa, 0
      br i1 %3, label %leave, label %loop1

    loopK:                                            ; preds = %enter, %loopK
      %.012 = phi i8* [ %6, %loopK ], [ %1, %enter ]
      %.0711 = phi i64 [ %5, %loopK ], [ %0, %enter ]
      %4 = bitcast i8* %.012 to <8 x i32>*
      store <8 x i32> <i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42>, <8 x i32>* %4, align 1
      %5 = add i64 %.0711, -8
      %6 = getelementptr i8, i8* %.012, i64 32
      %7 = icmp ugt i64 %5, 7
      br i1 %7, label %loopK, label %test1.preheader

    loop1:                                            ; preds = %test1.preheader, %loop1
      %.110 = phi i8* [ %10, %loop1 ], [ %.0.lcssa, %test1.preheader ]
      %.189 = phi i64 [ %9, %loop1 ], [ %.07.lcssa, %test1.preheader ]
      %8 = bitcast i8* %.110 to i32*
      store i32 42, i32* %8, align 1
      %9 = add i64 %.189, -1
      %10 = getelementptr i8, i8* %.110, i64 4
      %11 = icmp eq i64 %9, 0
      br i1 %11, label %leave, label %loop1

    leave:                                            ; preds = %loop1, %test1.preheader
      ret void
    }

    attributes #0 = { nofree norecurse nounwind writeonly }

Change-Id: I00953c1113739a9ee094cb6cb3c99f1b7f8de9bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273509
Reviewed-by: Herb Derby <herb@google.com>
2020-02-27 13:01:37 +00:00
recipe-roller
1412b3e47c Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (depot_tools) into this repository.

depot_tools:
  https://crrev.com/29d5cf85ac28d9ef59228e8805ab7b1078baa667 (gregorynisbet@google.com)
    fix git cl presubmit

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I88839d3c6fb1ae274400f8dd384c5b9e8c4ddb92
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273716
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2020-02-27 08:51:50 +00:00
skia-recreate-skps
3caf4532c4 Update Go Deps
Change-Id: If3fa9c15bf00afe6cd5520c347b5a726f72248d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273634
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-02-27 05:25:19 +00:00
skia-autoroll
96f6b39500 Roll ../src 04383ff221c4..b53f5caacd25 (392 commits)
04383ff221..b53f5caacd


Created with:
  gclient setdep -r ../src@b53f5caacd

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 jlavrova@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/+/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
Bug: None
Tbr: jlavrova@google.com
Change-Id: Iee9b9e680af014f30d7d3570aa276cf2fdcefafe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273629
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-27 04:46:39 +00:00
skia-autoroll
e763c61a2c Roll third_party/externals/swiftshader da659b374113..4d40271e3f09 (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/da659b374113..4d40271e3f09

git log da659b374113..4d40271e3f09 --date=short --first-parent --format='%ad %ae %s'
2020-02-26 amaiorano@google.com Subzero: add support for large stacks on Windows
2020-02-26 capn@google.com Build with -Bsymbolic to prevent symbol preemption

Created with:
  gclient setdep -r third_party/externals/swiftshader@4d40271e3f09

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 jlavrova@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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: jlavrova@google.com
Change-Id: I1bfba7e35c529bd617408dd91635b6e2fda079df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273627
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-27 04:32:09 +00:00
recipe-roller
913a2ec175 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (recipe_engine) into this repository.

recipe_engine:
  https://crrev.com/a36bdfd1c28f088e1c39736babb987e71284d646 (yiwzhang@google.com)
    [warning] Support recipe warning registration

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ib4aabdc682910ea9f7243c2f1ac0eba621fa2d71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273617
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2020-02-27 00:09:46 +00:00
Greg Daniel
31a7b072dd Add stubbed out GrD3DOpsRenderPass class.
Change-Id: Ie50b15323df0a71c8d4276e3bc603061e469824d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273465
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-02-26 21:04:16 +00:00
Brian Osman
838007f1ff Add most important intrinsics to the interpreter
Started with component-wise comparison and mix builtins.

Implemented min, max, clamp, and saturate using those.
Moved dot to SkSL as well. Because we now have builtins
implemented using other (intrinsic) builtins, I had to
split the include file in two - this lets the intrinsics
be marked so we can call them from the second phase of
builtins that are written in SkSL.

Given that the comparisons and kSelect are now used by
these, I added vector versions of those instructions.
I also switched the kSelect args to match GLSL mix(),
mostly so the logic of mapping intrinsic arguments to
instruction register args remains simple.

Inspired by the (never-landed):
https://skia-review.googlesource.com/c/skia/+/230739

Change-Id: Iecb0a7e8dc633625ff2cada7fb962bf2137fa881
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272516
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-02-26 20:27:36 +00:00
Chris Dalton
33db9fc60e Remove GrMesh::SendToGpuImpl
Replaces GrMesh::SendToGpuImpl with direct draw(), drawIndexed(),
drawInstanced(), and drawIndexedInstanced() calls on GrOpsRenderPass.
For now these calls take the index/instance/vertex buffers, but we
will soon switch to binding those in a separate call.

Change-Id: I55d225b5695d88ecc661916c2aeb3f31d21e5585
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273179
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-02-26 20:12:17 +00:00
Brian Salomon
6422722cba Reland "Remove GrDeviceSpaceTextureDecalFragmentProcessor."
This is a reland of af5f9f008d

This was reverted due to Metal GMs failing. That is a bug in Metal where
pipeline creation fails with "internal error". Reporting to Apple, filing
Skia bug, and moving on.

Original change's description:
> Remove GrDeviceSpaceTextureDecalFragmentProcessor.
>
> It was used to sample clip masks using device coords.
>
> Replace with a more generic GrDeviceSpaceEffect that simply calls a
> child FP with sk_FragCoord.
>
> Also fix issue in GrQuadPerEdgeAA GP. It wouldn't setup coord transforms
> at all if they are all applied in the FS (explicit coords). Moreover,
> the GrGLSLGeometryProcessor::emitTransforms() helper required a valid VS
> var for local coords even when all FPs use explicit coords and wouldn't
> use a local coords var.
>
> Make CPP SkSL code gen for clone copy the explicit coord status of
> children.
>
> Change-Id: Ib8bb36028354405c8012f6e91e9eb46db75d16a6
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/271658
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

Change-Id: Ia4530e6799019cd92863fe983a2d3c71df6f0620
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273511
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-02-26 18:57:36 +00:00
Jim Van Verth
8ec13300cd Fill in more D3DCaps
Bug: skia:9935
Change-Id: Id8b851afdd97f8405dbb405e3f142f86dbe1de31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273003
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-02-26 18:26:45 +00:00
Stephen White
6e8ceeea33 Dawn backend: update to accommodate recent Skia changes.
"Lift calls for setting dynamic state to Ganesh level" (https://skia-review.googlesource.com/c/skia/+/271976)
"Update nanobench and skpbench to use flush API for gpu syncing" (https://skia-review.googlesource.com/c/skia/+/272456)

Change-Id: I3026a5d6649ecd45b421c89e80cf065ce22f156e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273336
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-02-26 17:15:36 +00:00
Robert Phillips
366176b822 Hide GrFillRRectOp's implementation
This brings this op into closer correspondence with the other ops.

Change-Id: Idf4f68dcad5492d9ae66c34a9c8a86ff925de26e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273492
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-02-26 17:10:45 +00:00
recipe-roller
9691d6b9ad Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (depot_tools) into this repository.

depot_tools:
  https://crrev.com/2a9042f8a77b5fd3527339853c6fc1802463dc5d (yekuang@google.com)
    Roll out new goma client binary VERSION=192
  https://crrev.com/b847c567e717cd861b8f1d778ef1a402af03a99a (vapier@chromium.org)
    Reland "cros: switch CrOS programs to python3"

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I4afb60b90c1876b6b78f6bf61d4400f3c3a33366
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273462
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2020-02-26 17:10:15 +00:00
Robert Phillips
19f466d399 Adds gpu stats for program cache
With the addition of the DDL program pre-compilation we need to know how it is working.

This CL also fixes some threading bugs.

Bug: skia:9455
Change-Id: I20da58a7f1b19685687fae1d159d4e0db8a4964d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273001
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-02-26 16:11:56 +00:00
Mike Klein
a121fb6860 renable SkM44.h checks
Change-Id: Id133cb4c97931fb6a8c7d1d6d6b0bb09cbd47d85
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273486
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-02-26 14:54:55 +00:00
Brian Osman
dc2a97774b Interpreter: Fix intrinsics when called with vector types
Change-Id: I0296ff5a68b934f6bc7152a66f57ef045fc94daf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272721
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-02-26 14:23:45 +00:00
Mike Reed
7f5e3c7e43 Reland "Skip rewriting headers that reference SkM44.h until we can remove the private copy of it"
This reverts commit 1eff9dce5b.

Reason for revert: breaks housekeeper -- don't know why

Original change's description:
> Revert "Skip rewriting headers that reference SkM44.h until we can remove the private copy of it"
> 
> This reverts commit 09a73000ea.
> 
> include/private/SkM44.h is gone, so we can undo this hack
> 
> Change-Id: I770063c8468ad7f4c51fa41ca407e4655c90c15f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273457
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=reed@google.com

Change-Id: I9ce1d7ca55f5464b3ece16cd0d7060e4d402960e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273409
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-02-26 06:03:14 +00:00
Mike Reed
1eff9dce5b Revert "Skip rewriting headers that reference SkM44.h until we can remove the private copy of it"
This reverts commit 09a73000ea.

include/private/SkM44.h is gone, so we can undo this hack

Change-Id: I770063c8468ad7f4c51fa41ca407e4655c90c15f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273457
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-02-26 05:36:56 +00:00
skia-recreate-skps
030a777199 Update Go Deps
Change-Id: I9424d88adf0fe4c0494fac26782403784795cd91
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273404
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-02-26 05:25:05 +00:00
Mike Reed
8989363322 rm unneeded header, see include/public
Change-Id: Ica26f683a9fd0ef7a624aa081678b619b70c9af8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273400
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-02-26 04:53:33 +00:00
skia-autoroll
282f60a273 Roll ../src 2ea720658064..04383ff221c4 (360 commits)
2ea7206580..04383ff221


Created with:
  gclient setdep -r ../src@04383ff221

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 jlavrova@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/+/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
Bug: None
Tbr: jlavrova@google.com
Change-Id: I7207ebeb90daf36ad0c3a2d63a48fa10678f0966
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273399
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-26 04:35:14 +00:00
skia-autoroll
96d61942e6 Roll third_party/externals/swiftshader e162b023f539..da659b374113 (4 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/e162b023f539..da659b374113

git log e162b023f539..da659b374113 --date=short --first-parent --format='%ad %ae %s'
2020-02-25 capn@google.com Fix ANGLE standalone build
2020-02-25 capn@google.com Fix Android build after SPIRV-Tools update
2020-02-25 srisser@google.com Log instead of warn of unsupported extensions
2020-02-25 swiftshader.regress@gmail.com Regres: Update test lists @ e162b023

Created with:
  gclient setdep -r third_party/externals/swiftshader@da659b374113

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 jlavrova@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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: jlavrova@google.com
Change-Id: I3b218f16c64ba935987ef0504b66849178ba64cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273416
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-26 04:33:05 +00:00
recipe-roller
f0a13d04c2 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (depot_tools) into this repository.

depot_tools:
  https://crrev.com/3b44ac67c9fd59379e9b1e1413ec5419b613c513 (ehmaldonado@google.com)
    Reland "gerrit-util: Fix GCE check from behind proxy."
  https://crrev.com/227d5108573318ac6510f17d80c167d94ceae3e1 (ehmaldonado@google.com)
    git-cl: Invoke presubmit checks via subprocess execution instead of via module.

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I151d89546aa060198e5a0427bb25789eecb5437f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273376
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2020-02-26 00:29:34 +00:00
recipe-roller
7b96793ccc Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (depot_tools) into this repository.

depot_tools:
  https://crrev.com/63832e9056ec06edc6e8fe35a8a216ac8e6e52ab (iannucci@chromium.org)
    [vpython] Update depot_tools vpython to match fleet.
  https://crrev.com/ab9cc2c149a03c61209f69281a2e88c8e26b416f (ehmaldonado@google.com)
    my_activity: Add some tests and fix some bugs

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I1460a8154d03f632f73f9ec7326cdbc6b6262e30
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273356
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2020-02-25 23:57:44 +00:00
Julia Lavrova
9b906ce536 Revert "remove private copy of SkM44.h"
This reverts commit f8ef81b35e.

Reason for revert: Build broken

Original change's description:
> remove private copy of SkM44.h
> 
> Change-Id: Ifd47b929bafd40d190722366a0c1e2b856220ab3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272836
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=fmalita@chromium.org,reed@google.com

Change-Id: I0da4ad43d5eaf5813ec489bc9117d4b8fc2b930e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273330
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-02-25 23:00:54 +00:00
Mike Klein
f2930f48ad skvm llvm skeleton
Just the basics of getting existing basic structure in place.
Hoping to flesh this out over the next week or so.

Change-Id: Iba3a3023cc779ffa5fa6f79ebedd53499c076442
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273323
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-02-25 22:54:05 +00:00
Brian Salomon
adc9bbb2aa Remove GrTextureProducer::MakeMipMappedCopy
No color type fallback

Change-Id: I0429491cca1088e877ba2da2ff71ef2219ac9ec7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272521
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-02-25 22:17:28 +00:00
Brian Osman
0941b6e91b Use SkTPin in magnifier filter to avoid integer overflow with NaN
Bug: chromium:1054887
Change-Id: I792a416c7071da75460016574f9aef8832f47e9d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273319
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-02-25 21:48:19 +00:00
Brian Salomon
d8575452eb Add GrContextOption for GL error checking, shader, and program success.
Small behavior change: will not check for shader success and program
linking success over the command buffer in a debug build.

Also fail gracefully if stencil renderbuffer allocation fails.

Bug: skia:9938
Bug: chromium:1040186
Change-Id: I623f09d306261d28070078268f6242f92d65fd5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273276
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-02-25 21:00:19 +00:00