This is a reland of 8005007e98
Original change's description:
> Use SkImage_Raster's unique ID to cache textures.
>
> SkImages can share SkBitmaps and have different unique IDs/mipmap
> status. Currently we cache the texture version using the bitmap's
> unique ID. Instead use the image's ID so different images produce
> different textures (e.g. mipped and nonmipped).
>
> Bug: skia:11983
> Change-Id: Ic37564186f675277e5a9de1bcf36b40a19c3a3de
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407356
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
Bug: skia:11983
Change-Id: I63e9d15ffdf6b6769c9b0b97d9aa30f353e1a3a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409376
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
These produce slightly different results run to run
Bug: skia:11392
Change-Id: I64adf62132f7432114dcebfad604becf95553be0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410136
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
ac42dbf987..eaa6961d64
2021-05-18 syoussefi@chromium.org Revert "Vulkan: Disable BufferVk suballocation"
2021-05-18 gert.wollny@collabora.com Capture: Make writeCppReplayIndexFiles a method of FrameCapture
2021-05-18 jmadill@chromium.org infra: Add tests to Android Pixel 4 bot.
2021-05-18 jmadill@chromium.org Improve test expectations overlap check.
2021-05-18 jonahr@google.com Revert "Reland Change to module directory when loading swiftshader ICD."
2021-05-18 m.maiya@samsung.com Vulkan: Add support for EXT_texture_border_clamp
2021-05-18 cnorthrop@google.com Tests: Skip pokemon_go on Intel Linux Vulkan
2021-05-18 cnorthrop@google.com Tests: Add SAKURA School Simulator trace
2021-05-18 cnorthrop@google.com Capture/Replay: Ignore delete of non-genned buffers
2021-05-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from af907708adb3 to 0ca03fb2907c (1 revision)
2021-05-18 jplate@google.com CL: Load OpenCL without search path modification
2021-05-18 jplate@google.com CL: Add front end object references to back end objects
2021-05-18 jplate@google.com CL: Move object cast from entry points to stubs and front end
2021-05-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 9b886afc6e79 to 2b00cebcd5b5 (497 revisions)
2021-05-18 lexa.knyazev@gmail.com Vulkan: Support GL_EXT_texture_sRGB_RG8
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 bsalomon@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: bsalomon@google.com
Test: Test: SAKURA School Simulator MEC
Test: Test: angle_perftests --gtest_filter="*sakura_school_simulator*"
Test: Test: dEQP-GLES31.functional.texture.border_clamp*
Change-Id: I72c79b4ccdd09f8aa0b3a046548feb0fc6b26bcb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410241
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
GLSL now emits 4x2 diagonal matrices as:
`(mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) * n)`
instead of
`mat4x2(n)`.
This works around a long-standing GLSL bug in both Mesa and glslang that
affects several drivers:
https://github.com/KhronosGroup/glslang/issues/2645
Change-Id: If529d5cd150ce720f436cb3634a2fd3423919278
Bug: skia:12003
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410137
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
We should detect intrinsics by enum, not by string matching. This was
missed when doing the initial conversion from strings to enums.
Change-Id: I87fb63274085d17d8c14e72667b95019edee25b3
Bug: skia:11961
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410100
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This is cleaner and easier to understand than assembling an IRNode tree
by hand.
Change-Id: Icba1d7720e7acd6d9cdb69de6ab97cd56fa03439
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410099
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>
- Arrays were unused
- Each ctype was used with exactly one mapper - remove the SkSL type
list
- After that, the mapper was just a key + value, so make it just a value
and use a map (rather than vector)
Change-Id: Ibc150ecc9ac9724ecd1e7056614ca5836ce99d5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409998
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Tests mirrors (where the src and dst rects are equal, but local coords
have been flipped), and perspective (which is just generally hard).
Bug: skia:11994, skia:12015
Change-Id: Ic57b004d2741e0e713fed17825071c5c9cf63486
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410000
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Change-Id: Id41287668971d464e517e28757736d7d3b019666
Bug: skia:11977
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406356
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Now that the DSL is available from within the compiler, we can use it
instead of the previous complex IR tree generation.
Change-Id: I7a95d245dbc21386790a1cc786899b38cbdf5345
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409897
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
When we're on top of the command buffer which in turn is on top
of ANGLE's GL backend we detect the underlying driver as GrGLDriver.
However, we still need to know if we're on the command buffer. Separate
that out from GrGLDriver.
Bug: chromium:1210334
Change-Id: I87d7d7d6d22f9629e1abe817668a33e3204300e1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410016
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This was only used in the context of sk_SampleMask, which was removed
recently.
Change-Id: Id70d7af8b3a100ff157c2984bad4131f1b92f317
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410056
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Most samples use the same render thread boilerplate -- consolidate as
a utility base class.
Also add Canvas.getWidth/getHeight.
Change-Id: I27c9f51b4fd9d228a39593fbd4650a66d10240c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409896
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Use the GrPathTessellators directly instead of going through
GrPathStencilFillOp. Add keyboard shortcuts to toggle between the
different path tessellators.
Bug: skia:10419
Change-Id: I5d80731d26c9a77fb0eca07a7023c50848e29f7c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409556
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Change-Id: I6019418526def09c6c9f4b22567a2c76542d043c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409876
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: Ia202cad02b5977511b1b9b36fdf8dcbc8b8058d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409776
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Grants read-access to a JS array, either ...
- direct peek into the (malloc'd buffer)
- quick copy (the src was a typed_array)
- slow copy (had to perform a per-element lookup)
Change-Id: Id389f244039d35aefd84e0d95d598cbe15cd28c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409397
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Herb Derby <herb@google.com>
The DSL would not previously function within the compiler, because it
expected to be in charge of everything itself. The compiler and DSL also
disagreed about how to handle some things, such as the DSL not
respecting the compiler's override flags.
This CL moves responsibility for much of the setup process into
DSL::Start(), which the compiler now invokes. DSL::Start() now also
takes a ProgramSettings instead of DSL-specific flags, and the
externalFunctions vector has been moved into ProgramSettings.
Change-Id: I283ed8366e25d67f02c43833743c5f8afdedaefc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/408136
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Want to also use this to use this for texture formats so remove
"ColorType" from name.
Also class rather than struct.
Bug: chromium:1113801
Change-Id: Ieb08a3d81c465b92b956d9bc04b39c5783715ea8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409476
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
A previous change to goldctl removed the special-casing for
Skia, so we need to specify it ourselves.
Change-Id: If4d122daa4ee4bb865b628b7c6ee1cbe5d44d670
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409396
Reviewed-by: Ravi Mistry <rmistry@google.com>
8328743a2e..ac42dbf987
2021-05-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 055e71b2a367 to 3d799e0e9b08 (25 revisions)
2021-05-18 syoussefi@chromium.org Vulkan: Optimize respecifying an image
2021-05-18 syoussefi@chromium.org Vulkan: Fix a bug releasing DynamicBuffer-owned buffer
2021-05-18 cnorthrop@google.com Tests: Add Pokemon Go trace
2021-05-18 cnorthrop@google.com Capture/Replay: Add const to string pointer
2021-05-18 cnorthrop@google.com Capture/Replay: Skip glGetActiveUniform
2021-05-18 cnorthrop@google.com Capture/Replay: Reset programs on loop
2021-05-17 cnorthrop@google.com Skip Texture2DTest.TextureSize on Linux+GL+TSAN
2021-05-17 jmadill@chromium.org ANGLETest: Skip test setup/teardown on major error.
2021-05-17 jonahr@google.com Fix out_of_range error in System_utils_posix
2021-05-17 syoussefi@chromium.org Vulkan: Cleanup texture image respecify
2021-05-17 syoussefi@chromium.org Vulkan: Fix desc set cache bug with xfb offset
2021-05-17 jmadill@chromium.org Gold Tests: Implement flaky retries and sharding.
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 bsalomon@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: bsalomon@google.com
Test: Test: Pokemon Go MEC
Test: Test: angle_perftest --gtest_filter="*pokemon_go*"
Change-Id: Id021c816f2598532ddc10dfad0daa2a3efa927cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409638
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Splits the instanced and tessellation implementations into their own
separate files and merges their common code into a shared base class.
Renames GrStrokeTessellateShader to GrStrokeShader.
Bug: skia:10419
Change-Id: Ia731509858e682a605ee65c9ced1fd163e4c03f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409036
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
This appears to be a driver bug with improperly handling dead code.
Change-Id: I4925c1d2b8ed008ba3da6ceda0eed61d08b671ca
Bug: skia:12012
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409497
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>
Although these tests are simple, it ended up uncovering a legitimate
SPIR-V bug (skia:12009).
Change-Id: Ie89235157256b97626aa6ada4d9d6ba62abc57fa
Bug: skia:12009
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409299
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
If we encounter code like `return 1; return 2;` we need to synthesize a
label, even though the second return statement isn't actually reachable.
This is harmless and satisfies the SPIR-V validator.
Ideally we'd eliminate the dead code entirely, but this case is rare and
isn't likely to cause any problems as-is.
Change-Id: I2d6219dff6868011353e19a662301bec44a015d6
Bug: skia:12009
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409402
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
The NGA probably won't have a GrSurfaceDrawContext. The endgame here is to have both SkSurface_Gpu and GrVkSecondaryCBDrawContext hold a SkBaseGpuDevice.
Change-Id: I4b90d7832d28f872a9417f766e441fc15460be90
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409399
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This CL is prep work for extracting a common base class from these two
shaders.
* Outset by [y,-x] instead of [-y,x]
* Scale the strokeOutset by miter_extent instead of the STROKE_RADIUS
* Clamp strokeOutset immediately for joins instead of stashing a
"clamp" variable and clamping at the end.
Bug: skia:10419
Change-Id: Icc67d45d9a945b93b3a192d76ec6028432a1d1db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/408818
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Don't know why this was virtual, but it slowed down our clustering
substantially. Like, 25% slowdown on my desktop.
Bug: skia:10877
Change-Id: I67056d9c566c34562eb215d9abb7760a01baa3cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409417
Commit-Queue: Adlai Holler <adlai@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Before this CL, the render task clustering algorithm was taking
a ton more CPU time than needed by visiting proxies every
time it needed to check for surface usage.
Note also, the fSampledProxies does indeed usually contain many
duplicates in our SKPs. Sometimes 3 or 4x. I may experiment with
using a hash set as suggested by a comment.
Bug: skia:10877
Change-Id: Iae01ed16d7b4c7cda343d37ab8fd6147ae6c65e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409416
Reviewed-by: Robert Phillips <robertphillips@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
This is a reland of 0d0b1b3b56
Original change's description:
> Delete the index buffer from middle-out tessellation
>
> This gives us more flexibility for customizing triangulations in
> future modes. It is also hopefully cheaper than the extra memory
> indirection from indexed draws.
>
> Bug: skia:10419
> Bug: chromium:1202607
> Change-Id: Iba41a35a634edf8f962c3d604c7e035e7a85801d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407296
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
Bug: skia:10419
Bug: chromium:1202607
Change-Id: I73487087fba09d3ab95d8fa8bd4e2435ba802075
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/408676
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This reverts commit 6f520cd120.
Reason for revert: Mixed perf results (including Flutter). skbug.com/12010
Original change's description:
> Enable vertex ID support on Metal
>
> This allows the tessellated stroke renderer to run on Metal.
>
> Change-Id: Ia6bd4008a3310cd316abdc2715efcec3916c6bfa
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/408358
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I8e01bcd6abf0ebcc80ba63194050cc70c53f43c6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409401
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Once this is fixed we can hopefully check the version number before
disabling.
Bug: skia:11965
Bug: b/188239650
Change-Id: Idc29058e23c6e1750555165ba57b695a7cc0f925
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409338
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>