As part of this we also create two fbos now for
multisampled_render_to_texture: one msaa and one not.
Bug: skia:11396
Change-Id: If519b52ec79de4b2abeac2c5658f766f1c7e8d9c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392746
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
dfa7cca5f3..f9350be1e4
Includes fixes for COLRv1 fuzzer findings and fixes for issues
with state kept between glyphs in hinting.
Change-Id: I72dba955e948715bbf7b2f6c45a44339f74cfaa5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394036
Auto-Submit: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
We then store this handle on the GrVkFramebuffer. This will be used in
follow on CL to help remove the use of GrVkRenderTarget in the
GrVkOpsRenderPass.
Bug: skia:11809
Change-Id: I979de4e474be1d5e5683dc263fe347cfb63b2342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393376
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Bug: skia:11840
Change-Id: Ief89855554e4ed21da20a2fdef4945294cf46498
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393416
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: Ic1f5d28651e8de9d9ecea2a0bcfa73063dd90a9d
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393337
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
It is no longer used.
Change-Id: I1f5861ea4043440d7a6a31e5268e24c62fb1660e
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393217
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Vector and matrix typecasting is mechanically very similar, so it makes
sense to represent these with a single constructor type and paper over
the tiny differences in each backend. (SPIR-V in particular needs a
separate path for matrix casting versus vector casting.)
Change-Id: Id9ea7ca6297e69b3e813c69bfdc56073b50d8d89
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393216
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
We believe with advent of GrBackendSurfaceMutableState that this is
only needed for inline atlas uploads. Those call GrGpu directly.
Bug: 1191058
Change-Id: Iad851ebc9f5b7df21d16064a84caa9575da98634
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393082
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
ConstructorComposite is a slight rework of ConstructorVector;
mechanically, both vector and matrix composition behave the same and
can share the same logic.
The generated code in SPIR-V and Metal still has some tweaks due to
different handling for matrices in these languages, but the SkSL
internal model mimics GLSL's view that vectors and matrices can be
created by lumping together any mix of scalars and vectors.
The backends will continue to adapt this model to their reality.
Change-Id: Ia2781c8a9dd3b4ba55ef93e33ac252eaeec844ac
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393178
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:11374
Change-Id: I63d605eabbe514a0469d00d8a671969874f3edd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393081
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2f22157acd..6d905c7631
2021-04-07 cclao@google.com Vulkan: Remove initImmutableImage and use initImage instead
2021-04-07 cclao@google.com Vulkan: Remove maxLevel and immutable from ImageHelper::initExternal
2021-04-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 99ef73b66e73 to 9bacc030553c (0 revision)
2021-04-06 jmadill@chromium.org Vulkan: Suppress draw-time push constant VVL warnings.
2021-04-06 cclao@google.com Vulkan: Remove mMaxLevel from ImageHelper class
2021-04-06 timvp@google.com Mark most draw modes valid when no program is bound
2021-04-06 sunnyps@chromium.org Support GL_EXT_texture_type_2_10_10_10_REV on D3D backend
2021-04-06 cclao@google.com Vulkan: Remove mBaseLevel from ImageHelper class
2021-04-06 jmadill@chromium.org Vulkan: Use constants for descriptor types.
2021-04-06 lexa.knyazev@gmail.com GL: Align emulated ETC1 handling with other backends
2021-04-06 cclao@google.com Vulkan: Make storage actually immutable for immutable textures
2021-04-06 b.schade@samsung.com Vulkan: Fix geometry shader validation with vertex shaders
2021-04-06 liaoyuke@chromium.org Lacros: Fix xvfb condition in angle
2021-04-06 m.maiya@samsung.com Vulkan: Assign XFB location first then assign varying location
2021-04-06 cwallez@chromium.org Factor common Vulkan build_overrides in vulkan_common.gni
2021-04-06 cwallez@chromium.org Add tint: to the list of allowed Bug: tags.
2021-04-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 61083c4a2ae0 to fac6f6b00985 (4 revisions)
2021-04-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 9c9ca054e2bc to 99ef73b66e73 (584 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 csmartdalton@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
Tbr: csmartdalton@google.com
Test: Test: KHR-GLES31.core.draw_indirect.basic-mode-*adjacencyTest: Test: KHR-GLES32.core.geometry_shader.api.fs_gs_draw_callTest: Test: KHR-GLES32.core.geometry_shader.api.pipeline_program_without_active_vsTest: Test: KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_inTest: Test: SimpleOperationTest31.DrawWithoutProgramBoundTest: Test: built Chromium and Angle from sourceTest: Test: gpu_angle_passthrough_fuzzer
Change-Id: Ie3f92899ba5b28cb27c736d3c8327dda4aebb8a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392971
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This constructor aggregates scalars and smaller vectors together into
one vector. It is not responsible for splats or typecasts; those are
handled in separate classes which were added previously.
Change-Id: I9194bec50d58d94c331e0bb883686e26b86af347
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392816
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
This reverts commit 5a2de5e72f.
Reason for revert: Upon further investigation this still leaks
Original change's description:
> put an arena on GrSurfaceDrawContext
>
> This is part one of two CLs. In this CL, I put a
> sk_sp<GrArenas> on GrSurfaceFillContext where GrArenas wraps
> a SkArenaAlloc to add ref counting. Creating
> a GrOpsTask shares the GrArenas with the ops task. New plumbing
> was added to GR_DRAW_OP_TEST_DEFINE to allow a proper
> GrSurfaceDrawContext to be passed to GrAtlasTextOp's
> GR_DRAW_OP_TEST_DEFINE so the arena will have a proper lifetime.
>
> The second CL will work on replacing GrOpsTask's fAllocators
> system with the shared arena.
>
> Change-Id: Ife3be0ab265441cbffab360f2808f5eed86db8b3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392936
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
TBR=bsalomon@google.com,herb@google.com
Change-Id: I9ca5c8b1e16b468003788cd3126eda1d40ff93ed
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393177
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This reverts commit f00d6a8efd.
Reason for revert: In the long run, it seems like this might leak.
Original change's description:
> remove fAllocators from GrOpsTask
>
> Change-Id: I5901f005c2758a92692e5cd70ba46a2b5ad797fd
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393116
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Adlai Holler <adlai@google.com>
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
TBR=herb@google.com,robertphillips@google.com,csmartdalton@google.com,adlai@google.com
Change-Id: I895e47c999c6961fa14c356d6d5bde80dd86b63e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393176
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I9f02b1e07bf7a20a90f259d94ca58c26d2783ea6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392993
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Also adds tests of non-uniform shader declarations. These are currently
allowed, but will be detected as an error in the next CL.
Bug: skia:11374
Change-Id: I3fee0a0c97ae590f7bc6952cb367f7e94436b891
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393080
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This approach gives us similar flexibility but requires fewer lines of
code to get the same result. In a followup CL we will be able to
eliminate get[BFI]VecExpression as well. This approach will also scale
to arrays and structs if we want to support constant-folding on these.
Change-Id: Ib0034935926c7004f84ba62ddbdb3168df8ce91d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393076
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
This shook out a long-standing bug; constant folding would treat a
matrix resize as if the cells not covered by the original matrix were
all zero. This is wrong; GLSL populates the unknown cells with an
identity matrix. We actually tested for the wrong behavior, so the tests
were updated to match the correct behavior, and an equivalent test was
added that does not constant-fold (to verify that our constant folder
matches reality).
Change-Id: I03df10ce646fbef0a36e9c1a841a7637182de122
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392916
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
I am planning to leverage this count for `getConstantSubexpression` in a
followup CL.
Change-Id: I7c2a64a9968af95ba7d5a17a085686788e22b774
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393077
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Makes textureFBOID be a separate, single-sampled framebuffer.
Bug: skia:11396
Change-Id: Ida9af8bd3bb31bb47edc4ddf4c754b5f6f90c61c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392744
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
We should be using glrt::requiresManualMSAAResolve() instead.
Bug: skia:11396
Change-Id: I6e92dea539f721d9079f2db65cf77112adc84949
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392741
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is part one of two CLs. In this CL, I put a
sk_sp<GrArenas> on GrSurfaceFillContext where GrArenas wraps
a SkArenaAlloc to add ref counting. Creating
a GrOpsTask shares the GrArenas with the ops task. New plumbing
was added to GR_DRAW_OP_TEST_DEFINE to allow a proper
GrSurfaceDrawContext to be passed to GrAtlasTextOp's
GR_DRAW_OP_TEST_DEFINE so the arena will have a proper lifetime.
The second CL will work on replacing GrOpsTask's fAllocators
system with the shared arena.
Change-Id: Ife3be0ab265441cbffab360f2808f5eed86db8b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392936
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
When growing a matrix, the new cells should contain the identity matrix.
`writeMatrixCopy` was populating every cell with zeros instead.
Also, `writeMatrixCopy` had some code for handling int matrices, but
we don't support this in SkSL anywhere else; replaced with an assert
that the component type is float.
Change-Id: Icb80ae711d5c4f1417b62168b203a661f52e8d7d
Bug: skia:11835
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393037
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
GLSL allows a matrix to be both resized and typecast in one go, but this
isn't true for all of our backends, so internally we will split this
cast into two operations--a typecast, followed by a resize. In the vast
majority of cases, we will not actually be doing both things at the same
time, so it should be a wash for most real code.
This CL also reorders the start of MakeCompoundConstructor to reduce
the number of redundant checks. The work performed should be the same,
but the comparisons are a little more structured.
Change-Id: I443649d87704e03c0c06cc4a14d48ecaac5e596c
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392876
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
323c5f2464..2f22157acd
2021-04-06 timvp@google.com Fix Restricted Traces README.md jq command
2021-04-05 jmadill@chromium.org Move restricted traces to CIPD.
2021-04-05 jmadill@chromium.org infra: Add builder group to CI properties.
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 csmartdalton@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
Tbr: csmartdalton@google.com
Change-Id: I63e738c94768a0070d0804d56d066f96e7ce9911
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392957
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This is a reland of 8ce24b1d11
Original change's description:
> Make RGB_888x pixel operations work.
>
> Also remove vulkan-specific conversions in GrVkGpu and rely
> on higher level SurfaceContext to convert correctly.
>
> Bug: skia:8862
> Change-Id: Ib8b0541c8c5831148b7129c4bbed3f925660116e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392378
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:8862
Change-Id: I5d085e47398a4a2947228ee67f867552fa93123a
Cq-Include-Trybots: luci.skia.skia.primary:Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-Vulkan
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392842
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
The actual fix happened at prior CL http://review.skia.org/392197, which
reworked how vector-cast constructors function.
Change-Id: Ifb71ec913b349e65d38458dc615441e7a73efddc
Bug: oss-fuzz:32851
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392841
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
(Hiding the fix from Flutter for now because we need to test it in
Google3 first)
Bug: skia:11100
Change-Id: I51fa37ee16a48de6a636dc857d5ae8650327922f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391197
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
As part of the new architecture I envision not compiling in stuff like
the GrClipStackClip when in NGA-mode. This ran/runs into trouble with
the unit tests.
Change-Id: I922dcf873c4bb1a3abfd2ce519f3dbf68e053770
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392839
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Making a VectorCast from a compile-time constant will perform the cast
at compile-time instead; previously, we did not apply this optimization.
This simplified a few test outputs in subtle ways. (In particular, the
SPIR-V codegen used to occasionally decorate OpConstantComposite of
constant numbers with RelaxedPrecision, and no longer appears to do
this. This should have no effect on results either way AFAICS.)
Because we don't return VectorCast constructors containing compile-time
constant values, we do not need to implement compareConstant for this
constructor; they only wrap non-compile-time-constant expressions.
Change-Id: I28c1f337f64d6f20fb86bc0f58e225af4bd7b26c
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392197
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Also remove vulkan-specific conversions in GrVkGpu and rely
on higher level SurfaceContext to convert correctly.
Bug: skia:8862
Change-Id: Ib8b0541c8c5831148b7129c4bbed3f925660116e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392378
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>