Previous experiment showed disabling integer support in GrShaderCaps
improved ANGLE D3D11 ES3 perf.
Trying to determine if perf hit on ANGLE D3D11 ES3 is from
integer vertex attribs and unpack operations in VS or from
using an int varying to communicate the index to the FS.
Will revert this after observing trend on perf.skia.org.
Change-Id: I40f4c0397b1377922c3018be864c1b7048bcfba9
Bug: skia:10644
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315866
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: oss-fuzz:24108
Change-Id: I3af9d5dcdd2fbda39abf24c7e55f10f6d8aa916c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315859
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This will be especially important once more aggressive inlining is
enabled, as the optimizer will need to run dead-function elimination
passes after inlining.
Change-Id: I8ccd5d6a9a041ee2b0a3ec5ef305e5df875b6947
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315738
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Inlining shift=8 is trivial for any compiler.
This eliminates the need to unit test the two functions are the same.
Change-Id: Icd181ff11eab73fba26755a9fbecd57260c38bbf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315887
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Also remove fInverseW uses that are fixed by it now.
7778792aec..bdbef7b1f3
$ git log 7778792ae..bdbef7b1f --date=short --no-merges --format='%ad %ae %s'
2020-09-04 cwallez Fix -Wduplicate-enum and -Wrange-for-analysis.
2020-09-04 post Roll glslang/SPIRV-Tools deps.
2020-09-04 post Handle OpUndef %void.
2020-08-27 cdavis MSL: Support layered input attachments.
2020-09-02 post MSL: Fix OpCompositeInsert and OpVectorInsertDynamic.
2020-08-23 cdavis MSL: Don't set the layer for multiview if the device doesn't support it.
2020-08-07 cdavis MSL: Fix multiview view index calculation with a non-zero base instance.
2020-08-24 post Run format_all.sh.
2020-08-24 post Work around annoying warning on GCC 10.2.
2020-08-21 post Overhaul how we deal with reserved identifiers.
2020-08-20 post HLSL: Fix FragCoord.w.
2020-08-20 post HLSL: Deal with partially filled 16-byte word in cbuffers.
2020-08-20 post HLSL: Fix bug in is_packing_standard for cbuffer.
2020-08-13 lehoangq Fix#1445: MSL: Enclose args when convert distance(a,b) to abs(a-b)
2020-08-03 cdavis MSL: Fix handling of matrices and structs in the output control point array.
2020-07-29 post Add some test cases for complex type aliasing scenario.
2020-07-29 post Ensure that we use primary alias type when emitting flattened members.
2020-07-29 post GLSL: Be more aggressive about using type_alias.
2020-07-29 post Only rewrite type aliases for the base type.
Created with:
roll-dep third_party/externals/spirv-cross
Change-Id: I24a6a12cbb08b1c2915de66cf707571b66aefe1c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315776
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Fixes cases where symbol lookup inside an enum would be allowed to
resolve things from the outer scope.
Bug: oss-fuzz:24674
Change-Id: I841224a7449d2a4f97e41a9d2edd4631ba888a7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315602
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Part of the canReuse calculation is now handled by the SubRuns. This
allows a more precise calculation about the circumstances of reuse.
The change also spotlights, that the original whole blob canReuse
function my not have been very efficient. These inefficiencies are
maintained for now.
Change-Id: I7f8e725f578222e5c033d6ff8aa59dd3c5115e38
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315319
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This is a reland of 0ef049177f
Original change's description:
> Use Microsoft's ComPtr to wrap D3D12 objects.
>
> Change-Id: I4bd173428a2b65f0bc1994fb794ef9d4d68d5ba0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314957
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: Id0199db4061c67ed53da35e74dc31a004744be95
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315655
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Encountered while debugging new GrClipStack.
Basically, with the old checks, if aCorner == bCorner but A was a rect,
we'd end up rejecting it as not a viable intersection (failing the
testCorner == aCorner checks), but wouldn't fall through to the
testCorner == bCorner checks.
Instead of splitting the if-elseif-else into separate ifs, I chose to
add an additional if case that lets the ellipse containment check match
a few more cases when we know the two ellipses share an anchor point.
Change-Id: I6c8bc9a30d19a56f25da7d9be7832ff72dde1765
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315636
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This reverts commit 0ef049177f.
Reason for revert: Looks like this is introducing a memory leak.
Original change's description:
> Use Microsoft's ComPtr to wrap D3D12 objects.
>
> Change-Id: I4bd173428a2b65f0bc1994fb794ef9d4d68d5ba0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314957
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com
Change-Id: Ib0333c00a7f8c3650bd2b077cbdfb6926c5870f4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315653
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Bug: skia:10409
Change-Id: I45a04360fb2c13e0b03041e91857f13d8d7bee3f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315642
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Prevent signed integer overflow, and return early once an error is
detected (so that the invariants of the logic are guaranteed on
subsequent iterations).
Also: Make the generator actually return false when there are errors.
Bug: oss-fuzz:23178
Change-Id: Ic8777f144f747a9b74e39636c4ee175170cbe497
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315649
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Can't really cache (x, y) in the picture - it's coming from the paint
Change-Id: I4ff9abe19dcd5394b40af427dfab03e8c38fba0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315648
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Change-Id: I4bd173428a2b65f0bc1994fb794ef9d4d68d5ba0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314957
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Speculative fix for Chrome crashes.
Implemented by separating out LOD and level caps.
Also don't allow GrContextOptions to enable manual mip mapping
if level control is not available.
Change-Id: Ibdf647792e1e018efeffa0af34ceb59e751e6749
Bug: chromium:1123874
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315638
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: Ic35abc701e329d929c898dc431dd3dbd89262ff4
Bug: skia:10704
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315637
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Moved the actual field into the base class, changed all of the enums
into non-overlapping enum classes, and finally renamed Type::Kind to
fix the ambiguity there.
Change-Id: I4e6c24d2dbbc7b1d12b7b7bf12e77c651eea7ed9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315318
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
These changes don't seem to add much value in isolation, but they will
smooth our transition to inline analysis during optimization.
- The passed-in FunctionCall no longer needs to be a unique_ptr.
- The fInlinedBody is guaranteed to be a Block now. (This change caused
a slight ripple effect in unit test output; in some cases it creates
an additional newline in the final code. This is harmless.)
- has_early_return is checked earlier, before we've made any mutations
to the FunctionCall. This should work around errors that can occur if
a function is trying to inline itself. (Ideally we wouldn't be trying
to do this at all, but either way, we shouldn't crash.)
Change-Id: I0a565d477f680c0ba061df2686a36e42aa75de95
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315599
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
With SPVC deprecated, Dawn contains its own build files for SPIRV-Cross
so the path to the SPIRV-Cross repo needed to be fixed.
Change-Id: If8765d74f3373e3e4a5366ebdd6e35f41b547943
Bug: None
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315376
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Bug: oss-fuzz:25395
Change-Id: Ifd9bcb1e8e510488e43fde359f011800c8647435
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315557
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>